@aztec/l1-artifacts 1.0.0-nightly.20250721 → 1.0.0-nightly.20250722
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/CoinIssuerAbi.d.ts +43 -37
- package/dest/CoinIssuerAbi.d.ts.map +1 -1
- package/dest/CoinIssuerAbi.js +50 -43
- package/dest/CoinIssuerBytecode.d.ts +1 -1
- package/dest/CoinIssuerBytecode.d.ts.map +1 -1
- package/dest/CoinIssuerBytecode.js +1 -1
- package/dest/EmpireBaseAbi.d.ts +134 -144
- package/dest/EmpireBaseAbi.d.ts.map +1 -1
- package/dest/EmpireBaseAbi.js +163 -176
- package/dest/ErrorsAbi.d.ts +37 -37
- package/dest/ErrorsAbi.js +43 -43
- package/dest/ExtRollupLib2Abi.d.ts +37 -37
- package/dest/ExtRollupLib2Abi.js +43 -43
- package/dest/ExtRollupLib2Bytecode.d.ts +1 -1
- package/dest/ExtRollupLib2Bytecode.js +1 -1
- package/dest/ExtRollupLibAbi.d.ts +37 -37
- package/dest/ExtRollupLibAbi.js +43 -43
- package/dest/ExtRollupLibBytecode.d.ts +1 -1
- package/dest/ExtRollupLibBytecode.js +1 -1
- package/dest/FeeAssetHandlerAbi.d.ts +37 -37
- package/dest/FeeAssetHandlerAbi.js +43 -43
- package/dest/FeeJuicePortalAbi.d.ts +37 -37
- package/dest/FeeJuicePortalAbi.js +43 -43
- package/dest/FeeJuicePortalBytecode.d.ts +1 -1
- package/dest/FeeJuicePortalBytecode.js +1 -1
- package/dest/GSEAbi.d.ts +74 -66
- package/dest/GSEAbi.d.ts.map +1 -1
- package/dest/GSEAbi.js +90 -80
- package/dest/GSEBytecode.d.ts +1 -1
- package/dest/GSEBytecode.d.ts.map +1 -1
- package/dest/GSEBytecode.js +1 -1
- package/dest/GovernanceAbi.d.ts +61 -61
- package/dest/GovernanceAbi.js +70 -70
- package/dest/GovernanceBytecode.d.ts +1 -1
- package/dest/GovernanceBytecode.d.ts.map +1 -1
- package/dest/GovernanceBytecode.js +1 -1
- package/dest/GovernanceProposerAbi.d.ts +135 -135
- package/dest/GovernanceProposerAbi.js +164 -164
- package/dest/GovernanceProposerBytecode.d.ts +1 -1
- package/dest/GovernanceProposerBytecode.js +1 -1
- package/dest/HonkVerifierAbi.d.ts +37 -37
- package/dest/HonkVerifierAbi.js +43 -43
- package/dest/HonkVerifierBytecode.d.ts +1 -1
- package/dest/HonkVerifierBytecode.d.ts.map +1 -1
- package/dest/HonkVerifierBytecode.js +1 -1
- package/dest/IERC20Abi.d.ts +37 -37
- package/dest/IERC20Abi.js +43 -43
- package/dest/IVerifierAbi.d.ts +37 -37
- package/dest/IVerifierAbi.js +43 -43
- package/dest/InboxAbi.d.ts +37 -37
- package/dest/InboxAbi.js +43 -43
- package/dest/InboxBytecode.d.ts +1 -1
- package/dest/InboxBytecode.js +1 -1
- package/dest/MockVerifierAbi.d.ts +37 -37
- package/dest/MockVerifierAbi.js +43 -43
- package/dest/MockZKPassportVerifierAbi.d.ts +37 -37
- package/dest/MockZKPassportVerifierAbi.js +43 -43
- package/dest/MultiAdderAbi.d.ts +37 -37
- package/dest/MultiAdderAbi.js +43 -43
- package/dest/MultiAdderBytecode.d.ts +1 -1
- package/dest/MultiAdderBytecode.js +1 -1
- package/dest/NewGovernanceProposerPayloadAbi.d.ts +37 -37
- package/dest/NewGovernanceProposerPayloadAbi.js +43 -43
- package/dest/NewGovernanceProposerPayloadBytecode.d.ts +1 -1
- package/dest/NewGovernanceProposerPayloadBytecode.js +1 -1
- package/dest/OutboxAbi.d.ts +37 -37
- package/dest/OutboxAbi.js +43 -43
- package/dest/OutboxBytecode.d.ts +1 -1
- package/dest/OutboxBytecode.js +1 -1
- package/dest/RegisterNewRollupVersionPayloadAbi.d.ts +37 -37
- package/dest/RegisterNewRollupVersionPayloadAbi.js +43 -43
- package/dest/RegisterNewRollupVersionPayloadBytecode.d.ts +1 -1
- package/dest/RegisterNewRollupVersionPayloadBytecode.js +1 -1
- package/dest/RegistryAbi.d.ts +52 -52
- package/dest/RegistryAbi.js +62 -62
- package/dest/RegistryBytecode.d.ts +1 -1
- package/dest/RegistryBytecode.d.ts.map +1 -1
- package/dest/RegistryBytecode.js +1 -1
- package/dest/RewardDistributorAbi.d.ts +37 -98
- package/dest/RewardDistributorAbi.d.ts.map +1 -1
- package/dest/RewardDistributorAbi.js +43 -122
- package/dest/RewardDistributorBytecode.d.ts +1 -1
- package/dest/RewardDistributorBytecode.d.ts.map +1 -1
- package/dest/RewardDistributorBytecode.js +1 -1
- package/dest/RollupAbi.d.ts +37 -37
- package/dest/RollupAbi.js +43 -43
- package/dest/RollupBytecode.d.ts +1 -1
- package/dest/RollupBytecode.d.ts.map +1 -1
- package/dest/RollupBytecode.js +1 -1
- package/dest/SlashFactoryAbi.d.ts +37 -37
- package/dest/SlashFactoryAbi.js +43 -43
- package/dest/SlashFactoryBytecode.d.ts +1 -1
- package/dest/SlashFactoryBytecode.js +1 -1
- package/dest/SlasherAbi.d.ts +37 -37
- package/dest/SlasherAbi.js +43 -43
- package/dest/SlasherBytecode.d.ts +1 -1
- package/dest/SlasherBytecode.d.ts.map +1 -1
- package/dest/SlasherBytecode.js +1 -1
- package/dest/SlashingProposerAbi.d.ts +134 -144
- package/dest/SlashingProposerAbi.d.ts.map +1 -1
- package/dest/SlashingProposerAbi.js +163 -176
- package/dest/SlashingProposerBytecode.d.ts +1 -1
- package/dest/SlashingProposerBytecode.d.ts.map +1 -1
- package/dest/SlashingProposerBytecode.js +1 -1
- package/dest/StakingAssetHandlerAbi.d.ts +37 -37
- package/dest/StakingAssetHandlerAbi.js +43 -43
- package/dest/StakingAssetHandlerBytecode.d.ts +1 -1
- package/dest/StakingAssetHandlerBytecode.js +1 -1
- package/dest/TestERC20Abi.d.ts +69 -38
- package/dest/TestERC20Abi.d.ts.map +1 -1
- package/dest/TestERC20Abi.js +83 -44
- package/dest/TestERC20Bytecode.d.ts +1 -1
- package/dest/TestERC20Bytecode.d.ts.map +1 -1
- package/dest/TestERC20Bytecode.js +1 -1
- package/dest/TokenPortalAbi.d.ts +37 -37
- package/dest/TokenPortalAbi.js +43 -43
- package/dest/TokenPortalBytecode.d.ts +1 -1
- package/dest/TokenPortalBytecode.js +1 -1
- package/dest/UniswapPortalAbi.d.ts +37 -37
- package/dest/UniswapPortalAbi.js +43 -43
- package/dest/UniswapPortalBytecode.d.ts +1 -1
- package/dest/UniswapPortalBytecode.js +1 -1
- package/dest/ValidatorSelectionLibAbi.d.ts +37 -37
- package/dest/ValidatorSelectionLibAbi.js +43 -43
- package/dest/ValidatorSelectionLibBytecode.d.ts +1 -1
- package/dest/ValidatorSelectionLibBytecode.js +1 -1
- package/dest/checksum.d.ts +1 -1
- package/dest/checksum.js +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* HonkVerifier bytecode.
|
|
3
3
|
*/
|
|
4
|
-
export declare const HonkVerifierBytecode = "0x60e060405234801561000f575f5ffd5b506302000000608052601960a05260ae60c05260805160a05160c0516152e46100605f395f818160d6015261065001525f818161075b01528181610d030152610da001525f6105f401526152e45ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004614ee6565b610054565b604051901515815260200160405180910390f35b5f6100626101c86020614fbe565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a6101c1565b90505f61009787876101d6565b9050601082604001516100aa9190614fd5565b84146100c95760405163fa06659360e01b815260040160405180910390fd5b5f6100fc828787865f01517f0000000000000000000000000000000000000000000000000000000000000000600161052f565b905061014c8686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050855185516060810151608090910151919350915060016105de565b815160a001525f61015d8383610753565b90508061017d576040516313f8744360e31b815260040160405180910390fd5b5f610189848685610854565b9050806101a9576040516352ec174560e11b815260040160405180910390fd5b8180156101b35750805b9a9950505050505050505050565b6101c961493c565b6101d161109e565b905090565b6101de614ab9565b5f805b60108110156102405761020d8583866101fb826020614fe8565b9261020893929190614ffb565b611984565b8351826010811061022057610220615022565b6020020181815250506020826102369190614fe8565b91506001016101e1565b50610264848285610252826080614fe8565b9261025f93929190614ffb565b6119f2565b6020830152610274608082614fe8565b9050610287848285610252826080614fe8565b6040830152610297608082614fe8565b90506102aa848285610252826080614fe8565b60608301526102ba608082614fe8565b90506102cd848285610252826080614fe8565b60c08301526102dd608082614fe8565b90506102f0848285610252826080614fe8565b60e0830152610300608082614fe8565b9050610313848285610252826080614fe8565b6080808401919091526103269082614fe8565b9050610339848285610252826080614fe8565b61010083015261034a608082614fe8565b905061035d848285610252826080614fe8565b60a083015261036d608082614fe8565b90505f5b601c8110156103ec575f5b60088110156103e3576103968684876101fb826020614fe8565b84610120015183601c81106103ad576103ad615022565b602002015182600881106103c3576103c3615022565b6020020181815250506020836103d99190614fe8565b925060010161037c565b50600101610371565b505f5b6028811015610440576104098583866101fb826020614fe8565b836101400151826028811061042057610420615022565b6020020181815250506020826104369190614fe8565b91506001016103ef565b505f5b61044f6001601c614fd5565b81101561049857610467858386610252826080614fe8565b83610160015182601b811061047e5761047e615022565b602002015261048e608083614fe8565b9150600101610443565b505f5b601c8110156104ec576104b58583866101fb826020614fe8565b83610180015182601c81106104cc576104cc615022565b6020020181815250506020826104e29190614fe8565b915060010161049b565b506104fe848285610252826080614fe8565b6101a083015261050f608082614fe8565b9050610522848285610252826080614fe8565b6101c08301525092915050565b610537614b83565b5f61054788888888888887611ad1565b90835290506105568189611b27565b6020840191909152905061056981611c78565b6040840191909152905061057d8882611cd9565b606084019190915290506105918882611dad565b608084019190915290506105a58882611e38565b60a084019190915290506105b98882611fa6565b60c084019190915290506105cd8882612018565b5060e0830152509695505050505050565b5f60018082610627866106228961061d6106188a7f0000000000000000000000000000000000000000000000000000000000000000614fe8565b61206f565b61208d565b6120a6565b90505f610645876106408a61061d6106188b6001614fe8565b6120bf565b90505f5b61067460107f0000000000000000000000000000000000000000000000000000000000000000614fd5565b8110156106e1575f61069e8c838151811061069157610691615022565b602002602001015161206f565b90506106ae8661061d86846120a6565b95506106be8561061d85846120a6565b94506106ca848b6120a6565b93506106d6838b6120bf565b925050600101610649565b505f5b6010811015610748575f8a826010811061070057610700615022565b602002015190506107158661061d86846120a6565b95506107258561061d85846120a6565b9450610731848b6120a6565b935061073d838b6120bf565b9250506001016106e4565b506101b384846120ee565b5f806001815b7f000000000000000000000000000000000000000000000000000000000000000081101561082a575f86610120015182601c811061079957610799615022565b602002015190505f6107ab82866120fc565b9050806107cb576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106107e2576107e2615022565b602002015190506107f38382612119565b955061081a886040015185601c811061080e5761080e615022565b602002015186836122c8565b9450505050806001019050610759565b505f610844866101400151865f01518760200151856122f3565b90508281145b9695505050505050565b5f61085d614bdc565b5f61086b8460a00151612361565b9050610875614c40565b61087d614c5f565b60e086015161089c9061089790855f5b60200201516120bf565b6123c6565b60e0808601919091528601516108bd9061089790855f5b60200201516120a6565b610100850181905260e085015160c08801516108dd92610622919061208d565b845260a086015161090c906108f1906123c6565b61061d8660e001516106408a60c0015189610100015161208d565b6020850152600182526101a08801516109249061242f565b81526001606085018190525f60808601525b602381116109dc5761095761094d865f015161246e565b866060015161208d565b83826046811061096957610969615022565b602002015260808501516101408a01516109ac91906106229061098d600186614fd5565b6028811061099d5761099d615022565b6020020151886060015161208d565b8560800181815250506109c78560600151886080015161208d565b60608601526109d581615036565b9050610936565b505f6109ea60236001614fe8565b90505b60288111610a6b57610a0561094d866020015161246e565b838260468110610a1757610a17615022565b602002015260808501516101408a0151610a3b91906106229061098d600186614fd5565b856080018181525050610a568560600151886080015161208d565b6060860152610a6481615036565b90506109ed565b50606087015181600160200201526080870151816002602002015260a0870151816003602002015260c0870151816004602002015260e0870151816005602002015261010087015181600660200201526101208701518160076020020152610140870151816008602002015261016087015181600960200201526101a087015181600a602002015261018087015181600b60200201526101c087015181600c60200201526101e087015181600d602002015261020087015181600e602002015261022087015181600f60200201526102408701518160106020020152610260870151816011602002015261028087015181601260200201526102a087015181601360200201526102c087015181601460200201526102e08701518160156020020152610300870151816016602002015261032087015181601760200201526103408701518160186020020152610360870151816019602002015261038087015181601a60200201526103a087015181601b6020020181905250610bf1886020015161242f565b6103808201526040880151610c059061242f565b6103a08201526060880151610c199061242f565b6103c08201526080880151610c2d9061242f565b6103e082015260a0880151610c419061242f565b610400820152610100880151610c569061242f565b61042082015260c0880151610c6a9061242f565b61044082015260e0880151610c7e9061242f565b6104608201526020880151610c929061242f565b6104808201526040880151610ca69061242f565b6104a08201526060880151610cba9061242f565b6104c08201526080880151610cce9061242f565b6104e082015260a0880151610ce29061242f565b610500820152606086015160808501516101808a01515f92610d27929091877f0000000000000000000000000000000000000000000000000000000000000000612486565b805160e0870151919250610d3a9161208d565b604086018190526101808a01515160c0890151610d6b929161062291610d60919061208d565b88610100015161208d565b604086015260c0870151610d7e906125a1565b60608601525f5b610d916001601c614fd5565b811015610f99575f610dc460017f0000000000000000000000000000000000000000000000000000000000000000614fd5565b821015905080610f3f57610df76108978a60e0015188856001610de79190614fe8565b601c811061088d5761088d615022565b60e080890191909152890151610e27906108979088610e17866001614fe8565b601c81106108b3576108b3615022565b610100880152606087015160e0880151610e41919061208d565b610120880152606087015160c08a0151610e5e91610d609161208d565b6101408801819052610e8190610e739061246e565b61062289610120015161246e565b8583610e8f60286001614fe8565b610e999190614fe8565b60468110610ea957610ea9615022565b60200201526101408701516101808c01515f91610ee591610ecb866001614fe8565b601c8110610edb57610edb615022565b602002015161208d565b9050610f02816106228a610120015187876001610ecb9190614fe8565b9050610f128860400151826120a6565b6040890152606088015160c08b0151610f3891610f2e9161208d565b8b60c0015161208d565b6060890152505b610f638b610160015183601b8110610f5957610f59615022565b602002015161242f565b8483610f7160286001614fe8565b610f7b9190614fe8565b60468110610f8b57610f8b615022565b602002015250600101610d85565b5060408051808201909152600181526002602082015282610fbc601c6028614fe8565b60468110610fcc57610fcc615022565b6020020152604085015183610fe3601c6028614fe8565b60468110610ff357610ff3615022565b60200201526101c08901515f906110099061242f565b90508083611019601c6028614fe8565b611024906001614fe8565b6046811061103457611034615022565b602002015260e08801518461104b601c6028614fe8565b611056906001614fe8565b6046811061106657611066615022565b60200201525f61107684866125ac565b90505f61108283612672565b905061108e82826126b8565b9c9b505050505050505050505050565b6110a661493c565b50604080516103c08101825263020000008152601960208083019190915260ae82840152825180840184527f25dfc76ed3f0f82f210f612e02b0e9832c58e8bfa13522f64a7d61bfa787782b81527f1a7e9eb599d3f7dd92e18bbaf8669f1e9034f824610e2fc32e7967fd1f1c6f43818301526060830152825180840184527f0afdddf0172e7002a19d22c47a3b9e3de510961dbfc6807f142f0da429cf092881527f2c0d5ee84c0008a41574c712106c7124c02fdb097dc9e8ef42dee10381dbf279818301526080830152825180840184527f0c2f4a80018ff9b2f4d074b2cc436098464fa43a8ae959dbe35dc09025ebac9681527f1c2903530c2aae929d4f5dd067063549d0ae9aff79727ea1941aeaf6d02efbf18183015260a0830152825180840184527f0160e40d033efea6cc1a84a7fb376dadbb4421a65964016d3efeb92669f5f08881527f1532eac40516109fa4a1a75a20fe33fc453328d05d97e069d2556bc2fd21c1258183015260c0830152825180840184527f2d187c97c9697740f462dd02aae99501d83481a926d1d35a470adae08e20a38881527f2b0239d7eb595fc100d54cb4c08be30efa0e4c3dce497340636f07a15666f9ad8183015260e0830152825180840184527f241278f93bdf20ccf1179293cb2d4bdcfdc8bb845b84f68eaf3658726997812c81527f14f49e2051d7fc5a51ce4508cfd358946ed80325e8482e594935f26f6421e30381830152610100830152825180840184527f107d2d79c20982125b9f302008ecbd7b7f25eebc71271311c28f58223170c78b81527f0f3c9104533084fca88d92d900c94cb1400899b1c3c2b40cf32807f7d8517f4781830152610120830152825180840184527f2b5e326d8bfa820445448ab179a1247129e564e824f5deed9541b2109a8882cf81527f0100c0577f7c2396a38fdfa068e08e0d292ca6bda961e768a04f6e213a670acc81830152610140830152825180840184527f21da4bda11f3d4e73f4ca721239d649de06cd73284e2421aec379776d5f52b1e81527f03f4b0e87368f538a0ec726f52fa73326406323a53135aba173adf5b9bc26dff81830152610160830152825180840184527f123fb463d0bd6c6166dd3b341fd0c84259d13adf55f7ca716cc6079c06b6589a81527f2bde7ea24a9c890652380d09b9af8fae291330a532a67af3784b5c9e4e24838781830152610180830152825180840184527f046c1df22d248dc758b8e84025e1d00746165c117f6ef64911658a5974164c9d81527f2e45baa801f2bdfd5fda2b5d0aca0e89ee5e8a2b6406e9f0232edbb3c8d5f8ac818301526101a0830152825180840184527f0a949eff91bb786bc69af9863b9a83254e8fdd847fd7836cfec018e0a1a385a481527f0592ac373f9c4f3e8f1906b9e2f76886f7ee3a2201178bbadbb4eaecd6e61fcf818301526101c0830152825180840184527f0d7a8dac5f6ae6794ed9faf18e1d7e1e3bbf7ab8b55564c287afd123c4a6d36481527f2286f7be44c872aac8bc3b3ae172faf2a9330d310a1497297eebc15ba797dbe5818301526101e0830152825180840184527f275b29f5ce32638bb7fb3a7ae5bc5a0673e6327ee133bc3b907323adbcd4a36b81527f1e43818a59fb57aa17e3e3d749f643d06b690c2d1608b130b11109548c5b289781830152610200830152825180840184527f224875be5cde3fb8c1e770aca53745935dc44b0c97fb800c3b649823196e033e81527f025dc5e13f349e9b8da1e765da75263cab2a38cb043236b237009cde4899f66181830152610220830152825180840184527e01f2d83ee7bdb53810dab2092a1536a25a6ea065e44f8484873223b610858f81527f16d44ce94ad577ae8aba15c3a150ae599285aceb41253c64c7a4a483740be5f981830152610240830152825180840184527f1a215ea290933d9651b5b9143b21e54b462c62be2f301fa6787d3f23ee053bb981527f2d41fad31735ac7828222e687159985f267497b96936caea0741fba0a63aec3f81830152610260830152825180840184527f06f0ca1fb1b324632c7525413a4c86109b4fff0a3cbbb04ad13f98ee2796ff8b81527f09dd19085156eb8bb09dcc147ce551c2367896edc54a9db804ef8d12aef5b80881830152610280830152825180840184527f2aaabd4819403c1c15d8e65a49a78cb9e461100a8a29e2cf10abfe6ba20599a981527f1f5413b6ef1b8beb219942609e35c05d4f92923f32c3480fca18ed0c8ed17b07818301526102a0830152825180840184527f2ac0441f4b5c18482741b19f4a5e2f07aea72a57906c2c9aef6732bac61ae5a681527f1dc10abf9699ff8eb0c01b500e7595ccab04475fa7d52574e5e931ec2206ece3818301526102c0830152825180840184527f2bc6f5f0c72c2598bb516a5b6e47453334d0b4c4bd1f2f8b141986e44b43a8ad81527f042320791bcd1c142c5d84278398f5bc4183101b61a9b3469de3dbfa60eb385b818301526102e0830152825180840184527f275a0bb22f8c37a3476d71c556d266909fdde001df48d48a78940343ccb0b48a81527f2a4cc2119d1bd729845e8630c5b1aec652a2f2a7ae690c52238e3eafd44b385681830152610300830152825180840184527f1e1d6ac562a951aa01bc279a090d34488936a6404b3c75294fd260df0d36689381527f1643515b25c47e776b6d99eb3ce8b4613b209886681842e5c39ee92efe72c27281830152610320830152825180840184527f09d569252b4b229e483b00b1e67384ac4db29395d32e28c82f8b73983d30ac6b81527f2c47d5809e56ba32be655d4177db195bb450fd12587756c4b85b6506a7844ddb81830152610340830152825180840184527f1f59b85de9212665c6c3e59fb35ab6609d72f5ad8007449dc8019a5886fad88f81527f21c9b787b5e0109e8ab3c2293b8c67fa9ec871818722fb8bea77aa6477aaae4c81830152610360830152825180840184526001815260028183015261038083015282518084019093527f192f24aefa6e303039e4c0e7b63cab46d61b0c34a75a3f9088595a038613cc6d83527f27c765b484173e412f4a82ef7dbc4fb026f89bbe3f7afefd6b83f1bbf21fe0e3908301526103a081019190915290565b5f602082146119de5760405162461bcd60e51b815260206004820152602e60248201525f5160206152845f395f51905f5260448201526d393ab1ba1023391039b1b0b630b960911b60648201526084015b60405180910390fd5b6119eb610618838561504e565b9392505050565b6119fa614c8d565b60808214611a4f5760405162461bcd60e51b815260206004820152602f60248201525f5160206152845f395f51905f5260448201526e1c9d58dd08184811cc481c1bda5b9d608a1b60648201526084016119d5565b604080516080810190915280611a6860205f8688614ffb565b611a719161504e565b8152602090810190611a87906040908688614ffb565b611a909161504e565b8152602001611aa3606060408688614ffb565b611aac9161504e565b8152602001611abf608060608688614ffb565b611ac89161504e565b90529392505050565b611ad9614cb1565b5f611ae88989898989896128ac565b604086019190915260208501919091529083529250611b07838a612d52565b608085019190915260608401919091529199919850909650505050505050565b611b2f614ce1565b5f611b38614d00565b848152610100848101805151602080850191909152815181015160408086019190915282518101516060808701919091529251830151608086015260a080890180515191870191909152805183015160c0870152805182015160e087015251909201519284019290925251611bce91611bb39184910161506b565b6040516020818303038152906040528051906020012061206f565b9150611bd982612e21565b6020850152835260015b611bef6002601a6150b3565b811015611c6f57611c0c83604051602001611bb391815260200190565b9250611c1783612e21565b85611c23846002614fbe565b601a8110611c3357611c33615022565b6020020186611c43856002614fbe565b611c4e906001614fe8565b601a8110611c5e57611c5e615022565b602002019190915252600101611be3565b50509250929050565b611c80614d1f565b5f805b601c811015611cd257611ca284604051602001611bb391815260200190565b93505f611cae85612e21565b8584601c8110611cc057611cc0615022565b60200201919091525050600101611c83565b5090929050565b611ce1614d1f565b5f805b601c811015611da457611cf5614d00565b8481525f5b6008811015611d5e5786610120015183601c8110611d1a57611d1a615022565b60200201518160088110611d3057611d30615022565b602002015182611d41836001614fe8565b60098110611d5157611d51615022565b6020020152600101611cfa565b50611d7381604051602001611bb3919061506b565b94505f611d7f86612e21565b8685601c8110611d9157611d91615022565b6020020191909152505050600101611ce4565b50909391925050565b5f5f611db7614d3e565b8381525f5b6028811015611e0a578561014001518160288110611ddc57611ddc615022565b602002015182611ded836001614fe8565b60298110611dfd57611dfd615022565b6020020152600101611dbc565b50611e1f81604051602001611bb391906150c6565b91505f611e2b83612e21565b5096929550919350505050565b5f5f611e42614d5d565b8381525f5b611e536001601c614fd5565b811015611f915785610160015181601b8110611e7157611e71615022565b60200201515182611e83836004614fbe565b611e8e906001614fe8565b606d8110611e9e57611e9e615022565b602002015261016086015181601b8110611eba57611eba615022565b60200201516020015182826004611ed19190614fbe565b611edc906002614fe8565b606d8110611eec57611eec615022565b602002015261016086015181601b8110611f0857611f08615022565b60200201516040015182611f1d836004614fbe565b611f28906003614fe8565b606d8110611f3857611f38615022565b602002015261016086015181601b8110611f5457611f54615022565b60200201516060015182611f69836004614fbe565b611f74906004614fe8565b606d8110611f8457611f84615022565b6020020152600101611e47565b50611e1f81604051602001611bb391906150fa565b5f5f611fb0614d7c565b8381525f5b601c8110156120035785610180015181601c8110611fd557611fd5615022565b602002015182611fe6836001614fe8565b601d8110611ff657611ff6615022565b6020020152600101611fb5565b50611e1f81604051602001611bb3919061512e565b5f5f612022614d9b565b8381526101a085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611e1f91611bb391849101615162565b5f6120875f5160206152c45f395f51905f5283615195565b92915050565b5f5f5160206152c45f395f51905f528284099392505050565b5f5f5160206152c45f395f51905f528284089392505050565b5f5f5160206152c45f395f51905f526120e5835f5160206152c45f395f51905f52614fd5565b84089392505050565b5f6119eb8361061d846123c6565b81515f90819061210e908560016108b3565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b6008811015612200576121f68261061d87846120bf565b91506001016121df565b50612209614db9565b5f5b600881101561226a575f84826008811061222757612227615022565b6020020151905061223c8161061d89856120bf565b9050612247816123c6565b90508083836008811061225c5761225c615022565b60200201525060010161220b565b505f5b60088110156122bd575f87826008811061228957612289615022565b602002015190506122a681848460088110610edb57610edb615022565b90506122b286826120a6565b95505060010161226d565b5061084a848361208d565b5f5f6122de60016106228561061d8960016120bf565b90506122ea848261208d565b95945050505050565b5f6122fc614dd8565b612307868285612e51565b61231386868386612ffd565b61231f868683866131e5565b61232a868285613410565b612335868285613604565b6123418686838661394d565b61234c8682856141e7565b6123578682856145b2565b61084a81856148a7565b612369614d1f565b81815260015b601c8110156123c0576123a182612387600184614fd5565b601c811061239757612397615022565b60200201516125a1565b8282601c81106123b3576123b3615022565b602002015260010161236f565b50919050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f5160206152c45f395f51905f520360808201525f5160206152c45f395f51905f5260a082015260205f60c08360055afa905080612424575f5ffd5b50505f519392505050565b612437614df7565b604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f612087825f5160206152c45f395f51905f52614fd5565b61248e614d1f565b601c5b8015612597575f846124a4600184614fd5565b601c81106124b4576124b4615022565b602002015190505f886124c8600185614fd5565b601c81106124d8576124d8615022565b602002015190505f6125336124f76124f0858c61208d565b600261208d565b6106408a612506600189614fd5565b601c811061251657612516615022565b602002015161061d61252d8861061d60018a6120bf565b876120bf565b90506125548161061d61089761254e8761061d6001896120bf565b866120a6565b905085841161258357975087808561256d600187614fd5565b601c811061257d5761257d615022565b60200201525b50505080612590906151a8565b9050612491565b5095945050505050565b5f612087828361208d565b6125b4614df7565b5f6125c1601c6028614fe8565b6125cc906002614fe8565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b8381101561265a5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612601565b50805184526020810151602085015250505092915050565b61267a614df7565b5f5160206152a45f395f51905f5282602001515f5160206152a45f395f51905f526126a59190614fd5565b6126af9190615195565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b03168360405161284e91906151bd565b5f60405180830381855afa9150503d805f8114612886576040519150601f19603f3d011682016040523d82523d5f602084013e61288b565b606091505b509150915081801561084a57508080602001905181019061084a91906151d3565b5f808080806128bc876003614fe8565b6128c790600c614fe8565b6001600160401b038111156128de576128de6151f2565b604051908082528060200260200182016040528015612907578160200160208202803683370190505b509050875f1b815f8151811061291f5761291f615022565b602002602001018181525050865f1b8160018151811061294157612941615022565b602002602001018181525050855f1b8160028151811061296357612963615022565b60209081029190910101525f5b61297b601089614fd5565b8110156129cc578a8a8281811061299457612994615022565b90506020020135828260036129a99190614fe8565b815181106129b9576129b9615022565b6020908102919091010152600101612970565b505f5b6010811015612a3d578b516129f79082601081106129ef576129ef615022565b602002015190565b82826010612a068c6003614fe8565b612a109190614fd5565b612a1a9190614fe8565b81518110612a2a57612a2a615022565b60209081029190910101526001016129cf565b5060208b01515181612a50896003614fe8565b81518110612a6057612a60615022565b6020908102919091018101919091528b810151015181612a81896003614fe8565b612a8c906001614fe8565b81518110612a9c57612a9c615022565b6020908102919091018101919091528b01516040015181612abe896003614fe8565b612ac9906002614fe8565b81518110612ad957612ad9615022565b6020908102919091018101919091528b01516060015181612afb896003614fe8565b612b06906003614fe8565b81518110612b1657612b16615022565b602090810291909101015260408b01515181612b33896003614fe8565b612b3e906004614fe8565b81518110612b4e57612b4e615022565b60209081029190910181019190915260408c0151015181612b70896003614fe8565b612b7b906005614fe8565b81518110612b8b57612b8b615022565b60209081029190910101526040808c0151015181612baa896003614fe8565b612bb5906006614fe8565b81518110612bc557612bc5615022565b602090810291909101015260408b01516060015181612be5896003614fe8565b612bf0906007614fe8565b81518110612c0057612c00615022565b602090810291909101015260608b01515181612c1d896003614fe8565b612c28906008614fe8565b81518110612c3857612c38615022565b60209081029190910181019190915260608c0151015181612c5a896003614fe8565b612c65906009614fe8565b81518110612c7557612c75615022565b602090810291909101015260608b01516040015181612c95896003614fe8565b612ca090600a614fe8565b81518110612cb057612cb0615022565b60209081029190910101526060808c0151015181612ccf896003614fe8565b612cda90600b614fe8565b81518110612cea57612cea615022565b602002602001018181525050612d0a81604051602001611bb39190615206565b9150612d1582612e21565b6040805160208101869052929750909550612d309101611bb3565b91505f612d3c83612e21565b50959c949b509499509097509195505050505050565b5f5f5f612d5d614e0f565b85815260c085810180515160208085019190915281518101516040808601919091528251810151606080870191909152925183015160808087019190915260e0808b0180515160a089015280518501519688019690965285518301519087015293518301516101008601529288018051516101208601528051820151610140860152805184015161016086015251909101516101808401529051612e0791611bb39184910161523b565b9150612e1282612e21565b90979096509194509092505050565b5f80826001600160801b038116608082901c612e3c8261206f565b9450612e478161206f565b9350505050915091565b5f612e5d84600761490c565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612ebe612eb8612e928560036120bf565b61061d612ead612ea28b5f61490c565b61061d8c601c61490c565b61061d8b601b61490c565b8361208d565b9050612f3f612f34612f1b612f02612ee985610622612ede8d600261490c565b61061d8e601b61490c565b610622612ef78c600361490c565b61061d8d601c61490c565b610622612f108b600461490c565b61061d8c601d61490c565b610622612f298a600561490c565b61061d8b601e61490c565b61062288600161490c565b9050612f5e81610622612f538660016120bf565b61061d8a602661490c565b9050612f6a818461208d565b9050612f76818561208d565b8552505f9050612fb0612fa6612f9b612f9088601b61490c565b61062289601e61490c565b61064088602361490c565b610622875f61490c565b9050612fc18161061d8460026120bf565b9050612fd28161061d8460016120bf565b9050612fde818361208d565b9050612fea818461208d565b9050808460015b60200201525050505050565b5f5f5f61303361302961301189601b61490c565b61062261301f8b601161490c565b8a6060015161208d565b87608001516120a6565b905061306c8161061d61306261304a8b601c61490c565b6106226130588d601261490c565b8c6060015161208d565b89608001516120a6565b90506130918161061d6130626130838b601d61490c565b6106226130588d601361490c565b90506130b68161061d6130626130a88b601e61490c565b6106226130588d601461490c565b92505f90506130da6130296130cc89601b61490c565b61062261301f8b600d61490c565b90506130ff8161061d6130626130f18b601c61490c565b6106226130588d600e61490c565b90506131248161061d6130626131168b601d61490c565b6106226130588d600f61490c565b90506131498161061d61306261313b8b601e61490c565b6106226130588d601061490c565b91505f905061317061316a61315f89601f61490c565b6106228a601961490c565b8461208d565b90506131a58161064061319f6131878b602761490c565b6106226131958d601a61490c565b8c60a0015161208d565b8561208d565b90506131b1818561208d565b6040860152505f6131d461319f6131c989601a61490c565b61061d8a602761490c565b606090950194909452505050505050565b5f5f61324361322b6132136131fe6130628a601561490c565b61062261320c8b601661490c565b8a5161208d565b6106226132218a601761490c565b896020015161208d565b61062261323989601861490c565b886040015161208d565b91505f61327a61326161325789601b61490c565b88608001516120a6565b61062261326f8a600361490c565b61061d8b602361490c565b90505f6132a361328b89601c61490c565b6106226132988b5f61490c565b61061d8c602461490c565b90505f6132cd6132b48a601d61490c565b6106226132c28c600161490c565b61061d8d602561490c565b905061330c6132f46132e685610622868d5f015161208d565b610622848c6020015161208d565b6106226133028c600461490c565b8b6040015161208d565b93505050505f61332061316a88602061490c565b90505f61333161316a89602061490c565b90505f6133696133506133458b602261490c565b6106228c600661490c565b61064061335e8c602261490c565b61061d8d600661490c565b90505f61338d61338761337c878961208d565b61061d8d602061490c565b836120bf565b9050613399818861208d565b90505f6133c16133b36133ad8d600661490c565b8761208d565b6106406133ad8e602161490c565b90505f6133cf8c602261490c565b90505f6133df613387838461208d565b60808c0185905260a08c0184905290506133f9818b61208d565b8b6006602002015250505050505050505050505050565b5f61341c5f60016120bf565b90505f61342a5f60026120bf565b90505f6134385f60036120bf565b90505f61345461344988601c61490c565b61064089601b61490c565b90505f61347061346589601d61490c565b6106408a601c61490c565b90505f61348c6134818a601e61490c565b6106408b601d61490c565b90505f6134a861349d8b602361490c565b6106408c601e61490c565b9050836134b98161061d818b6120a6565b90506134c98161061d878a6120a6565b90506134d98161061d87896120a6565b90506134ea8161061d8d600861490c565b90506134f6818a61208d565b60e08b0152508261350b8161061d818b6120a6565b905061351b8161061d868a6120a6565b905061352b8161061d86896120a6565b905061353c8161061d8d600861490c565b9050613548818a61208d565b6101008b0152508161355e8161061d818b6120a6565b905061356e8161061d858a6120a6565b905061357e8161061d85896120a6565b905061358f8161061d8d600861490c565b905061359b818a61208d565b6101208b015250806135b18161061d818b6120a6565b90506135c18161061d848a6120a6565b90506135d18161061d84896120a6565b90506135e28161061d8d600861490c565b90506135ee818a61208d565b610140909a019990995250505050505050505050565b61363d6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61364884601c61490c565b815261365584601d61490c565b602082015261366584602361490c565b604082015261367584602661490c565b606082015261368584602561490c565b608082015261369584602461490c565b60a08201525f6136a685600261490c565b90505f6136b3865f61490c565b90505f6136c78460400151855f01516120bf565b90505f6136dc8560200151866020015161208d565b606086015190915086905f906136f2908061208d565b90505f61371061370a89602001518a6060015161208d565b8861208d565b90505f61372f6137288a60a001518b604001516120a6565b8a516120a6565b905061373e6133ad828861208d565b905061376561375f61375961375384876120bf565b886120bf565b846120a6565b836120a6565b905061378d613782613777838761208d565b61061d8f600961490c565b61061d60018a6120bf565b6101608c015250505050602085015160808601515f916137ac916120a6565b90505f6137ca6137c088606001518861208d565b88602001516120bf565b90505f6137ee6137da848761208d565b61062261319f8b60a001518c5f01516120bf565b905061381661380b613800838c61208d565b61061d8e600961490c565b61061d6001896120bf565b6101808b0152505f915061383790506138308360116120a6565b875161208d565b90505f61384483846120a6565b905061385081826120a6565b90505f61385e83600961208d565b905061388761388161316a61387a8b60a001518c5f01516120a6565b8b516120a6565b826120bf565b60c089018190525f906138a29061370a90613777908d61208d565b90506138b58b600b6020020151826120a6565b6101608c0152505086515f92506138dc9150613830906138d590806120a6565b88516120a6565b90505f61391c6138f78361061d8a5f01518b60a001516120bf565b60208901516106409061390a90806120a6565b61061d8b602001518c608001516120a6565b905061393989600c602002015161062261370a613777858d61208d565b89600c602002015250505050505050505050565b6139e1604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613a166139fd6139f287601b61490c565b61061d88602461490c565b610622613a0b88602361490c565b61061d89601c61490c565b8152613a5b613a50613a37613a2c88601b61490c565b61061d89601e61490c565b610622613a4589601c61490c565b61061d8a601d61490c565b61064087602561490c565b60408201819052613a7090600160441b61208d565b60408201819052613a869061064087602661490c565b604082018190528151613a9991906120a6565b60408201819052613aaf9061061d87600561490c565b60408201528051613ac490600160441b61208d565b808252613ae490610622613ad988602361490c565b61061d89602461490c565b80825260208201819052613b0090610640612f9088601d61490c565b60208201819052613b169061061d87600461490c565b6020820152805160608201819052613b339061062287601e61490c565b60608201819052613b5790610640613b4c88602561490c565b61062289602661490c565b60608201819052613b6c9061061d875f61490c565b8160600181815250505f613b95613b8b836020015184604001516120a6565b83606001516120a6565b9050613ba68161061d88600361490c565b9050613bbe613bb687602461490c565b61400061208d565b60808301819052613bd49061062288602361490c565b60808301819052613be79061400061208d565b60808301819052613bfd9061062288601d61490c565b60808301819052613c109061400061208d565b60808301819052613c269061062288601c61490c565b60808301819052613c399061400061208d565b60808301819052613c4f9061062288601b61490c565b60808301819052613c659061064088601e61490c565b60808301819052613c7b9061061d88600561490c565b6080830152613c8e613bb687602561490c565b60a08301819052613ca49061062288602461490c565b60a08301819052613cb79061400061208d565b60a08301819052613ccd9061062288602361490c565b60a08301819052613ce09061400061208d565b60a08301819052613cf69061062288601e61490c565b60a08301819052613d099061400061208d565b60a08301819052613d1f9061062288601d61490c565b60a08301819052613d359061064088602661490c565b60a08301819052613d4a9061061d885f61490c565b60a0830181905260808301515f91613d6291906120a6565b9050613d738161061d89600461490c565b9050613d8d613d8388601d61490c565b876040015161208d565b60c08401819052613da6906106226132218a601c61490c565b60c08401819052613dc690610622613dbf8a601b61490c565b895161208d565b60c08401819052613ddc9061062289600161490c565b60c0840181905260e08401819052613df99061064089601e61490c565b60c0840152613e0c61344988602361490c565b610140840152613e2b613e2088602661490c565b61064089601e61490c565b610120840152610140830151613e5090613e45908061208d565b8461014001516120bf565b610280840152610140830151613e9290613e8790613e809061061d60015f5160206152c45f395f51905f52614fd5565b60016120a6565b84610120015161208d565b6101608401819052613ec990613ebb9061061d613eb08b600261490c565b61061d8c600361490c565b61061d6133ad8a600a61490c565b6101c0860152610280830151613eeb90613ebb9061061d613eb08b600261490c565b6101e086015260c0830151613f139061061d613f088a600261490c565b61061d8b600361490c565b6101e08401525f613f32613f2889601e61490c565b8560e001516120bf565b9050613f41613881828361208d565b6101a0850152613f5561323989602561490c565b6101008501819052613f7990610622613f6f8b602461490c565b8a6020015161208d565b6101008501819052613f939061062261320c8b602361490c565b610100850152613fb2613fa789602661490c565b8561010001516120bf565b6101008501525f613fc76134818a602561490c565b905061401b613ff5612eb8613e8088610140015160015f5160206152c45f395f51905f5261061d9190614fd5565b61061d613e8088610100015160015f5160206152c45f395f51905f5261061d9190614fd5565b61018086015261010085015161404090614035908061208d565b8661010001516120bf565b6101c08601526101808501516140739061405f9061061d8c600761490c565b61061d61406d8c600a61490c565b8961208d565b6102008801526102808501516140929061405f9061061d8c600761490c565b6102208801526101c08501516140b19061405f9061061d8c600761490c565b6102408801526101a08501516140cc9061061d8b600761490c565b6102008601526140eb6140e08a602461490c565b6106408b601c61490c565b61022086015261014085015161412a906134819061411f90613e809061061d60015f5160206152c45f395f51905f52614fd5565b87610220015161208d565b61024086018190526101e08601516102608701819052614161916106229061061d6141568e600561490c565b61061d8f600261490c565b610260860181905260c086015161418491906106229061061d6141568e5f61490c565b610260860181905261020086015161419c91906120a6565b61026086018190526141b29061375990866120a6565b6102a086018190526141cc9061061d61406d8c600a61490c565b6102a0860181905287600d6020020152505050505050505050565b61425d6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61427661426b85601b61490c565b61062286600261490c565b815261429161428685601c61490c565b61062286600361490c565b60208201526142af6142a485601d61490c565b61062286600461490c565b60408201526142cd6142c285601e61490c565b61062286600561490c565b606082015280516142ff906142f8906142f1906142ea908061208d565b845161208d565b835161208d565b825161208d565b6080820152602081015161433d90614333906143299061431f908061208d565b846020015161208d565b836020015161208d565b826020015161208d565b60a0820152604081015161437b90614371906143679061435d908061208d565b846040015161208d565b836040015161208d565b826040015161208d565b60c082015260608101516143b9906143af906143a59061439b908061208d565b846060015161208d565b836060015161208d565b826060015161208d565b60e0820152608081015160a08201516143d291906120a6565b61010082015260c081015160e08201516143ec91906120a6565b61012082015260a08101516144109061440590806120a6565b8261012001516120a6565b61014082015260e08101516144349061442990806120a6565b8261010001516120a6565b61016082015261012081015161444a90806120a6565b6101e0820181905261446b9061446090806120a6565b8261016001516120a6565b6101e082015261010081015161448190806120a6565b6101a082018190526144a29061449790806120a6565b8261014001516120a6565b6101a082018190526101608201516144b9916120a6565b6101808201526101408101516101e08201516144d591906120a6565b6101c08201526144e9612eb885600b61490c565b6102008201819052610260840151610180830151614514926106229161061d906106408a602361490c565b8360136020020152614544836014602002015161062283610200015161061d856101a001516106408a602461490c565b8360146020020152614574836015602002015161062283610200015161061d856101c001516106408a602561490c565b83601560200201526145a4836016602002015161062283610200015161061d856101e001516106408a602661490c565b836016602002015250505050565b6146046040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806146397f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e761206f565b81526020016146677f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b61206f565b81526020016146947e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac1561206f565b81526020016146c27f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b61206f565b905290506146df6146d486601b61490c565b61062287600261490c565b61012083018190526147139061470890613e87906146fd908061208d565b85610120015161208d565b83610120015161208d565b825261472085601c61490c565b602083015261473085601d61490c565b604083015261474085601e61490c565b60608301528151602083015161476891613b8b9161475e91906120a6565b84604001516120a6565b608083015261477b61316a86600c61490c565b610140830152815161479c9061479290835f610edb565b83608001516120a6565b60a08301526147c8846017602002015161062284610140015161061d8660a001516106408b602361490c565b6102e085015260208201516147e39061479290836001610edb565b60c083015261480f846018602002015161062284610140015161061d8660c001516106408b602461490c565b610300850152604082015161482a9061479290836002610edb565b60e0830152614856846019602002015161062284610140015161061d8660e001516106408b602561490c565b61032085015260608201516148719061479290836003610edb565b61010083015261489f84601a602002015161062284610140015161061d8661010001516106408b602661490c565b84601a612ff1565b5f6148b38184816108b3565b905060015b601b811015614905576148fb826106228684601b81106148da576148da615022565b6020020151866148eb600187614fd5565b601a8110610edb57610edb615022565b91506001016148b8565b5092915050565b5f828260278111156149205761492061526f565b6028811061493057614930615022565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f8152602001614962614df7565b815260200161496f614df7565b815260200161497c614df7565b8152602001614989614df7565b8152602001614996614df7565b81526020016149a3614df7565b81526020016149b0614df7565b81526020016149bd614df7565b81526020016149ca614df7565b81526020016149d7614df7565b81526020016149e4614df7565b81526020016149f1614df7565b81526020016149fe614df7565b8152602001614a0b614df7565b8152602001614a18614df7565b8152602001614a25614df7565b8152602001614a32614df7565b8152602001614a3f614df7565b8152602001614a4c614df7565b8152602001614a59614df7565b8152602001614a66614df7565b8152602001614a73614df7565b8152602001614a80614df7565b8152602001614a8d614df7565b8152602001614a9a614df7565b8152602001614aa7614df7565b8152602001614ab4614df7565b905290565b604051806101e00160405280614acd614e2e565b8152602001614ada614c8d565b8152602001614ae7614c8d565b8152602001614af4614c8d565b8152602001614b01614c8d565b8152602001614b0e614c8d565b8152602001614b1b614c8d565b8152602001614b28614c8d565b8152602001614b35614c8d565b8152602001614b42614e4d565b8152602001614b4f614e7b565b8152602001614b5c614e9a565b8152602001614b69614d1f565b8152602001614b76614c8d565b8152602001614ab4614c8d565b604051806101000160405280614b97614cb1565b8152602001614ba4614ce1565b8152602001614bb1614d1f565b8152602001614bbe614d1f565b81526020015f81526020015f81526020015f81526020015f81525090565b6040518061018001604052805f81526020015f81526020015f81526020015f81526020015f8152602001614c0e614ec8565b8152602001614c1b614ec8565b81526020015f81526020015f81526020015f81526020015f8152602001614ab4614d1f565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b614c77614df7565b815260200190600190039081614c6f5790505090565b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806103400160405280601a906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103600160405280601b906020820280368337509192915050565b60405180604001604052805f81526020015f81525090565b604051806101a00160405280600d906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b614e65614db9565b815260200190600190039081614e5d5790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b614eb2614c8d565b815260200190600190039081614eaa5790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f60408587031215614ef9575f5ffd5b84356001600160401b03811115614f0e575f5ffd5b8501601f81018713614f1e575f5ffd5b80356001600160401b03811115614f33575f5ffd5b876020828401011115614f44575f5ffd5b6020918201955093508501356001600160401b03811115614f63575f5ffd5b8501601f81018713614f73575f5ffd5b80356001600160401b03811115614f88575f5ffd5b8760208260051b8401011115614f9c575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761208757612087614faa565b8181038181111561208757612087614faa565b8082018082111561208757612087614faa565b5f5f85851115615009575f5ffd5b83861115615015575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161504757615047614faa565b5060010190565b80356020831015612087575f19602084900360031b1b1692915050565b5f8183825b600981101561508f578151835260209283019290910190600101615070565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f826150c1576150c161509f565b500490565b5f8183825b60298110156150ea5781518352602092830192909101906001016150cb565b5050506105208201905092915050565b5f8183825b606d81101561511e5781518352602092830192909101906001016150ff565b505050610da08201905092915050565b5f8183825b601d811015615152578151835260209283019290910190600101615133565b5050506103a08201905092915050565b5f8183825b6005811015615186578151835260209283019290910190600101615167565b50505060a08201905092915050565b5f826151a3576151a361509f565b500690565b5f816151b6576151b6614faa565b505f190190565b5f82518060208501845e5f920191825250919050565b5f602082840312156151e3575f5ffd5b815180151581146119eb575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b82811015615230578151845260209384019390910190600101615212565b509195945050505050565b5f8183825b600d81101561525f578151835260209283019290910190600101615240565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe696e76616c6964206e756d626572206f6620627974657320746f20636f6e737430644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
|
|
4
|
+
export declare const HonkVerifierBytecode = "0x60e060405234801561000f575f5ffd5b506302000000608052601960a05260ae60c05260805160a05160c0516152e56100605f395f818160d6015261065001525f818161075b01528181610d030152610da001525f6105f401526152e55ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004614ee7565b610054565b604051901515815260200160405180910390f35b5f6100626101c86020614fbf565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a6101c1565b90505f61009787876101d6565b9050601082604001516100aa9190614fd6565b84146100c95760405163fa06659360e01b815260040160405180910390fd5b5f6100fc828787865f01517f0000000000000000000000000000000000000000000000000000000000000000600161052f565b905061014c8686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050855185516060810151608090910151919350915060016105de565b815160a001525f61015d8383610753565b90508061017d576040516313f8744360e31b815260040160405180910390fd5b5f610189848685610854565b9050806101a9576040516352ec174560e11b815260040160405180910390fd5b8180156101b35750805b9a9950505050505050505050565b6101c961493d565b6101d161109e565b905090565b6101de614aba565b5f805b60108110156102405761020d8583866101fb826020614fe9565b9261020893929190614ffc565b611985565b8351826010811061022057610220615023565b6020020181815250506020826102369190614fe9565b91506001016101e1565b50610264848285610252826080614fe9565b9261025f93929190614ffc565b6119f3565b6020830152610274608082614fe9565b9050610287848285610252826080614fe9565b6040830152610297608082614fe9565b90506102aa848285610252826080614fe9565b60608301526102ba608082614fe9565b90506102cd848285610252826080614fe9565b60c08301526102dd608082614fe9565b90506102f0848285610252826080614fe9565b60e0830152610300608082614fe9565b9050610313848285610252826080614fe9565b6080808401919091526103269082614fe9565b9050610339848285610252826080614fe9565b61010083015261034a608082614fe9565b905061035d848285610252826080614fe9565b60a083015261036d608082614fe9565b90505f5b601c8110156103ec575f5b60088110156103e3576103968684876101fb826020614fe9565b84610120015183601c81106103ad576103ad615023565b602002015182600881106103c3576103c3615023565b6020020181815250506020836103d99190614fe9565b925060010161037c565b50600101610371565b505f5b6028811015610440576104098583866101fb826020614fe9565b836101400151826028811061042057610420615023565b6020020181815250506020826104369190614fe9565b91506001016103ef565b505f5b61044f6001601c614fd6565b81101561049857610467858386610252826080614fe9565b83610160015182601b811061047e5761047e615023565b602002015261048e608083614fe9565b9150600101610443565b505f5b601c8110156104ec576104b58583866101fb826020614fe9565b83610180015182601c81106104cc576104cc615023565b6020020181815250506020826104e29190614fe9565b915060010161049b565b506104fe848285610252826080614fe9565b6101a083015261050f608082614fe9565b9050610522848285610252826080614fe9565b6101c08301525092915050565b610537614b84565b5f61054788888888888887611ad2565b90835290506105568189611b28565b6020840191909152905061056981611c79565b6040840191909152905061057d8882611cda565b606084019190915290506105918882611dae565b608084019190915290506105a58882611e39565b60a084019190915290506105b98882611fa7565b60c084019190915290506105cd8882612019565b5060e0830152509695505050505050565b5f60018082610627866106228961061d6106188a7f0000000000000000000000000000000000000000000000000000000000000000614fe9565b612070565b61208e565b6120a7565b90505f610645876106408a61061d6106188b6001614fe9565b6120c0565b90505f5b61067460107f0000000000000000000000000000000000000000000000000000000000000000614fd6565b8110156106e1575f61069e8c838151811061069157610691615023565b6020026020010151612070565b90506106ae8661061d86846120a7565b95506106be8561061d85846120a7565b94506106ca848b6120a7565b93506106d6838b6120c0565b925050600101610649565b505f5b6010811015610748575f8a826010811061070057610700615023565b602002015190506107158661061d86846120a7565b95506107258561061d85846120a7565b9450610731848b6120a7565b935061073d838b6120c0565b9250506001016106e4565b506101b384846120ef565b5f806001815b7f000000000000000000000000000000000000000000000000000000000000000081101561082a575f86610120015182601c811061079957610799615023565b602002015190505f6107ab82866120fd565b9050806107cb576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106107e2576107e2615023565b602002015190506107f3838261211a565b955061081a886040015185601c811061080e5761080e615023565b602002015186836122c9565b9450505050806001019050610759565b505f610844866101400151865f01518760200151856122f4565b90508281145b9695505050505050565b5f61085d614bdd565b5f61086b8460a00151612362565b9050610875614c41565b61087d614c60565b60e086015161089c9061089790855f5b60200201516120c0565b6123c7565b60e0808601919091528601516108bd9061089790855f5b60200201516120a7565b610100850181905260e085015160c08801516108dd92610622919061208e565b845260a086015161090c906108f1906123c7565b61061d8660e001516106408a60c0015189610100015161208e565b6020850152600182526101a088015161092490612430565b81526001606085018190525f60808601525b602381116109dc5761095761094d865f015161246f565b866060015161208e565b83826046811061096957610969615023565b602002015260808501516101408a01516109ac91906106229061098d600186614fd6565b6028811061099d5761099d615023565b6020020151886060015161208e565b8560800181815250506109c78560600151886080015161208e565b60608601526109d581615037565b9050610936565b505f6109ea60236001614fe9565b90505b60288111610a6b57610a0561094d866020015161246f565b838260468110610a1757610a17615023565b602002015260808501516101408a0151610a3b91906106229061098d600186614fd6565b856080018181525050610a568560600151886080015161208e565b6060860152610a6481615037565b90506109ed565b50606087015181600160200201526080870151816002602002015260a0870151816003602002015260c0870151816004602002015260e0870151816005602002015261010087015181600660200201526101208701518160076020020152610140870151816008602002015261016087015181600960200201526101a087015181600a602002015261018087015181600b60200201526101c087015181600c60200201526101e087015181600d602002015261020087015181600e602002015261022087015181600f60200201526102408701518160106020020152610260870151816011602002015261028087015181601260200201526102a087015181601360200201526102c087015181601460200201526102e08701518160156020020152610300870151816016602002015261032087015181601760200201526103408701518160186020020152610360870151816019602002015261038087015181601a60200201526103a087015181601b6020020181905250610bf18860200151612430565b6103808201526040880151610c0590612430565b6103a08201526060880151610c1990612430565b6103c08201526080880151610c2d90612430565b6103e082015260a0880151610c4190612430565b610400820152610100880151610c5690612430565b61042082015260c0880151610c6a90612430565b61044082015260e0880151610c7e90612430565b6104608201526020880151610c9290612430565b6104808201526040880151610ca690612430565b6104a08201526060880151610cba90612430565b6104c08201526080880151610cce90612430565b6104e082015260a0880151610ce290612430565b610500820152606086015160808501516101808a01515f92610d27929091877f0000000000000000000000000000000000000000000000000000000000000000612487565b805160e0870151919250610d3a9161208e565b604086018190526101808a01515160c0890151610d6b929161062291610d60919061208e565b88610100015161208e565b604086015260c0870151610d7e906125a2565b60608601525f5b610d916001601c614fd6565b811015610f99575f610dc460017f0000000000000000000000000000000000000000000000000000000000000000614fd6565b821015905080610f3f57610df76108978a60e0015188856001610de79190614fe9565b601c811061088d5761088d615023565b60e080890191909152890151610e27906108979088610e17866001614fe9565b601c81106108b3576108b3615023565b610100880152606087015160e0880151610e41919061208e565b610120880152606087015160c08a0151610e5e91610d609161208e565b6101408801819052610e8190610e739061246f565b61062289610120015161246f565b8583610e8f60286001614fe9565b610e999190614fe9565b60468110610ea957610ea9615023565b60200201526101408701516101808c01515f91610ee591610ecb866001614fe9565b601c8110610edb57610edb615023565b602002015161208e565b9050610f02816106228a610120015187876001610ecb9190614fe9565b9050610f128860400151826120a7565b6040890152606088015160c08b0151610f3891610f2e9161208e565b8b60c0015161208e565b6060890152505b610f638b610160015183601b8110610f5957610f59615023565b6020020151612430565b8483610f7160286001614fe9565b610f7b9190614fe9565b60468110610f8b57610f8b615023565b602002015250600101610d85565b5060408051808201909152600181526002602082015282610fbc601c6028614fe9565b60468110610fcc57610fcc615023565b6020020152604085015183610fe3601c6028614fe9565b60468110610ff357610ff3615023565b60200201526101c08901515f9061100990612430565b90508083611019601c6028614fe9565b611024906001614fe9565b6046811061103457611034615023565b602002015260e08801518461104b601c6028614fe9565b611056906001614fe9565b6046811061106657611066615023565b60200201525f61107684866125ad565b90505f61108283612673565b905061108e82826126b9565b9c9b505050505050505050505050565b6110a661493d565b50604080516103c08101825263020000008152601960208083019190915260ae82840152825180840184527f22696def6ba042691d7acd6fa25934fe1c9e5de5c469612391ebd22c48be0f8081527f2dc236171d93e509ede0fd359d1d47271883927333e7669bf48f0784fadb673c818301526060830152825180840184527f0bc785e8f051e28438dae007d21d94441afc7b888c94e2e6a3befd5e835c362a81527f2db6375b7cac58eef6ee93462a215d18a6f53e104ee53c527aa6b87f070effac818301526080830152825180840184527f12b7b6d578593ed283c59e2eb69176e9cde8068f657d228a935b6f0fc2b43baa81527f214a606183ed469bcc1d34c77fdbace499f918bd9726d4459d2d7c91a518b2738183015260a0830152825180840184527f18f8c2805dee1fdea805a4173d12643b1b24bb352374859851703ff77fb0ac1e81527f1f3aa367e3de395b1f684432c49a16e9f30292beeb15f25b186c9472c072bde68183015260c0830152825180840184527f0e410bf26af1978d4ca2440c6f55406c8fb930ecb1f052480c221c50c0289d6c81527f089da36b9216fb5679acaa2f41291689d394af1bc2fae9db4d5540fa956020a48183015260e0830152825180840184527f0da8119fa8fc399f4904cec5e1d0b9aaefe7256297a2151d61612b7002f400af81527f2596c9a11637799c8ad71ff6fea1f96f36def0b3ec40a1b71c623ef388fe83dc81830152610100830152825180840184527f107d2d79c20982125b9f302008ecbd7b7f25eebc71271311c28f58223170c78b81527f0f3c9104533084fca88d92d900c94cb1400899b1c3c2b40cf32807f7d8517f4781830152610120830152825180840184527f1951fc625025ca763cac91d30a1574a060830934789bd547a43b2103a7e84beb81527f0486f6b8c90f9363d898ee8964f3fed10a67d63de21cf285004abca9a9731d2981830152610140830152825180840184527f0354da312985896e31fbfbd7131af497a257877abe81dcb4aa8e8fbdd13b051481527f25d6652f1323d49067e2fec59e422d6796344df25044821e1e7408d9bd3f3cfb81830152610160830152825180840184527f22df977d5ef467d4731103a23e9d2137539cf9a112de5ccceef105a59790e40781527f1f3652575e985375d282d5bbeec17a6bbff3257ed22ef54134c8f0640e47338281830152610180830152825180840184527f27cc327364079b1e7d81a8962fe981187c2a331197513451a2372a8ef3ed3e7381527f0c7865e5b377f695a60ac352a193f9bbdb722d538a0fdfe34ca9455cecc3cf31818301526101a0830152825180840184527f1e864805831de2f312142f0cdb28d9799ed4758ccec32456aeb71e6c214454f881527f1e043e1fab8ff92cd7091ce6cc4a06291f3b408ccb87a104a42e48ba961f3cf9818301526101c0830152825180840184527f2316113dac58cacfbf02275257d1bf07154876a7e4d7b5aec9e63ae5134ab94581527f1cf38b5f697f6d2bd3f06e46c9fe03c93acf1556b0677848314130e53e1f27b5818301526101e0830152825180840184527f20c9b6a09e4cd18ea34483a257722597242273cd7baf010a60f09fd25e388a9581527f19bae9fba8320ce1a68d5317604c8f5d8a94ebb0b87955970285015abb2af9bb81830152610200830152825180840184527f1f7006852e1afaad20d30ce0e37a0c19384fdb779e7c3888141e7121059b4ed681527f0dddfa19796d5302b78797d3cc38975a59d37d73f5e1a67d64256dce2c8c1fc481830152610220830152825180840184527f2a754f9f52c759f0b70df69f50194b475e822c6272667e31e22e843b66ddf74381527f1938e68acc23ed0ee57a5ced4f2e12a6751da1e7ea3d8e76f6a709003798e3a681830152610240830152825180840184527f1d019605ead26ec05976012bc6a62878235d2e1f14cd7a58c6acd4c7ab28523881527f1893a0c07f22d3bb10acbe0b6c417df8b78b8a1ee6a56d3ab18f36557af0ac2781830152610260830152825180840184527f29e324a26d863a2390f2ed2c2a7823d65aa877934064c8d27ce0cfd90f116d5a81527f036ae82a7c729b2588a5ec964632703a38a3b49dca955f1f96b82867c1ff1e0a81830152610280830152825180840184527f0a654cd867ee3d600ef4c89eb02d71420f08a6acaa5f39f96f99bfd07cc35e4181527f01a061aaff968b4eb5d9146cef0d4b6c538d53a26e1ba71bbbd376d4214d1983818301526102a0830152825180840184527f074d9534828a7c8ec0c6064d640447b700311f108d67def19fceeb734592c53f81527f1ff29032983e9aab2e25db7eef479799e4039c100284fe877ed78a3e8b057696818301526102c0830152825180840184527f1176bf2829bd97cca0a9b315335df4a1a368e63255c2e697f0f70a24aee9e6eb81527f179efce3df1390e0ab671ede6889762c35a1a811e8f15cd671c41df987a0f38c818301526102e0830152825180840184527f275a0bb22f8c37a3476d71c556d266909fdde001df48d48a78940343ccb0b48a81527f2a4cc2119d1bd729845e8630c5b1aec652a2f2a7ae690c52238e3eafd44b385681830152610300830152825180840184527f1e1d6ac562a951aa01bc279a090d34488936a6404b3c75294fd260df0d36689381527f1643515b25c47e776b6d99eb3ce8b4613b209886681842e5c39ee92efe72c27281830152610320830152825180840184527f09d569252b4b229e483b00b1e67384ac4db29395d32e28c82f8b73983d30ac6b81527f2c47d5809e56ba32be655d4177db195bb450fd12587756c4b85b6506a7844ddb81830152610340830152825180840184527f1f59b85de9212665c6c3e59fb35ab6609d72f5ad8007449dc8019a5886fad88f81527f21c9b787b5e0109e8ab3c2293b8c67fa9ec871818722fb8bea77aa6477aaae4c81830152610360830152825180840184526001815260028183015261038083015282518084019093527f27d06697a891eae97032a6d3b390cedea50b8bcc9e6bc3b810905f4a265f4d1583527f11fe9108de55a1aeeebde848798ad77b7b21c3622180619df21c6f97f8bddf0d908301526103a081019190915290565b5f602082146119df5760405162461bcd60e51b815260206004820152602e60248201525f5160206152855f395f51905f5260448201526d393ab1ba1023391039b1b0b630b960911b60648201526084015b60405180910390fd5b6119ec610618838561504f565b9392505050565b6119fb614c8e565b60808214611a505760405162461bcd60e51b815260206004820152602f60248201525f5160206152855f395f51905f5260448201526e1c9d58dd08184811cc481c1bda5b9d608a1b60648201526084016119d6565b604080516080810190915280611a6960205f8688614ffc565b611a729161504f565b8152602090810190611a88906040908688614ffc565b611a919161504f565b8152602001611aa4606060408688614ffc565b611aad9161504f565b8152602001611ac0608060608688614ffc565b611ac99161504f565b90529392505050565b611ada614cb2565b5f611ae98989898989896128ad565b604086019190915260208501919091529083529250611b08838a612d53565b608085019190915260608401919091529199919850909650505050505050565b611b30614ce2565b5f611b39614d01565b848152610100848101805151602080850191909152815181015160408086019190915282518101516060808701919091529251830151608086015260a080890180515191870191909152805183015160c0870152805182015160e087015251909201519284019290925251611bcf91611bb49184910161506c565b60405160208183030381529060405280519060200120612070565b9150611bda82612e22565b6020850152835260015b611bf06002601a6150b4565b811015611c7057611c0d83604051602001611bb491815260200190565b9250611c1883612e22565b85611c24846002614fbf565b601a8110611c3457611c34615023565b6020020186611c44856002614fbf565b611c4f906001614fe9565b601a8110611c5f57611c5f615023565b602002019190915252600101611be4565b50509250929050565b611c81614d20565b5f805b601c811015611cd357611ca384604051602001611bb491815260200190565b93505f611caf85612e22565b8584601c8110611cc157611cc1615023565b60200201919091525050600101611c84565b5090929050565b611ce2614d20565b5f805b601c811015611da557611cf6614d01565b8481525f5b6008811015611d5f5786610120015183601c8110611d1b57611d1b615023565b60200201518160088110611d3157611d31615023565b602002015182611d42836001614fe9565b60098110611d5257611d52615023565b6020020152600101611cfb565b50611d7481604051602001611bb4919061506c565b94505f611d8086612e22565b8685601c8110611d9257611d92615023565b6020020191909152505050600101611ce5565b50909391925050565b5f5f611db8614d3f565b8381525f5b6028811015611e0b578561014001518160288110611ddd57611ddd615023565b602002015182611dee836001614fe9565b60298110611dfe57611dfe615023565b6020020152600101611dbd565b50611e2081604051602001611bb491906150c7565b91505f611e2c83612e22565b5096929550919350505050565b5f5f611e43614d5e565b8381525f5b611e546001601c614fd6565b811015611f925785610160015181601b8110611e7257611e72615023565b60200201515182611e84836004614fbf565b611e8f906001614fe9565b606d8110611e9f57611e9f615023565b602002015261016086015181601b8110611ebb57611ebb615023565b60200201516020015182826004611ed29190614fbf565b611edd906002614fe9565b606d8110611eed57611eed615023565b602002015261016086015181601b8110611f0957611f09615023565b60200201516040015182611f1e836004614fbf565b611f29906003614fe9565b606d8110611f3957611f39615023565b602002015261016086015181601b8110611f5557611f55615023565b60200201516060015182611f6a836004614fbf565b611f75906004614fe9565b606d8110611f8557611f85615023565b6020020152600101611e48565b50611e2081604051602001611bb491906150fb565b5f5f611fb1614d7d565b8381525f5b601c8110156120045785610180015181601c8110611fd657611fd6615023565b602002015182611fe7836001614fe9565b601d8110611ff757611ff7615023565b6020020152600101611fb6565b50611e2081604051602001611bb4919061512f565b5f5f612023614d9c565b8381526101a085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611e2091611bb491849101615163565b5f6120885f5160206152c55f395f51905f5283615196565b92915050565b5f5f5160206152c55f395f51905f528284099392505050565b5f5f5160206152c55f395f51905f528284089392505050565b5f5f5160206152c55f395f51905f526120e6835f5160206152c55f395f51905f52614fd6565b84089392505050565b5f6119ec8361061d846123c7565b81515f90819061210f908560016108b3565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b6008811015612201576121f78261061d87846120c0565b91506001016121e0565b5061220a614dba565b5f5b600881101561226b575f84826008811061222857612228615023565b6020020151905061223d8161061d89856120c0565b9050612248816123c7565b90508083836008811061225d5761225d615023565b60200201525060010161220c565b505f5b60088110156122be575f87826008811061228a5761228a615023565b602002015190506122a781848460088110610edb57610edb615023565b90506122b386826120a7565b95505060010161226e565b5061084a848361208e565b5f5f6122df60016106228561061d8960016120c0565b90506122eb848261208e565b95945050505050565b5f6122fd614dd9565b612308868285612e52565b61231486868386612ffe565b612320868683866131e6565b61232b868285613411565b612336868285613605565b6123428686838661394e565b61234d8682856141e8565b6123588682856145b3565b61084a81856148a8565b61236a614d20565b81815260015b601c8110156123c1576123a282612388600184614fd6565b601c811061239857612398615023565b60200201516125a2565b8282601c81106123b4576123b4615023565b6020020152600101612370565b50919050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f5160206152c55f395f51905f520360808201525f5160206152c55f395f51905f5260a082015260205f60c08360055afa905080612425575f5ffd5b50505f519392505050565b612438614df8565b604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f612088825f5160206152c55f395f51905f52614fd6565b61248f614d20565b601c5b8015612598575f846124a5600184614fd6565b601c81106124b5576124b5615023565b602002015190505f886124c9600185614fd6565b601c81106124d9576124d9615023565b602002015190505f6125346124f86124f1858c61208e565b600261208e565b6106408a612507600189614fd6565b601c811061251757612517615023565b602002015161061d61252e8861061d60018a6120c0565b876120c0565b90506125558161061d61089761254f8761061d6001896120c0565b866120a7565b905085841161258457975087808561256e600187614fd6565b601c811061257e5761257e615023565b60200201525b50505080612591906151a9565b9050612492565b5095945050505050565b5f612088828361208e565b6125b5614df8565b5f6125c2601c6028614fe9565b6125cd906002614fe9565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b8381101561265b5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612602565b50805184526020810151602085015250505092915050565b61267b614df8565b5f5160206152a55f395f51905f5282602001515f5160206152a55f395f51905f526126a69190614fd6565b6126b09190615196565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b03168360405161284f91906151be565b5f60405180830381855afa9150503d805f8114612887576040519150601f19603f3d011682016040523d82523d5f602084013e61288c565b606091505b509150915081801561084a57508080602001905181019061084a91906151d4565b5f808080806128bd876003614fe9565b6128c890600c614fe9565b6001600160401b038111156128df576128df6151f3565b604051908082528060200260200182016040528015612908578160200160208202803683370190505b509050875f1b815f8151811061292057612920615023565b602002602001018181525050865f1b8160018151811061294257612942615023565b602002602001018181525050855f1b8160028151811061296457612964615023565b60209081029190910101525f5b61297c601089614fd6565b8110156129cd578a8a8281811061299557612995615023565b90506020020135828260036129aa9190614fe9565b815181106129ba576129ba615023565b6020908102919091010152600101612971565b505f5b6010811015612a3e578b516129f89082601081106129f0576129f0615023565b602002015190565b82826010612a078c6003614fe9565b612a119190614fd6565b612a1b9190614fe9565b81518110612a2b57612a2b615023565b60209081029190910101526001016129d0565b5060208b01515181612a51896003614fe9565b81518110612a6157612a61615023565b6020908102919091018101919091528b810151015181612a82896003614fe9565b612a8d906001614fe9565b81518110612a9d57612a9d615023565b6020908102919091018101919091528b01516040015181612abf896003614fe9565b612aca906002614fe9565b81518110612ada57612ada615023565b6020908102919091018101919091528b01516060015181612afc896003614fe9565b612b07906003614fe9565b81518110612b1757612b17615023565b602090810291909101015260408b01515181612b34896003614fe9565b612b3f906004614fe9565b81518110612b4f57612b4f615023565b60209081029190910181019190915260408c0151015181612b71896003614fe9565b612b7c906005614fe9565b81518110612b8c57612b8c615023565b60209081029190910101526040808c0151015181612bab896003614fe9565b612bb6906006614fe9565b81518110612bc657612bc6615023565b602090810291909101015260408b01516060015181612be6896003614fe9565b612bf1906007614fe9565b81518110612c0157612c01615023565b602090810291909101015260608b01515181612c1e896003614fe9565b612c29906008614fe9565b81518110612c3957612c39615023565b60209081029190910181019190915260608c0151015181612c5b896003614fe9565b612c66906009614fe9565b81518110612c7657612c76615023565b602090810291909101015260608b01516040015181612c96896003614fe9565b612ca190600a614fe9565b81518110612cb157612cb1615023565b60209081029190910101526060808c0151015181612cd0896003614fe9565b612cdb90600b614fe9565b81518110612ceb57612ceb615023565b602002602001018181525050612d0b81604051602001611bb49190615207565b9150612d1682612e22565b6040805160208101869052929750909550612d319101611bb4565b91505f612d3d83612e22565b50959c949b509499509097509195505050505050565b5f5f5f612d5e614e10565b85815260c085810180515160208085019190915281518101516040808601919091528251810151606080870191909152925183015160808087019190915260e0808b0180515160a089015280518501519688019690965285518301519087015293518301516101008601529288018051516101208601528051820151610140860152805184015161016086015251909101516101808401529051612e0891611bb49184910161523c565b9150612e1382612e22565b90979096509194509092505050565b5f80826001600160801b038116608082901c612e3d82612070565b9450612e4881612070565b9350505050915091565b5f612e5e84600761490d565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612ebf612eb9612e938560036120c0565b61061d612eae612ea38b5f61490d565b61061d8c601c61490d565b61061d8b601b61490d565b8361208e565b9050612f40612f35612f1c612f03612eea85610622612edf8d600261490d565b61061d8e601b61490d565b610622612ef88c600361490d565b61061d8d601c61490d565b610622612f118b600461490d565b61061d8c601d61490d565b610622612f2a8a600561490d565b61061d8b601e61490d565b61062288600161490d565b9050612f5f81610622612f548660016120c0565b61061d8a602661490d565b9050612f6b818461208e565b9050612f77818561208e565b8552505f9050612fb1612fa7612f9c612f9188601b61490d565b61062289601e61490d565b61064088602361490d565b610622875f61490d565b9050612fc28161061d8460026120c0565b9050612fd38161061d8460016120c0565b9050612fdf818361208e565b9050612feb818461208e565b9050808460015b60200201525050505050565b5f5f5f61303461302a61301289601b61490d565b6106226130208b601161490d565b8a6060015161208e565b87608001516120a7565b905061306d8161061d61306361304b8b601c61490d565b6106226130598d601261490d565b8c6060015161208e565b89608001516120a7565b90506130928161061d6130636130848b601d61490d565b6106226130598d601361490d565b90506130b78161061d6130636130a98b601e61490d565b6106226130598d601461490d565b92505f90506130db61302a6130cd89601b61490d565b6106226130208b600d61490d565b90506131008161061d6130636130f28b601c61490d565b6106226130598d600e61490d565b90506131258161061d6130636131178b601d61490d565b6106226130598d600f61490d565b905061314a8161061d61306361313c8b601e61490d565b6106226130598d601061490d565b91505f905061317161316b61316089601f61490d565b6106228a601961490d565b8461208e565b90506131a6816106406131a06131888b602761490d565b6106226131968d601a61490d565b8c60a0015161208e565b8561208e565b90506131b2818561208e565b6040860152505f6131d56131a06131ca89601a61490d565b61061d8a602761490d565b606090950194909452505050505050565b5f5f61324461322c6132146131ff6130638a601561490d565b61062261320d8b601661490d565b8a5161208e565b6106226132228a601761490d565b896020015161208e565b61062261323a89601861490d565b886040015161208e565b91505f61327b61326261325889601b61490d565b88608001516120a7565b6106226132708a600361490d565b61061d8b602361490d565b90505f6132a461328c89601c61490d565b6106226132998b5f61490d565b61061d8c602461490d565b90505f6132ce6132b58a601d61490d565b6106226132c38c600161490d565b61061d8d602561490d565b905061330d6132f56132e785610622868d5f015161208e565b610622848c6020015161208e565b6106226133038c600461490d565b8b6040015161208e565b93505050505f61332161316b88602061490d565b90505f61333261316b89602061490d565b90505f61336a6133516133468b602261490d565b6106228c600661490d565b61064061335f8c602261490d565b61061d8d600661490d565b90505f61338e61338861337d878961208e565b61061d8d602061490d565b836120c0565b905061339a818861208e565b90505f6133c26133b46133ae8d600661490d565b8761208e565b6106406133ae8e602161490d565b90505f6133d08c602261490d565b90505f6133e0613388838461208e565b60808c0185905260a08c0184905290506133fa818b61208e565b8b6006602002015250505050505050505050505050565b5f61341d5f60016120c0565b90505f61342b5f60026120c0565b90505f6134395f60036120c0565b90505f61345561344a88601c61490d565b61064089601b61490d565b90505f61347161346689601d61490d565b6106408a601c61490d565b90505f61348d6134828a601e61490d565b6106408b601d61490d565b90505f6134a961349e8b602361490d565b6106408c601e61490d565b9050836134ba8161061d818b6120a7565b90506134ca8161061d878a6120a7565b90506134da8161061d87896120a7565b90506134eb8161061d8d600861490d565b90506134f7818a61208e565b60e08b0152508261350c8161061d818b6120a7565b905061351c8161061d868a6120a7565b905061352c8161061d86896120a7565b905061353d8161061d8d600861490d565b9050613549818a61208e565b6101008b0152508161355f8161061d818b6120a7565b905061356f8161061d858a6120a7565b905061357f8161061d85896120a7565b90506135908161061d8d600861490d565b905061359c818a61208e565b6101208b015250806135b28161061d818b6120a7565b90506135c28161061d848a6120a7565b90506135d28161061d84896120a7565b90506135e38161061d8d600861490d565b90506135ef818a61208e565b610140909a019990995250505050505050505050565b61363e6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61364984601c61490d565b815261365684601d61490d565b602082015261366684602361490d565b604082015261367684602661490d565b606082015261368684602561490d565b608082015261369684602461490d565b60a08201525f6136a785600261490d565b90505f6136b4865f61490d565b90505f6136c88460400151855f01516120c0565b90505f6136dd8560200151866020015161208e565b606086015190915086905f906136f3908061208e565b90505f61371161370b89602001518a6060015161208e565b8861208e565b90505f6137306137298a60a001518b604001516120a7565b8a516120a7565b905061373f6133ae828861208e565b905061376661376061375a61375484876120c0565b886120c0565b846120a7565b836120a7565b905061378e613783613778838761208e565b61061d8f600961490d565b61061d60018a6120c0565b6101608c015250505050602085015160808601515f916137ad916120a7565b90505f6137cb6137c188606001518861208e565b88602001516120c0565b90505f6137ef6137db848761208e565b6106226131a08b60a001518c5f01516120c0565b905061381761380c613801838c61208e565b61061d8e600961490d565b61061d6001896120c0565b6101808b0152505f915061383890506138318360116120a7565b875161208e565b90505f61384583846120a7565b905061385181826120a7565b90505f61385f83600961208e565b905061388861388261316b61387b8b60a001518c5f01516120a7565b8b516120a7565b826120c0565b60c089018190525f906138a39061370b90613778908d61208e565b90506138b68b600b6020020151826120a7565b6101608c0152505086515f92506138dd9150613831906138d690806120a7565b88516120a7565b90505f61391d6138f88361061d8a5f01518b60a001516120c0565b60208901516106409061390b90806120a7565b61061d8b602001518c608001516120a7565b905061393a89600c602002015161062261370b613778858d61208e565b89600c602002015250505050505050505050565b6139e2604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613a176139fe6139f387601b61490d565b61061d88602461490d565b610622613a0c88602361490d565b61061d89601c61490d565b8152613a5c613a51613a38613a2d88601b61490d565b61061d89601e61490d565b610622613a4689601c61490d565b61061d8a601d61490d565b61064087602561490d565b60408201819052613a7190600160441b61208e565b60408201819052613a879061064087602661490d565b604082018190528151613a9a91906120a7565b60408201819052613ab09061061d87600561490d565b60408201528051613ac590600160441b61208e565b808252613ae590610622613ada88602361490d565b61061d89602461490d565b80825260208201819052613b0190610640612f9188601d61490d565b60208201819052613b179061061d87600461490d565b6020820152805160608201819052613b349061062287601e61490d565b60608201819052613b5890610640613b4d88602561490d565b61062289602661490d565b60608201819052613b6d9061061d875f61490d565b8160600181815250505f613b96613b8c836020015184604001516120a7565b83606001516120a7565b9050613ba78161061d88600361490d565b9050613bbf613bb787602461490d565b61400061208e565b60808301819052613bd59061062288602361490d565b60808301819052613be89061400061208e565b60808301819052613bfe9061062288601d61490d565b60808301819052613c119061400061208e565b60808301819052613c279061062288601c61490d565b60808301819052613c3a9061400061208e565b60808301819052613c509061062288601b61490d565b60808301819052613c669061064088601e61490d565b60808301819052613c7c9061061d88600561490d565b6080830152613c8f613bb787602561490d565b60a08301819052613ca59061062288602461490d565b60a08301819052613cb89061400061208e565b60a08301819052613cce9061062288602361490d565b60a08301819052613ce19061400061208e565b60a08301819052613cf79061062288601e61490d565b60a08301819052613d0a9061400061208e565b60a08301819052613d209061062288601d61490d565b60a08301819052613d369061064088602661490d565b60a08301819052613d4b9061061d885f61490d565b60a0830181905260808301515f91613d6391906120a7565b9050613d748161061d89600461490d565b9050613d8e613d8488601d61490d565b876040015161208e565b60c08401819052613da7906106226132228a601c61490d565b60c08401819052613dc790610622613dc08a601b61490d565b895161208e565b60c08401819052613ddd9061062289600161490d565b60c0840181905260e08401819052613dfa9061064089601e61490d565b60c0840152613e0d61344a88602361490d565b610140840152613e2c613e2188602661490d565b61064089601e61490d565b610120840152610140830151613e5190613e46908061208e565b8461014001516120c0565b610280840152610140830151613e9390613e8890613e819061061d60015f5160206152c55f395f51905f52614fd6565b60016120a7565b84610120015161208e565b6101608401819052613eca90613ebc9061061d613eb18b600261490d565b61061d8c600361490d565b61061d6133ae8a600a61490d565b6101c0860152610280830151613eec90613ebc9061061d613eb18b600261490d565b6101e086015260c0830151613f149061061d613f098a600261490d565b61061d8b600361490d565b6101e08401525f613f33613f2989601e61490d565b8560e001516120c0565b9050613f42613882828361208e565b6101a0850152613f5661323a89602561490d565b6101008501819052613f7a90610622613f708b602461490d565b8a6020015161208e565b6101008501819052613f949061062261320d8b602361490d565b610100850152613fb3613fa889602661490d565b8561010001516120c0565b6101008501525f613fc86134828a602561490d565b905061401c613ff6612eb9613e8188610140015160015f5160206152c55f395f51905f5261061d9190614fd6565b61061d613e8188610100015160015f5160206152c55f395f51905f5261061d9190614fd6565b61018086015261010085015161404190614036908061208e565b8661010001516120c0565b6101c0860152610180850151614074906140609061061d8c600761490d565b61061d61406e8c600a61490d565b8961208e565b610200880152610280850151614093906140609061061d8c600761490d565b6102208801526101c08501516140b2906140609061061d8c600761490d565b6102408801526101a08501516140cd9061061d8b600761490d565b6102008601526140ec6140e18a602461490d565b6106408b601c61490d565b61022086015261014085015161412b906134829061412090613e819061061d60015f5160206152c55f395f51905f52614fd6565b87610220015161208e565b61024086018190526101e08601516102608701819052614162916106229061061d6141578e600561490d565b61061d8f600261490d565b610260860181905260c086015161418591906106229061061d6141578e5f61490d565b610260860181905261020086015161419d91906120a7565b61026086018190526141b39061375a90866120a7565b6102a086018190526141cd9061061d61406e8c600a61490d565b6102a0860181905287600d6020020152505050505050505050565b61425e6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61427761426c85601b61490d565b61062286600261490d565b815261429261428785601c61490d565b61062286600361490d565b60208201526142b06142a585601d61490d565b61062286600461490d565b60408201526142ce6142c385601e61490d565b61062286600561490d565b60608201528051614300906142f9906142f2906142eb908061208e565b845161208e565b835161208e565b825161208e565b6080820152602081015161433e906143349061432a90614320908061208e565b846020015161208e565b836020015161208e565b826020015161208e565b60a0820152604081015161437c90614372906143689061435e908061208e565b846040015161208e565b836040015161208e565b826040015161208e565b60c082015260608101516143ba906143b0906143a69061439c908061208e565b846060015161208e565b836060015161208e565b826060015161208e565b60e0820152608081015160a08201516143d391906120a7565b61010082015260c081015160e08201516143ed91906120a7565b61012082015260a08101516144119061440690806120a7565b8261012001516120a7565b61014082015260e08101516144359061442a90806120a7565b8261010001516120a7565b61016082015261012081015161444b90806120a7565b6101e0820181905261446c9061446190806120a7565b8261016001516120a7565b6101e082015261010081015161448290806120a7565b6101a082018190526144a39061449890806120a7565b8261014001516120a7565b6101a082018190526101608201516144ba916120a7565b6101808201526101408101516101e08201516144d691906120a7565b6101c08201526144ea612eb985600b61490d565b6102008201819052610260840151610180830151614515926106229161061d906106408a602361490d565b8360136020020152614545836014602002015161062283610200015161061d856101a001516106408a602461490d565b8360146020020152614575836015602002015161062283610200015161061d856101c001516106408a602561490d565b83601560200201526145a5836016602002015161062283610200015161061d856101e001516106408a602661490d565b836016602002015250505050565b6146056040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f604051806080016040528061463a7f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7612070565b81526020016146687f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b612070565b81526020016146957e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15612070565b81526020016146c37f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b612070565b905290506146e06146d586601b61490d565b61062287600261490d565b61012083018190526147149061470990613e88906146fe908061208e565b85610120015161208e565b83610120015161208e565b825261472185601c61490d565b602083015261473185601d61490d565b604083015261474185601e61490d565b60608301528151602083015161476991613b8c9161475f91906120a7565b84604001516120a7565b608083015261477c61316b86600c61490d565b610140830152815161479d9061479390835f610edb565b83608001516120a7565b60a08301526147c9846017602002015161062284610140015161061d8660a001516106408b602361490d565b6102e085015260208201516147e49061479390836001610edb565b60c0830152614810846018602002015161062284610140015161061d8660c001516106408b602461490d565b610300850152604082015161482b9061479390836002610edb565b60e0830152614857846019602002015161062284610140015161061d8660e001516106408b602561490d565b61032085015260608201516148729061479390836003610edb565b6101008301526148a084601a602002015161062284610140015161061d8661010001516106408b602661490d565b84601a612ff2565b5f6148b48184816108b3565b905060015b601b811015614906576148fc826106228684601b81106148db576148db615023565b6020020151866148ec600187614fd6565b601a8110610edb57610edb615023565b91506001016148b9565b5092915050565b5f8282602781111561492157614921615270565b6028811061493157614931615023565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f8152602001614963614df8565b8152602001614970614df8565b815260200161497d614df8565b815260200161498a614df8565b8152602001614997614df8565b81526020016149a4614df8565b81526020016149b1614df8565b81526020016149be614df8565b81526020016149cb614df8565b81526020016149d8614df8565b81526020016149e5614df8565b81526020016149f2614df8565b81526020016149ff614df8565b8152602001614a0c614df8565b8152602001614a19614df8565b8152602001614a26614df8565b8152602001614a33614df8565b8152602001614a40614df8565b8152602001614a4d614df8565b8152602001614a5a614df8565b8152602001614a67614df8565b8152602001614a74614df8565b8152602001614a81614df8565b8152602001614a8e614df8565b8152602001614a9b614df8565b8152602001614aa8614df8565b8152602001614ab5614df8565b905290565b604051806101e00160405280614ace614e2f565b8152602001614adb614c8e565b8152602001614ae8614c8e565b8152602001614af5614c8e565b8152602001614b02614c8e565b8152602001614b0f614c8e565b8152602001614b1c614c8e565b8152602001614b29614c8e565b8152602001614b36614c8e565b8152602001614b43614e4e565b8152602001614b50614e7c565b8152602001614b5d614e9b565b8152602001614b6a614d20565b8152602001614b77614c8e565b8152602001614ab5614c8e565b604051806101000160405280614b98614cb2565b8152602001614ba5614ce2565b8152602001614bb2614d20565b8152602001614bbf614d20565b81526020015f81526020015f81526020015f81526020015f81525090565b6040518061018001604052805f81526020015f81526020015f81526020015f81526020015f8152602001614c0f614ec9565b8152602001614c1c614ec9565b81526020015f81526020015f81526020015f81526020015f8152602001614ab5614d20565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b614c78614df8565b815260200190600190039081614c705790505090565b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806103400160405280601a906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103600160405280601b906020820280368337509192915050565b60405180604001604052805f81526020015f81525090565b604051806101a00160405280600d906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b614e66614dba565b815260200190600190039081614e5e5790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b614eb3614c8e565b815260200190600190039081614eab5790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f60408587031215614efa575f5ffd5b84356001600160401b03811115614f0f575f5ffd5b8501601f81018713614f1f575f5ffd5b80356001600160401b03811115614f34575f5ffd5b876020828401011115614f45575f5ffd5b6020918201955093508501356001600160401b03811115614f64575f5ffd5b8501601f81018713614f74575f5ffd5b80356001600160401b03811115614f89575f5ffd5b8760208260051b8401011115614f9d575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761208857612088614fab565b8181038181111561208857612088614fab565b8082018082111561208857612088614fab565b5f5f8585111561500a575f5ffd5b83861115615016575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161504857615048614fab565b5060010190565b80356020831015612088575f19602084900360031b1b1692915050565b5f8183825b6009811015615090578151835260209283019290910190600101615071565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f826150c2576150c26150a0565b500490565b5f8183825b60298110156150eb5781518352602092830192909101906001016150cc565b5050506105208201905092915050565b5f8183825b606d81101561511f578151835260209283019290910190600101615100565b505050610da08201905092915050565b5f8183825b601d811015615153578151835260209283019290910190600101615134565b5050506103a08201905092915050565b5f8183825b6005811015615187578151835260209283019290910190600101615168565b50505060a08201905092915050565b5f826151a4576151a46150a0565b500690565b5f816151b7576151b7614fab565b505f190190565b5f82518060208501845e5f920191825250919050565b5f602082840312156151e4575f5ffd5b815180151581146119ec575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b82811015615231578151845260209384019390910190600101615213565b509195945050505050565b5f8183825b600d811015615260578151835260209283019290910190600101615241565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe696e76616c6964206e756d626572206f6620627974657320746f20636f6e737430644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
|
|
5
5
|
/**
|
|
6
6
|
* HonkVerifier link references.
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HonkVerifierBytecode.d.ts","sourceRoot":"","sources":["../src/HonkVerifierBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"HonkVerifierBytecode.d.ts","sourceRoot":"","sources":["../src/HonkVerifierBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,ipzCAAipzC,CAAC;AACnrzC;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAc,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* HonkVerifier bytecode.
|
|
3
|
-
*/ export const HonkVerifierBytecode = "0x60e060405234801561000f575f5ffd5b506302000000608052601960a05260ae60c05260805160a05160c0516152e46100605f395f818160d6015261065001525f818161075b01528181610d030152610da001525f6105f401526152e45ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004614ee6565b610054565b604051901515815260200160405180910390f35b5f6100626101c86020614fbe565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a6101c1565b90505f61009787876101d6565b9050601082604001516100aa9190614fd5565b84146100c95760405163fa06659360e01b815260040160405180910390fd5b5f6100fc828787865f01517f0000000000000000000000000000000000000000000000000000000000000000600161052f565b905061014c8686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050855185516060810151608090910151919350915060016105de565b815160a001525f61015d8383610753565b90508061017d576040516313f8744360e31b815260040160405180910390fd5b5f610189848685610854565b9050806101a9576040516352ec174560e11b815260040160405180910390fd5b8180156101b35750805b9a9950505050505050505050565b6101c961493c565b6101d161109e565b905090565b6101de614ab9565b5f805b60108110156102405761020d8583866101fb826020614fe8565b9261020893929190614ffb565b611984565b8351826010811061022057610220615022565b6020020181815250506020826102369190614fe8565b91506001016101e1565b50610264848285610252826080614fe8565b9261025f93929190614ffb565b6119f2565b6020830152610274608082614fe8565b9050610287848285610252826080614fe8565b6040830152610297608082614fe8565b90506102aa848285610252826080614fe8565b60608301526102ba608082614fe8565b90506102cd848285610252826080614fe8565b60c08301526102dd608082614fe8565b90506102f0848285610252826080614fe8565b60e0830152610300608082614fe8565b9050610313848285610252826080614fe8565b6080808401919091526103269082614fe8565b9050610339848285610252826080614fe8565b61010083015261034a608082614fe8565b905061035d848285610252826080614fe8565b60a083015261036d608082614fe8565b90505f5b601c8110156103ec575f5b60088110156103e3576103968684876101fb826020614fe8565b84610120015183601c81106103ad576103ad615022565b602002015182600881106103c3576103c3615022565b6020020181815250506020836103d99190614fe8565b925060010161037c565b50600101610371565b505f5b6028811015610440576104098583866101fb826020614fe8565b836101400151826028811061042057610420615022565b6020020181815250506020826104369190614fe8565b91506001016103ef565b505f5b61044f6001601c614fd5565b81101561049857610467858386610252826080614fe8565b83610160015182601b811061047e5761047e615022565b602002015261048e608083614fe8565b9150600101610443565b505f5b601c8110156104ec576104b58583866101fb826020614fe8565b83610180015182601c81106104cc576104cc615022565b6020020181815250506020826104e29190614fe8565b915060010161049b565b506104fe848285610252826080614fe8565b6101a083015261050f608082614fe8565b9050610522848285610252826080614fe8565b6101c08301525092915050565b610537614b83565b5f61054788888888888887611ad1565b90835290506105568189611b27565b6020840191909152905061056981611c78565b6040840191909152905061057d8882611cd9565b606084019190915290506105918882611dad565b608084019190915290506105a58882611e38565b60a084019190915290506105b98882611fa6565b60c084019190915290506105cd8882612018565b5060e0830152509695505050505050565b5f60018082610627866106228961061d6106188a7f0000000000000000000000000000000000000000000000000000000000000000614fe8565b61206f565b61208d565b6120a6565b90505f610645876106408a61061d6106188b6001614fe8565b6120bf565b90505f5b61067460107f0000000000000000000000000000000000000000000000000000000000000000614fd5565b8110156106e1575f61069e8c838151811061069157610691615022565b602002602001015161206f565b90506106ae8661061d86846120a6565b95506106be8561061d85846120a6565b94506106ca848b6120a6565b93506106d6838b6120bf565b925050600101610649565b505f5b6010811015610748575f8a826010811061070057610700615022565b602002015190506107158661061d86846120a6565b95506107258561061d85846120a6565b9450610731848b6120a6565b935061073d838b6120bf565b9250506001016106e4565b506101b384846120ee565b5f806001815b7f000000000000000000000000000000000000000000000000000000000000000081101561082a575f86610120015182601c811061079957610799615022565b602002015190505f6107ab82866120fc565b9050806107cb576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106107e2576107e2615022565b602002015190506107f38382612119565b955061081a886040015185601c811061080e5761080e615022565b602002015186836122c8565b9450505050806001019050610759565b505f610844866101400151865f01518760200151856122f3565b90508281145b9695505050505050565b5f61085d614bdc565b5f61086b8460a00151612361565b9050610875614c40565b61087d614c5f565b60e086015161089c9061089790855f5b60200201516120bf565b6123c6565b60e0808601919091528601516108bd9061089790855f5b60200201516120a6565b610100850181905260e085015160c08801516108dd92610622919061208d565b845260a086015161090c906108f1906123c6565b61061d8660e001516106408a60c0015189610100015161208d565b6020850152600182526101a08801516109249061242f565b81526001606085018190525f60808601525b602381116109dc5761095761094d865f015161246e565b866060015161208d565b83826046811061096957610969615022565b602002015260808501516101408a01516109ac91906106229061098d600186614fd5565b6028811061099d5761099d615022565b6020020151886060015161208d565b8560800181815250506109c78560600151886080015161208d565b60608601526109d581615036565b9050610936565b505f6109ea60236001614fe8565b90505b60288111610a6b57610a0561094d866020015161246e565b838260468110610a1757610a17615022565b602002015260808501516101408a0151610a3b91906106229061098d600186614fd5565b856080018181525050610a568560600151886080015161208d565b6060860152610a6481615036565b90506109ed565b50606087015181600160200201526080870151816002602002015260a0870151816003602002015260c0870151816004602002015260e0870151816005602002015261010087015181600660200201526101208701518160076020020152610140870151816008602002015261016087015181600960200201526101a087015181600a602002015261018087015181600b60200201526101c087015181600c60200201526101e087015181600d602002015261020087015181600e602002015261022087015181600f60200201526102408701518160106020020152610260870151816011602002015261028087015181601260200201526102a087015181601360200201526102c087015181601460200201526102e08701518160156020020152610300870151816016602002015261032087015181601760200201526103408701518160186020020152610360870151816019602002015261038087015181601a60200201526103a087015181601b6020020181905250610bf1886020015161242f565b6103808201526040880151610c059061242f565b6103a08201526060880151610c199061242f565b6103c08201526080880151610c2d9061242f565b6103e082015260a0880151610c419061242f565b610400820152610100880151610c569061242f565b61042082015260c0880151610c6a9061242f565b61044082015260e0880151610c7e9061242f565b6104608201526020880151610c929061242f565b6104808201526040880151610ca69061242f565b6104a08201526060880151610cba9061242f565b6104c08201526080880151610cce9061242f565b6104e082015260a0880151610ce29061242f565b610500820152606086015160808501516101808a01515f92610d27929091877f0000000000000000000000000000000000000000000000000000000000000000612486565b805160e0870151919250610d3a9161208d565b604086018190526101808a01515160c0890151610d6b929161062291610d60919061208d565b88610100015161208d565b604086015260c0870151610d7e906125a1565b60608601525f5b610d916001601c614fd5565b811015610f99575f610dc460017f0000000000000000000000000000000000000000000000000000000000000000614fd5565b821015905080610f3f57610df76108978a60e0015188856001610de79190614fe8565b601c811061088d5761088d615022565b60e080890191909152890151610e27906108979088610e17866001614fe8565b601c81106108b3576108b3615022565b610100880152606087015160e0880151610e41919061208d565b610120880152606087015160c08a0151610e5e91610d609161208d565b6101408801819052610e8190610e739061246e565b61062289610120015161246e565b8583610e8f60286001614fe8565b610e999190614fe8565b60468110610ea957610ea9615022565b60200201526101408701516101808c01515f91610ee591610ecb866001614fe8565b601c8110610edb57610edb615022565b602002015161208d565b9050610f02816106228a610120015187876001610ecb9190614fe8565b9050610f128860400151826120a6565b6040890152606088015160c08b0151610f3891610f2e9161208d565b8b60c0015161208d565b6060890152505b610f638b610160015183601b8110610f5957610f59615022565b602002015161242f565b8483610f7160286001614fe8565b610f7b9190614fe8565b60468110610f8b57610f8b615022565b602002015250600101610d85565b5060408051808201909152600181526002602082015282610fbc601c6028614fe8565b60468110610fcc57610fcc615022565b6020020152604085015183610fe3601c6028614fe8565b60468110610ff357610ff3615022565b60200201526101c08901515f906110099061242f565b90508083611019601c6028614fe8565b611024906001614fe8565b6046811061103457611034615022565b602002015260e08801518461104b601c6028614fe8565b611056906001614fe8565b6046811061106657611066615022565b60200201525f61107684866125ac565b90505f61108283612672565b905061108e82826126b8565b9c9b505050505050505050505050565b6110a661493c565b50604080516103c08101825263020000008152601960208083019190915260ae82840152825180840184527f25dfc76ed3f0f82f210f612e02b0e9832c58e8bfa13522f64a7d61bfa787782b81527f1a7e9eb599d3f7dd92e18bbaf8669f1e9034f824610e2fc32e7967fd1f1c6f43818301526060830152825180840184527f0afdddf0172e7002a19d22c47a3b9e3de510961dbfc6807f142f0da429cf092881527f2c0d5ee84c0008a41574c712106c7124c02fdb097dc9e8ef42dee10381dbf279818301526080830152825180840184527f0c2f4a80018ff9b2f4d074b2cc436098464fa43a8ae959dbe35dc09025ebac9681527f1c2903530c2aae929d4f5dd067063549d0ae9aff79727ea1941aeaf6d02efbf18183015260a0830152825180840184527f0160e40d033efea6cc1a84a7fb376dadbb4421a65964016d3efeb92669f5f08881527f1532eac40516109fa4a1a75a20fe33fc453328d05d97e069d2556bc2fd21c1258183015260c0830152825180840184527f2d187c97c9697740f462dd02aae99501d83481a926d1d35a470adae08e20a38881527f2b0239d7eb595fc100d54cb4c08be30efa0e4c3dce497340636f07a15666f9ad8183015260e0830152825180840184527f241278f93bdf20ccf1179293cb2d4bdcfdc8bb845b84f68eaf3658726997812c81527f14f49e2051d7fc5a51ce4508cfd358946ed80325e8482e594935f26f6421e30381830152610100830152825180840184527f107d2d79c20982125b9f302008ecbd7b7f25eebc71271311c28f58223170c78b81527f0f3c9104533084fca88d92d900c94cb1400899b1c3c2b40cf32807f7d8517f4781830152610120830152825180840184527f2b5e326d8bfa820445448ab179a1247129e564e824f5deed9541b2109a8882cf81527f0100c0577f7c2396a38fdfa068e08e0d292ca6bda961e768a04f6e213a670acc81830152610140830152825180840184527f21da4bda11f3d4e73f4ca721239d649de06cd73284e2421aec379776d5f52b1e81527f03f4b0e87368f538a0ec726f52fa73326406323a53135aba173adf5b9bc26dff81830152610160830152825180840184527f123fb463d0bd6c6166dd3b341fd0c84259d13adf55f7ca716cc6079c06b6589a81527f2bde7ea24a9c890652380d09b9af8fae291330a532a67af3784b5c9e4e24838781830152610180830152825180840184527f046c1df22d248dc758b8e84025e1d00746165c117f6ef64911658a5974164c9d81527f2e45baa801f2bdfd5fda2b5d0aca0e89ee5e8a2b6406e9f0232edbb3c8d5f8ac818301526101a0830152825180840184527f0a949eff91bb786bc69af9863b9a83254e8fdd847fd7836cfec018e0a1a385a481527f0592ac373f9c4f3e8f1906b9e2f76886f7ee3a2201178bbadbb4eaecd6e61fcf818301526101c0830152825180840184527f0d7a8dac5f6ae6794ed9faf18e1d7e1e3bbf7ab8b55564c287afd123c4a6d36481527f2286f7be44c872aac8bc3b3ae172faf2a9330d310a1497297eebc15ba797dbe5818301526101e0830152825180840184527f275b29f5ce32638bb7fb3a7ae5bc5a0673e6327ee133bc3b907323adbcd4a36b81527f1e43818a59fb57aa17e3e3d749f643d06b690c2d1608b130b11109548c5b289781830152610200830152825180840184527f224875be5cde3fb8c1e770aca53745935dc44b0c97fb800c3b649823196e033e81527f025dc5e13f349e9b8da1e765da75263cab2a38cb043236b237009cde4899f66181830152610220830152825180840184527e01f2d83ee7bdb53810dab2092a1536a25a6ea065e44f8484873223b610858f81527f16d44ce94ad577ae8aba15c3a150ae599285aceb41253c64c7a4a483740be5f981830152610240830152825180840184527f1a215ea290933d9651b5b9143b21e54b462c62be2f301fa6787d3f23ee053bb981527f2d41fad31735ac7828222e687159985f267497b96936caea0741fba0a63aec3f81830152610260830152825180840184527f06f0ca1fb1b324632c7525413a4c86109b4fff0a3cbbb04ad13f98ee2796ff8b81527f09dd19085156eb8bb09dcc147ce551c2367896edc54a9db804ef8d12aef5b80881830152610280830152825180840184527f2aaabd4819403c1c15d8e65a49a78cb9e461100a8a29e2cf10abfe6ba20599a981527f1f5413b6ef1b8beb219942609e35c05d4f92923f32c3480fca18ed0c8ed17b07818301526102a0830152825180840184527f2ac0441f4b5c18482741b19f4a5e2f07aea72a57906c2c9aef6732bac61ae5a681527f1dc10abf9699ff8eb0c01b500e7595ccab04475fa7d52574e5e931ec2206ece3818301526102c0830152825180840184527f2bc6f5f0c72c2598bb516a5b6e47453334d0b4c4bd1f2f8b141986e44b43a8ad81527f042320791bcd1c142c5d84278398f5bc4183101b61a9b3469de3dbfa60eb385b818301526102e0830152825180840184527f275a0bb22f8c37a3476d71c556d266909fdde001df48d48a78940343ccb0b48a81527f2a4cc2119d1bd729845e8630c5b1aec652a2f2a7ae690c52238e3eafd44b385681830152610300830152825180840184527f1e1d6ac562a951aa01bc279a090d34488936a6404b3c75294fd260df0d36689381527f1643515b25c47e776b6d99eb3ce8b4613b209886681842e5c39ee92efe72c27281830152610320830152825180840184527f09d569252b4b229e483b00b1e67384ac4db29395d32e28c82f8b73983d30ac6b81527f2c47d5809e56ba32be655d4177db195bb450fd12587756c4b85b6506a7844ddb81830152610340830152825180840184527f1f59b85de9212665c6c3e59fb35ab6609d72f5ad8007449dc8019a5886fad88f81527f21c9b787b5e0109e8ab3c2293b8c67fa9ec871818722fb8bea77aa6477aaae4c81830152610360830152825180840184526001815260028183015261038083015282518084019093527f192f24aefa6e303039e4c0e7b63cab46d61b0c34a75a3f9088595a038613cc6d83527f27c765b484173e412f4a82ef7dbc4fb026f89bbe3f7afefd6b83f1bbf21fe0e3908301526103a081019190915290565b5f602082146119de5760405162461bcd60e51b815260206004820152602e60248201525f5160206152845f395f51905f5260448201526d393ab1ba1023391039b1b0b630b960911b60648201526084015b60405180910390fd5b6119eb610618838561504e565b9392505050565b6119fa614c8d565b60808214611a4f5760405162461bcd60e51b815260206004820152602f60248201525f5160206152845f395f51905f5260448201526e1c9d58dd08184811cc481c1bda5b9d608a1b60648201526084016119d5565b604080516080810190915280611a6860205f8688614ffb565b611a719161504e565b8152602090810190611a87906040908688614ffb565b611a909161504e565b8152602001611aa3606060408688614ffb565b611aac9161504e565b8152602001611abf608060608688614ffb565b611ac89161504e565b90529392505050565b611ad9614cb1565b5f611ae88989898989896128ac565b604086019190915260208501919091529083529250611b07838a612d52565b608085019190915260608401919091529199919850909650505050505050565b611b2f614ce1565b5f611b38614d00565b848152610100848101805151602080850191909152815181015160408086019190915282518101516060808701919091529251830151608086015260a080890180515191870191909152805183015160c0870152805182015160e087015251909201519284019290925251611bce91611bb39184910161506b565b6040516020818303038152906040528051906020012061206f565b9150611bd982612e21565b6020850152835260015b611bef6002601a6150b3565b811015611c6f57611c0c83604051602001611bb391815260200190565b9250611c1783612e21565b85611c23846002614fbe565b601a8110611c3357611c33615022565b6020020186611c43856002614fbe565b611c4e906001614fe8565b601a8110611c5e57611c5e615022565b602002019190915252600101611be3565b50509250929050565b611c80614d1f565b5f805b601c811015611cd257611ca284604051602001611bb391815260200190565b93505f611cae85612e21565b8584601c8110611cc057611cc0615022565b60200201919091525050600101611c83565b5090929050565b611ce1614d1f565b5f805b601c811015611da457611cf5614d00565b8481525f5b6008811015611d5e5786610120015183601c8110611d1a57611d1a615022565b60200201518160088110611d3057611d30615022565b602002015182611d41836001614fe8565b60098110611d5157611d51615022565b6020020152600101611cfa565b50611d7381604051602001611bb3919061506b565b94505f611d7f86612e21565b8685601c8110611d9157611d91615022565b6020020191909152505050600101611ce4565b50909391925050565b5f5f611db7614d3e565b8381525f5b6028811015611e0a578561014001518160288110611ddc57611ddc615022565b602002015182611ded836001614fe8565b60298110611dfd57611dfd615022565b6020020152600101611dbc565b50611e1f81604051602001611bb391906150c6565b91505f611e2b83612e21565b5096929550919350505050565b5f5f611e42614d5d565b8381525f5b611e536001601c614fd5565b811015611f915785610160015181601b8110611e7157611e71615022565b60200201515182611e83836004614fbe565b611e8e906001614fe8565b606d8110611e9e57611e9e615022565b602002015261016086015181601b8110611eba57611eba615022565b60200201516020015182826004611ed19190614fbe565b611edc906002614fe8565b606d8110611eec57611eec615022565b602002015261016086015181601b8110611f0857611f08615022565b60200201516040015182611f1d836004614fbe565b611f28906003614fe8565b606d8110611f3857611f38615022565b602002015261016086015181601b8110611f5457611f54615022565b60200201516060015182611f69836004614fbe565b611f74906004614fe8565b606d8110611f8457611f84615022565b6020020152600101611e47565b50611e1f81604051602001611bb391906150fa565b5f5f611fb0614d7c565b8381525f5b601c8110156120035785610180015181601c8110611fd557611fd5615022565b602002015182611fe6836001614fe8565b601d8110611ff657611ff6615022565b6020020152600101611fb5565b50611e1f81604051602001611bb3919061512e565b5f5f612022614d9b565b8381526101a085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611e1f91611bb391849101615162565b5f6120875f5160206152c45f395f51905f5283615195565b92915050565b5f5f5160206152c45f395f51905f528284099392505050565b5f5f5160206152c45f395f51905f528284089392505050565b5f5f5160206152c45f395f51905f526120e5835f5160206152c45f395f51905f52614fd5565b84089392505050565b5f6119eb8361061d846123c6565b81515f90819061210e908560016108b3565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b6008811015612200576121f68261061d87846120bf565b91506001016121df565b50612209614db9565b5f5b600881101561226a575f84826008811061222757612227615022565b6020020151905061223c8161061d89856120bf565b9050612247816123c6565b90508083836008811061225c5761225c615022565b60200201525060010161220b565b505f5b60088110156122bd575f87826008811061228957612289615022565b602002015190506122a681848460088110610edb57610edb615022565b90506122b286826120a6565b95505060010161226d565b5061084a848361208d565b5f5f6122de60016106228561061d8960016120bf565b90506122ea848261208d565b95945050505050565b5f6122fc614dd8565b612307868285612e51565b61231386868386612ffd565b61231f868683866131e5565b61232a868285613410565b612335868285613604565b6123418686838661394d565b61234c8682856141e7565b6123578682856145b2565b61084a81856148a7565b612369614d1f565b81815260015b601c8110156123c0576123a182612387600184614fd5565b601c811061239757612397615022565b60200201516125a1565b8282601c81106123b3576123b3615022565b602002015260010161236f565b50919050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f5160206152c45f395f51905f520360808201525f5160206152c45f395f51905f5260a082015260205f60c08360055afa905080612424575f5ffd5b50505f519392505050565b612437614df7565b604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f612087825f5160206152c45f395f51905f52614fd5565b61248e614d1f565b601c5b8015612597575f846124a4600184614fd5565b601c81106124b4576124b4615022565b602002015190505f886124c8600185614fd5565b601c81106124d8576124d8615022565b602002015190505f6125336124f76124f0858c61208d565b600261208d565b6106408a612506600189614fd5565b601c811061251657612516615022565b602002015161061d61252d8861061d60018a6120bf565b876120bf565b90506125548161061d61089761254e8761061d6001896120bf565b866120a6565b905085841161258357975087808561256d600187614fd5565b601c811061257d5761257d615022565b60200201525b50505080612590906151a8565b9050612491565b5095945050505050565b5f612087828361208d565b6125b4614df7565b5f6125c1601c6028614fe8565b6125cc906002614fe8565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b8381101561265a5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612601565b50805184526020810151602085015250505092915050565b61267a614df7565b5f5160206152a45f395f51905f5282602001515f5160206152a45f395f51905f526126a59190614fd5565b6126af9190615195565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b03168360405161284e91906151bd565b5f60405180830381855afa9150503d805f8114612886576040519150601f19603f3d011682016040523d82523d5f602084013e61288b565b606091505b509150915081801561084a57508080602001905181019061084a91906151d3565b5f808080806128bc876003614fe8565b6128c790600c614fe8565b6001600160401b038111156128de576128de6151f2565b604051908082528060200260200182016040528015612907578160200160208202803683370190505b509050875f1b815f8151811061291f5761291f615022565b602002602001018181525050865f1b8160018151811061294157612941615022565b602002602001018181525050855f1b8160028151811061296357612963615022565b60209081029190910101525f5b61297b601089614fd5565b8110156129cc578a8a8281811061299457612994615022565b90506020020135828260036129a99190614fe8565b815181106129b9576129b9615022565b6020908102919091010152600101612970565b505f5b6010811015612a3d578b516129f79082601081106129ef576129ef615022565b602002015190565b82826010612a068c6003614fe8565b612a109190614fd5565b612a1a9190614fe8565b81518110612a2a57612a2a615022565b60209081029190910101526001016129cf565b5060208b01515181612a50896003614fe8565b81518110612a6057612a60615022565b6020908102919091018101919091528b810151015181612a81896003614fe8565b612a8c906001614fe8565b81518110612a9c57612a9c615022565b6020908102919091018101919091528b01516040015181612abe896003614fe8565b612ac9906002614fe8565b81518110612ad957612ad9615022565b6020908102919091018101919091528b01516060015181612afb896003614fe8565b612b06906003614fe8565b81518110612b1657612b16615022565b602090810291909101015260408b01515181612b33896003614fe8565b612b3e906004614fe8565b81518110612b4e57612b4e615022565b60209081029190910181019190915260408c0151015181612b70896003614fe8565b612b7b906005614fe8565b81518110612b8b57612b8b615022565b60209081029190910101526040808c0151015181612baa896003614fe8565b612bb5906006614fe8565b81518110612bc557612bc5615022565b602090810291909101015260408b01516060015181612be5896003614fe8565b612bf0906007614fe8565b81518110612c0057612c00615022565b602090810291909101015260608b01515181612c1d896003614fe8565b612c28906008614fe8565b81518110612c3857612c38615022565b60209081029190910181019190915260608c0151015181612c5a896003614fe8565b612c65906009614fe8565b81518110612c7557612c75615022565b602090810291909101015260608b01516040015181612c95896003614fe8565b612ca090600a614fe8565b81518110612cb057612cb0615022565b60209081029190910101526060808c0151015181612ccf896003614fe8565b612cda90600b614fe8565b81518110612cea57612cea615022565b602002602001018181525050612d0a81604051602001611bb39190615206565b9150612d1582612e21565b6040805160208101869052929750909550612d309101611bb3565b91505f612d3c83612e21565b50959c949b509499509097509195505050505050565b5f5f5f612d5d614e0f565b85815260c085810180515160208085019190915281518101516040808601919091528251810151606080870191909152925183015160808087019190915260e0808b0180515160a089015280518501519688019690965285518301519087015293518301516101008601529288018051516101208601528051820151610140860152805184015161016086015251909101516101808401529051612e0791611bb39184910161523b565b9150612e1282612e21565b90979096509194509092505050565b5f80826001600160801b038116608082901c612e3c8261206f565b9450612e478161206f565b9350505050915091565b5f612e5d84600761490c565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612ebe612eb8612e928560036120bf565b61061d612ead612ea28b5f61490c565b61061d8c601c61490c565b61061d8b601b61490c565b8361208d565b9050612f3f612f34612f1b612f02612ee985610622612ede8d600261490c565b61061d8e601b61490c565b610622612ef78c600361490c565b61061d8d601c61490c565b610622612f108b600461490c565b61061d8c601d61490c565b610622612f298a600561490c565b61061d8b601e61490c565b61062288600161490c565b9050612f5e81610622612f538660016120bf565b61061d8a602661490c565b9050612f6a818461208d565b9050612f76818561208d565b8552505f9050612fb0612fa6612f9b612f9088601b61490c565b61062289601e61490c565b61064088602361490c565b610622875f61490c565b9050612fc18161061d8460026120bf565b9050612fd28161061d8460016120bf565b9050612fde818361208d565b9050612fea818461208d565b9050808460015b60200201525050505050565b5f5f5f61303361302961301189601b61490c565b61062261301f8b601161490c565b8a6060015161208d565b87608001516120a6565b905061306c8161061d61306261304a8b601c61490c565b6106226130588d601261490c565b8c6060015161208d565b89608001516120a6565b90506130918161061d6130626130838b601d61490c565b6106226130588d601361490c565b90506130b68161061d6130626130a88b601e61490c565b6106226130588d601461490c565b92505f90506130da6130296130cc89601b61490c565b61062261301f8b600d61490c565b90506130ff8161061d6130626130f18b601c61490c565b6106226130588d600e61490c565b90506131248161061d6130626131168b601d61490c565b6106226130588d600f61490c565b90506131498161061d61306261313b8b601e61490c565b6106226130588d601061490c565b91505f905061317061316a61315f89601f61490c565b6106228a601961490c565b8461208d565b90506131a58161064061319f6131878b602761490c565b6106226131958d601a61490c565b8c60a0015161208d565b8561208d565b90506131b1818561208d565b6040860152505f6131d461319f6131c989601a61490c565b61061d8a602761490c565b606090950194909452505050505050565b5f5f61324361322b6132136131fe6130628a601561490c565b61062261320c8b601661490c565b8a5161208d565b6106226132218a601761490c565b896020015161208d565b61062261323989601861490c565b886040015161208d565b91505f61327a61326161325789601b61490c565b88608001516120a6565b61062261326f8a600361490c565b61061d8b602361490c565b90505f6132a361328b89601c61490c565b6106226132988b5f61490c565b61061d8c602461490c565b90505f6132cd6132b48a601d61490c565b6106226132c28c600161490c565b61061d8d602561490c565b905061330c6132f46132e685610622868d5f015161208d565b610622848c6020015161208d565b6106226133028c600461490c565b8b6040015161208d565b93505050505f61332061316a88602061490c565b90505f61333161316a89602061490c565b90505f6133696133506133458b602261490c565b6106228c600661490c565b61064061335e8c602261490c565b61061d8d600661490c565b90505f61338d61338761337c878961208d565b61061d8d602061490c565b836120bf565b9050613399818861208d565b90505f6133c16133b36133ad8d600661490c565b8761208d565b6106406133ad8e602161490c565b90505f6133cf8c602261490c565b90505f6133df613387838461208d565b60808c0185905260a08c0184905290506133f9818b61208d565b8b6006602002015250505050505050505050505050565b5f61341c5f60016120bf565b90505f61342a5f60026120bf565b90505f6134385f60036120bf565b90505f61345461344988601c61490c565b61064089601b61490c565b90505f61347061346589601d61490c565b6106408a601c61490c565b90505f61348c6134818a601e61490c565b6106408b601d61490c565b90505f6134a861349d8b602361490c565b6106408c601e61490c565b9050836134b98161061d818b6120a6565b90506134c98161061d878a6120a6565b90506134d98161061d87896120a6565b90506134ea8161061d8d600861490c565b90506134f6818a61208d565b60e08b0152508261350b8161061d818b6120a6565b905061351b8161061d868a6120a6565b905061352b8161061d86896120a6565b905061353c8161061d8d600861490c565b9050613548818a61208d565b6101008b0152508161355e8161061d818b6120a6565b905061356e8161061d858a6120a6565b905061357e8161061d85896120a6565b905061358f8161061d8d600861490c565b905061359b818a61208d565b6101208b015250806135b18161061d818b6120a6565b90506135c18161061d848a6120a6565b90506135d18161061d84896120a6565b90506135e28161061d8d600861490c565b90506135ee818a61208d565b610140909a019990995250505050505050505050565b61363d6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61364884601c61490c565b815261365584601d61490c565b602082015261366584602361490c565b604082015261367584602661490c565b606082015261368584602561490c565b608082015261369584602461490c565b60a08201525f6136a685600261490c565b90505f6136b3865f61490c565b90505f6136c78460400151855f01516120bf565b90505f6136dc8560200151866020015161208d565b606086015190915086905f906136f2908061208d565b90505f61371061370a89602001518a6060015161208d565b8861208d565b90505f61372f6137288a60a001518b604001516120a6565b8a516120a6565b905061373e6133ad828861208d565b905061376561375f61375961375384876120bf565b886120bf565b846120a6565b836120a6565b905061378d613782613777838761208d565b61061d8f600961490c565b61061d60018a6120bf565b6101608c015250505050602085015160808601515f916137ac916120a6565b90505f6137ca6137c088606001518861208d565b88602001516120bf565b90505f6137ee6137da848761208d565b61062261319f8b60a001518c5f01516120bf565b905061381661380b613800838c61208d565b61061d8e600961490c565b61061d6001896120bf565b6101808b0152505f915061383790506138308360116120a6565b875161208d565b90505f61384483846120a6565b905061385081826120a6565b90505f61385e83600961208d565b905061388761388161316a61387a8b60a001518c5f01516120a6565b8b516120a6565b826120bf565b60c089018190525f906138a29061370a90613777908d61208d565b90506138b58b600b6020020151826120a6565b6101608c0152505086515f92506138dc9150613830906138d590806120a6565b88516120a6565b90505f61391c6138f78361061d8a5f01518b60a001516120bf565b60208901516106409061390a90806120a6565b61061d8b602001518c608001516120a6565b905061393989600c602002015161062261370a613777858d61208d565b89600c602002015250505050505050505050565b6139e1604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613a166139fd6139f287601b61490c565b61061d88602461490c565b610622613a0b88602361490c565b61061d89601c61490c565b8152613a5b613a50613a37613a2c88601b61490c565b61061d89601e61490c565b610622613a4589601c61490c565b61061d8a601d61490c565b61064087602561490c565b60408201819052613a7090600160441b61208d565b60408201819052613a869061064087602661490c565b604082018190528151613a9991906120a6565b60408201819052613aaf9061061d87600561490c565b60408201528051613ac490600160441b61208d565b808252613ae490610622613ad988602361490c565b61061d89602461490c565b80825260208201819052613b0090610640612f9088601d61490c565b60208201819052613b169061061d87600461490c565b6020820152805160608201819052613b339061062287601e61490c565b60608201819052613b5790610640613b4c88602561490c565b61062289602661490c565b60608201819052613b6c9061061d875f61490c565b8160600181815250505f613b95613b8b836020015184604001516120a6565b83606001516120a6565b9050613ba68161061d88600361490c565b9050613bbe613bb687602461490c565b61400061208d565b60808301819052613bd49061062288602361490c565b60808301819052613be79061400061208d565b60808301819052613bfd9061062288601d61490c565b60808301819052613c109061400061208d565b60808301819052613c269061062288601c61490c565b60808301819052613c399061400061208d565b60808301819052613c4f9061062288601b61490c565b60808301819052613c659061064088601e61490c565b60808301819052613c7b9061061d88600561490c565b6080830152613c8e613bb687602561490c565b60a08301819052613ca49061062288602461490c565b60a08301819052613cb79061400061208d565b60a08301819052613ccd9061062288602361490c565b60a08301819052613ce09061400061208d565b60a08301819052613cf69061062288601e61490c565b60a08301819052613d099061400061208d565b60a08301819052613d1f9061062288601d61490c565b60a08301819052613d359061064088602661490c565b60a08301819052613d4a9061061d885f61490c565b60a0830181905260808301515f91613d6291906120a6565b9050613d738161061d89600461490c565b9050613d8d613d8388601d61490c565b876040015161208d565b60c08401819052613da6906106226132218a601c61490c565b60c08401819052613dc690610622613dbf8a601b61490c565b895161208d565b60c08401819052613ddc9061062289600161490c565b60c0840181905260e08401819052613df99061064089601e61490c565b60c0840152613e0c61344988602361490c565b610140840152613e2b613e2088602661490c565b61064089601e61490c565b610120840152610140830151613e5090613e45908061208d565b8461014001516120bf565b610280840152610140830151613e9290613e8790613e809061061d60015f5160206152c45f395f51905f52614fd5565b60016120a6565b84610120015161208d565b6101608401819052613ec990613ebb9061061d613eb08b600261490c565b61061d8c600361490c565b61061d6133ad8a600a61490c565b6101c0860152610280830151613eeb90613ebb9061061d613eb08b600261490c565b6101e086015260c0830151613f139061061d613f088a600261490c565b61061d8b600361490c565b6101e08401525f613f32613f2889601e61490c565b8560e001516120bf565b9050613f41613881828361208d565b6101a0850152613f5561323989602561490c565b6101008501819052613f7990610622613f6f8b602461490c565b8a6020015161208d565b6101008501819052613f939061062261320c8b602361490c565b610100850152613fb2613fa789602661490c565b8561010001516120bf565b6101008501525f613fc76134818a602561490c565b905061401b613ff5612eb8613e8088610140015160015f5160206152c45f395f51905f5261061d9190614fd5565b61061d613e8088610100015160015f5160206152c45f395f51905f5261061d9190614fd5565b61018086015261010085015161404090614035908061208d565b8661010001516120bf565b6101c08601526101808501516140739061405f9061061d8c600761490c565b61061d61406d8c600a61490c565b8961208d565b6102008801526102808501516140929061405f9061061d8c600761490c565b6102208801526101c08501516140b19061405f9061061d8c600761490c565b6102408801526101a08501516140cc9061061d8b600761490c565b6102008601526140eb6140e08a602461490c565b6106408b601c61490c565b61022086015261014085015161412a906134819061411f90613e809061061d60015f5160206152c45f395f51905f52614fd5565b87610220015161208d565b61024086018190526101e08601516102608701819052614161916106229061061d6141568e600561490c565b61061d8f600261490c565b610260860181905260c086015161418491906106229061061d6141568e5f61490c565b610260860181905261020086015161419c91906120a6565b61026086018190526141b29061375990866120a6565b6102a086018190526141cc9061061d61406d8c600a61490c565b6102a0860181905287600d6020020152505050505050505050565b61425d6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61427661426b85601b61490c565b61062286600261490c565b815261429161428685601c61490c565b61062286600361490c565b60208201526142af6142a485601d61490c565b61062286600461490c565b60408201526142cd6142c285601e61490c565b61062286600561490c565b606082015280516142ff906142f8906142f1906142ea908061208d565b845161208d565b835161208d565b825161208d565b6080820152602081015161433d90614333906143299061431f908061208d565b846020015161208d565b836020015161208d565b826020015161208d565b60a0820152604081015161437b90614371906143679061435d908061208d565b846040015161208d565b836040015161208d565b826040015161208d565b60c082015260608101516143b9906143af906143a59061439b908061208d565b846060015161208d565b836060015161208d565b826060015161208d565b60e0820152608081015160a08201516143d291906120a6565b61010082015260c081015160e08201516143ec91906120a6565b61012082015260a08101516144109061440590806120a6565b8261012001516120a6565b61014082015260e08101516144349061442990806120a6565b8261010001516120a6565b61016082015261012081015161444a90806120a6565b6101e0820181905261446b9061446090806120a6565b8261016001516120a6565b6101e082015261010081015161448190806120a6565b6101a082018190526144a29061449790806120a6565b8261014001516120a6565b6101a082018190526101608201516144b9916120a6565b6101808201526101408101516101e08201516144d591906120a6565b6101c08201526144e9612eb885600b61490c565b6102008201819052610260840151610180830151614514926106229161061d906106408a602361490c565b8360136020020152614544836014602002015161062283610200015161061d856101a001516106408a602461490c565b8360146020020152614574836015602002015161062283610200015161061d856101c001516106408a602561490c565b83601560200201526145a4836016602002015161062283610200015161061d856101e001516106408a602661490c565b836016602002015250505050565b6146046040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806146397f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e761206f565b81526020016146677f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b61206f565b81526020016146947e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac1561206f565b81526020016146c27f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b61206f565b905290506146df6146d486601b61490c565b61062287600261490c565b61012083018190526147139061470890613e87906146fd908061208d565b85610120015161208d565b83610120015161208d565b825261472085601c61490c565b602083015261473085601d61490c565b604083015261474085601e61490c565b60608301528151602083015161476891613b8b9161475e91906120a6565b84604001516120a6565b608083015261477b61316a86600c61490c565b610140830152815161479c9061479290835f610edb565b83608001516120a6565b60a08301526147c8846017602002015161062284610140015161061d8660a001516106408b602361490c565b6102e085015260208201516147e39061479290836001610edb565b60c083015261480f846018602002015161062284610140015161061d8660c001516106408b602461490c565b610300850152604082015161482a9061479290836002610edb565b60e0830152614856846019602002015161062284610140015161061d8660e001516106408b602561490c565b61032085015260608201516148719061479290836003610edb565b61010083015261489f84601a602002015161062284610140015161061d8661010001516106408b602661490c565b84601a612ff1565b5f6148b38184816108b3565b905060015b601b811015614905576148fb826106228684601b81106148da576148da615022565b6020020151866148eb600187614fd5565b601a8110610edb57610edb615022565b91506001016148b8565b5092915050565b5f828260278111156149205761492061526f565b6028811061493057614930615022565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f8152602001614962614df7565b815260200161496f614df7565b815260200161497c614df7565b8152602001614989614df7565b8152602001614996614df7565b81526020016149a3614df7565b81526020016149b0614df7565b81526020016149bd614df7565b81526020016149ca614df7565b81526020016149d7614df7565b81526020016149e4614df7565b81526020016149f1614df7565b81526020016149fe614df7565b8152602001614a0b614df7565b8152602001614a18614df7565b8152602001614a25614df7565b8152602001614a32614df7565b8152602001614a3f614df7565b8152602001614a4c614df7565b8152602001614a59614df7565b8152602001614a66614df7565b8152602001614a73614df7565b8152602001614a80614df7565b8152602001614a8d614df7565b8152602001614a9a614df7565b8152602001614aa7614df7565b8152602001614ab4614df7565b905290565b604051806101e00160405280614acd614e2e565b8152602001614ada614c8d565b8152602001614ae7614c8d565b8152602001614af4614c8d565b8152602001614b01614c8d565b8152602001614b0e614c8d565b8152602001614b1b614c8d565b8152602001614b28614c8d565b8152602001614b35614c8d565b8152602001614b42614e4d565b8152602001614b4f614e7b565b8152602001614b5c614e9a565b8152602001614b69614d1f565b8152602001614b76614c8d565b8152602001614ab4614c8d565b604051806101000160405280614b97614cb1565b8152602001614ba4614ce1565b8152602001614bb1614d1f565b8152602001614bbe614d1f565b81526020015f81526020015f81526020015f81526020015f81525090565b6040518061018001604052805f81526020015f81526020015f81526020015f81526020015f8152602001614c0e614ec8565b8152602001614c1b614ec8565b81526020015f81526020015f81526020015f81526020015f8152602001614ab4614d1f565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b614c77614df7565b815260200190600190039081614c6f5790505090565b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806103400160405280601a906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103600160405280601b906020820280368337509192915050565b60405180604001604052805f81526020015f81525090565b604051806101a00160405280600d906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b614e65614db9565b815260200190600190039081614e5d5790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b614eb2614c8d565b815260200190600190039081614eaa5790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f60408587031215614ef9575f5ffd5b84356001600160401b03811115614f0e575f5ffd5b8501601f81018713614f1e575f5ffd5b80356001600160401b03811115614f33575f5ffd5b876020828401011115614f44575f5ffd5b6020918201955093508501356001600160401b03811115614f63575f5ffd5b8501601f81018713614f73575f5ffd5b80356001600160401b03811115614f88575f5ffd5b8760208260051b8401011115614f9c575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761208757612087614faa565b8181038181111561208757612087614faa565b8082018082111561208757612087614faa565b5f5f85851115615009575f5ffd5b83861115615015575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161504757615047614faa565b5060010190565b80356020831015612087575f19602084900360031b1b1692915050565b5f8183825b600981101561508f578151835260209283019290910190600101615070565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f826150c1576150c161509f565b500490565b5f8183825b60298110156150ea5781518352602092830192909101906001016150cb565b5050506105208201905092915050565b5f8183825b606d81101561511e5781518352602092830192909101906001016150ff565b505050610da08201905092915050565b5f8183825b601d811015615152578151835260209283019290910190600101615133565b5050506103a08201905092915050565b5f8183825b6005811015615186578151835260209283019290910190600101615167565b50505060a08201905092915050565b5f826151a3576151a361509f565b500690565b5f816151b6576151b6614faa565b505f190190565b5f82518060208501845e5f920191825250919050565b5f602082840312156151e3575f5ffd5b815180151581146119eb575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b82811015615230578151845260209384019390910190600101615212565b509195945050505050565b5f8183825b600d81101561525f578151835260209283019290910190600101615240565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe696e76616c6964206e756d626572206f6620627974657320746f20636f6e737430644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
|
|
3
|
+
*/ export const HonkVerifierBytecode = "0x60e060405234801561000f575f5ffd5b506302000000608052601960a05260ae60c05260805160a05160c0516152e56100605f395f818160d6015261065001525f818161075b01528181610d030152610da001525f6105f401526152e55ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004614ee7565b610054565b604051901515815260200160405180910390f35b5f6100626101c86020614fbf565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a6101c1565b90505f61009787876101d6565b9050601082604001516100aa9190614fd6565b84146100c95760405163fa06659360e01b815260040160405180910390fd5b5f6100fc828787865f01517f0000000000000000000000000000000000000000000000000000000000000000600161052f565b905061014c8686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050855185516060810151608090910151919350915060016105de565b815160a001525f61015d8383610753565b90508061017d576040516313f8744360e31b815260040160405180910390fd5b5f610189848685610854565b9050806101a9576040516352ec174560e11b815260040160405180910390fd5b8180156101b35750805b9a9950505050505050505050565b6101c961493d565b6101d161109e565b905090565b6101de614aba565b5f805b60108110156102405761020d8583866101fb826020614fe9565b9261020893929190614ffc565b611985565b8351826010811061022057610220615023565b6020020181815250506020826102369190614fe9565b91506001016101e1565b50610264848285610252826080614fe9565b9261025f93929190614ffc565b6119f3565b6020830152610274608082614fe9565b9050610287848285610252826080614fe9565b6040830152610297608082614fe9565b90506102aa848285610252826080614fe9565b60608301526102ba608082614fe9565b90506102cd848285610252826080614fe9565b60c08301526102dd608082614fe9565b90506102f0848285610252826080614fe9565b60e0830152610300608082614fe9565b9050610313848285610252826080614fe9565b6080808401919091526103269082614fe9565b9050610339848285610252826080614fe9565b61010083015261034a608082614fe9565b905061035d848285610252826080614fe9565b60a083015261036d608082614fe9565b90505f5b601c8110156103ec575f5b60088110156103e3576103968684876101fb826020614fe9565b84610120015183601c81106103ad576103ad615023565b602002015182600881106103c3576103c3615023565b6020020181815250506020836103d99190614fe9565b925060010161037c565b50600101610371565b505f5b6028811015610440576104098583866101fb826020614fe9565b836101400151826028811061042057610420615023565b6020020181815250506020826104369190614fe9565b91506001016103ef565b505f5b61044f6001601c614fd6565b81101561049857610467858386610252826080614fe9565b83610160015182601b811061047e5761047e615023565b602002015261048e608083614fe9565b9150600101610443565b505f5b601c8110156104ec576104b58583866101fb826020614fe9565b83610180015182601c81106104cc576104cc615023565b6020020181815250506020826104e29190614fe9565b915060010161049b565b506104fe848285610252826080614fe9565b6101a083015261050f608082614fe9565b9050610522848285610252826080614fe9565b6101c08301525092915050565b610537614b84565b5f61054788888888888887611ad2565b90835290506105568189611b28565b6020840191909152905061056981611c79565b6040840191909152905061057d8882611cda565b606084019190915290506105918882611dae565b608084019190915290506105a58882611e39565b60a084019190915290506105b98882611fa7565b60c084019190915290506105cd8882612019565b5060e0830152509695505050505050565b5f60018082610627866106228961061d6106188a7f0000000000000000000000000000000000000000000000000000000000000000614fe9565b612070565b61208e565b6120a7565b90505f610645876106408a61061d6106188b6001614fe9565b6120c0565b90505f5b61067460107f0000000000000000000000000000000000000000000000000000000000000000614fd6565b8110156106e1575f61069e8c838151811061069157610691615023565b6020026020010151612070565b90506106ae8661061d86846120a7565b95506106be8561061d85846120a7565b94506106ca848b6120a7565b93506106d6838b6120c0565b925050600101610649565b505f5b6010811015610748575f8a826010811061070057610700615023565b602002015190506107158661061d86846120a7565b95506107258561061d85846120a7565b9450610731848b6120a7565b935061073d838b6120c0565b9250506001016106e4565b506101b384846120ef565b5f806001815b7f000000000000000000000000000000000000000000000000000000000000000081101561082a575f86610120015182601c811061079957610799615023565b602002015190505f6107ab82866120fd565b9050806107cb576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106107e2576107e2615023565b602002015190506107f3838261211a565b955061081a886040015185601c811061080e5761080e615023565b602002015186836122c9565b9450505050806001019050610759565b505f610844866101400151865f01518760200151856122f4565b90508281145b9695505050505050565b5f61085d614bdd565b5f61086b8460a00151612362565b9050610875614c41565b61087d614c60565b60e086015161089c9061089790855f5b60200201516120c0565b6123c7565b60e0808601919091528601516108bd9061089790855f5b60200201516120a7565b610100850181905260e085015160c08801516108dd92610622919061208e565b845260a086015161090c906108f1906123c7565b61061d8660e001516106408a60c0015189610100015161208e565b6020850152600182526101a088015161092490612430565b81526001606085018190525f60808601525b602381116109dc5761095761094d865f015161246f565b866060015161208e565b83826046811061096957610969615023565b602002015260808501516101408a01516109ac91906106229061098d600186614fd6565b6028811061099d5761099d615023565b6020020151886060015161208e565b8560800181815250506109c78560600151886080015161208e565b60608601526109d581615037565b9050610936565b505f6109ea60236001614fe9565b90505b60288111610a6b57610a0561094d866020015161246f565b838260468110610a1757610a17615023565b602002015260808501516101408a0151610a3b91906106229061098d600186614fd6565b856080018181525050610a568560600151886080015161208e565b6060860152610a6481615037565b90506109ed565b50606087015181600160200201526080870151816002602002015260a0870151816003602002015260c0870151816004602002015260e0870151816005602002015261010087015181600660200201526101208701518160076020020152610140870151816008602002015261016087015181600960200201526101a087015181600a602002015261018087015181600b60200201526101c087015181600c60200201526101e087015181600d602002015261020087015181600e602002015261022087015181600f60200201526102408701518160106020020152610260870151816011602002015261028087015181601260200201526102a087015181601360200201526102c087015181601460200201526102e08701518160156020020152610300870151816016602002015261032087015181601760200201526103408701518160186020020152610360870151816019602002015261038087015181601a60200201526103a087015181601b6020020181905250610bf18860200151612430565b6103808201526040880151610c0590612430565b6103a08201526060880151610c1990612430565b6103c08201526080880151610c2d90612430565b6103e082015260a0880151610c4190612430565b610400820152610100880151610c5690612430565b61042082015260c0880151610c6a90612430565b61044082015260e0880151610c7e90612430565b6104608201526020880151610c9290612430565b6104808201526040880151610ca690612430565b6104a08201526060880151610cba90612430565b6104c08201526080880151610cce90612430565b6104e082015260a0880151610ce290612430565b610500820152606086015160808501516101808a01515f92610d27929091877f0000000000000000000000000000000000000000000000000000000000000000612487565b805160e0870151919250610d3a9161208e565b604086018190526101808a01515160c0890151610d6b929161062291610d60919061208e565b88610100015161208e565b604086015260c0870151610d7e906125a2565b60608601525f5b610d916001601c614fd6565b811015610f99575f610dc460017f0000000000000000000000000000000000000000000000000000000000000000614fd6565b821015905080610f3f57610df76108978a60e0015188856001610de79190614fe9565b601c811061088d5761088d615023565b60e080890191909152890151610e27906108979088610e17866001614fe9565b601c81106108b3576108b3615023565b610100880152606087015160e0880151610e41919061208e565b610120880152606087015160c08a0151610e5e91610d609161208e565b6101408801819052610e8190610e739061246f565b61062289610120015161246f565b8583610e8f60286001614fe9565b610e999190614fe9565b60468110610ea957610ea9615023565b60200201526101408701516101808c01515f91610ee591610ecb866001614fe9565b601c8110610edb57610edb615023565b602002015161208e565b9050610f02816106228a610120015187876001610ecb9190614fe9565b9050610f128860400151826120a7565b6040890152606088015160c08b0151610f3891610f2e9161208e565b8b60c0015161208e565b6060890152505b610f638b610160015183601b8110610f5957610f59615023565b6020020151612430565b8483610f7160286001614fe9565b610f7b9190614fe9565b60468110610f8b57610f8b615023565b602002015250600101610d85565b5060408051808201909152600181526002602082015282610fbc601c6028614fe9565b60468110610fcc57610fcc615023565b6020020152604085015183610fe3601c6028614fe9565b60468110610ff357610ff3615023565b60200201526101c08901515f9061100990612430565b90508083611019601c6028614fe9565b611024906001614fe9565b6046811061103457611034615023565b602002015260e08801518461104b601c6028614fe9565b611056906001614fe9565b6046811061106657611066615023565b60200201525f61107684866125ad565b90505f61108283612673565b905061108e82826126b9565b9c9b505050505050505050505050565b6110a661493d565b50604080516103c08101825263020000008152601960208083019190915260ae82840152825180840184527f22696def6ba042691d7acd6fa25934fe1c9e5de5c469612391ebd22c48be0f8081527f2dc236171d93e509ede0fd359d1d47271883927333e7669bf48f0784fadb673c818301526060830152825180840184527f0bc785e8f051e28438dae007d21d94441afc7b888c94e2e6a3befd5e835c362a81527f2db6375b7cac58eef6ee93462a215d18a6f53e104ee53c527aa6b87f070effac818301526080830152825180840184527f12b7b6d578593ed283c59e2eb69176e9cde8068f657d228a935b6f0fc2b43baa81527f214a606183ed469bcc1d34c77fdbace499f918bd9726d4459d2d7c91a518b2738183015260a0830152825180840184527f18f8c2805dee1fdea805a4173d12643b1b24bb352374859851703ff77fb0ac1e81527f1f3aa367e3de395b1f684432c49a16e9f30292beeb15f25b186c9472c072bde68183015260c0830152825180840184527f0e410bf26af1978d4ca2440c6f55406c8fb930ecb1f052480c221c50c0289d6c81527f089da36b9216fb5679acaa2f41291689d394af1bc2fae9db4d5540fa956020a48183015260e0830152825180840184527f0da8119fa8fc399f4904cec5e1d0b9aaefe7256297a2151d61612b7002f400af81527f2596c9a11637799c8ad71ff6fea1f96f36def0b3ec40a1b71c623ef388fe83dc81830152610100830152825180840184527f107d2d79c20982125b9f302008ecbd7b7f25eebc71271311c28f58223170c78b81527f0f3c9104533084fca88d92d900c94cb1400899b1c3c2b40cf32807f7d8517f4781830152610120830152825180840184527f1951fc625025ca763cac91d30a1574a060830934789bd547a43b2103a7e84beb81527f0486f6b8c90f9363d898ee8964f3fed10a67d63de21cf285004abca9a9731d2981830152610140830152825180840184527f0354da312985896e31fbfbd7131af497a257877abe81dcb4aa8e8fbdd13b051481527f25d6652f1323d49067e2fec59e422d6796344df25044821e1e7408d9bd3f3cfb81830152610160830152825180840184527f22df977d5ef467d4731103a23e9d2137539cf9a112de5ccceef105a59790e40781527f1f3652575e985375d282d5bbeec17a6bbff3257ed22ef54134c8f0640e47338281830152610180830152825180840184527f27cc327364079b1e7d81a8962fe981187c2a331197513451a2372a8ef3ed3e7381527f0c7865e5b377f695a60ac352a193f9bbdb722d538a0fdfe34ca9455cecc3cf31818301526101a0830152825180840184527f1e864805831de2f312142f0cdb28d9799ed4758ccec32456aeb71e6c214454f881527f1e043e1fab8ff92cd7091ce6cc4a06291f3b408ccb87a104a42e48ba961f3cf9818301526101c0830152825180840184527f2316113dac58cacfbf02275257d1bf07154876a7e4d7b5aec9e63ae5134ab94581527f1cf38b5f697f6d2bd3f06e46c9fe03c93acf1556b0677848314130e53e1f27b5818301526101e0830152825180840184527f20c9b6a09e4cd18ea34483a257722597242273cd7baf010a60f09fd25e388a9581527f19bae9fba8320ce1a68d5317604c8f5d8a94ebb0b87955970285015abb2af9bb81830152610200830152825180840184527f1f7006852e1afaad20d30ce0e37a0c19384fdb779e7c3888141e7121059b4ed681527f0dddfa19796d5302b78797d3cc38975a59d37d73f5e1a67d64256dce2c8c1fc481830152610220830152825180840184527f2a754f9f52c759f0b70df69f50194b475e822c6272667e31e22e843b66ddf74381527f1938e68acc23ed0ee57a5ced4f2e12a6751da1e7ea3d8e76f6a709003798e3a681830152610240830152825180840184527f1d019605ead26ec05976012bc6a62878235d2e1f14cd7a58c6acd4c7ab28523881527f1893a0c07f22d3bb10acbe0b6c417df8b78b8a1ee6a56d3ab18f36557af0ac2781830152610260830152825180840184527f29e324a26d863a2390f2ed2c2a7823d65aa877934064c8d27ce0cfd90f116d5a81527f036ae82a7c729b2588a5ec964632703a38a3b49dca955f1f96b82867c1ff1e0a81830152610280830152825180840184527f0a654cd867ee3d600ef4c89eb02d71420f08a6acaa5f39f96f99bfd07cc35e4181527f01a061aaff968b4eb5d9146cef0d4b6c538d53a26e1ba71bbbd376d4214d1983818301526102a0830152825180840184527f074d9534828a7c8ec0c6064d640447b700311f108d67def19fceeb734592c53f81527f1ff29032983e9aab2e25db7eef479799e4039c100284fe877ed78a3e8b057696818301526102c0830152825180840184527f1176bf2829bd97cca0a9b315335df4a1a368e63255c2e697f0f70a24aee9e6eb81527f179efce3df1390e0ab671ede6889762c35a1a811e8f15cd671c41df987a0f38c818301526102e0830152825180840184527f275a0bb22f8c37a3476d71c556d266909fdde001df48d48a78940343ccb0b48a81527f2a4cc2119d1bd729845e8630c5b1aec652a2f2a7ae690c52238e3eafd44b385681830152610300830152825180840184527f1e1d6ac562a951aa01bc279a090d34488936a6404b3c75294fd260df0d36689381527f1643515b25c47e776b6d99eb3ce8b4613b209886681842e5c39ee92efe72c27281830152610320830152825180840184527f09d569252b4b229e483b00b1e67384ac4db29395d32e28c82f8b73983d30ac6b81527f2c47d5809e56ba32be655d4177db195bb450fd12587756c4b85b6506a7844ddb81830152610340830152825180840184527f1f59b85de9212665c6c3e59fb35ab6609d72f5ad8007449dc8019a5886fad88f81527f21c9b787b5e0109e8ab3c2293b8c67fa9ec871818722fb8bea77aa6477aaae4c81830152610360830152825180840184526001815260028183015261038083015282518084019093527f27d06697a891eae97032a6d3b390cedea50b8bcc9e6bc3b810905f4a265f4d1583527f11fe9108de55a1aeeebde848798ad77b7b21c3622180619df21c6f97f8bddf0d908301526103a081019190915290565b5f602082146119df5760405162461bcd60e51b815260206004820152602e60248201525f5160206152855f395f51905f5260448201526d393ab1ba1023391039b1b0b630b960911b60648201526084015b60405180910390fd5b6119ec610618838561504f565b9392505050565b6119fb614c8e565b60808214611a505760405162461bcd60e51b815260206004820152602f60248201525f5160206152855f395f51905f5260448201526e1c9d58dd08184811cc481c1bda5b9d608a1b60648201526084016119d6565b604080516080810190915280611a6960205f8688614ffc565b611a729161504f565b8152602090810190611a88906040908688614ffc565b611a919161504f565b8152602001611aa4606060408688614ffc565b611aad9161504f565b8152602001611ac0608060608688614ffc565b611ac99161504f565b90529392505050565b611ada614cb2565b5f611ae98989898989896128ad565b604086019190915260208501919091529083529250611b08838a612d53565b608085019190915260608401919091529199919850909650505050505050565b611b30614ce2565b5f611b39614d01565b848152610100848101805151602080850191909152815181015160408086019190915282518101516060808701919091529251830151608086015260a080890180515191870191909152805183015160c0870152805182015160e087015251909201519284019290925251611bcf91611bb49184910161506c565b60405160208183030381529060405280519060200120612070565b9150611bda82612e22565b6020850152835260015b611bf06002601a6150b4565b811015611c7057611c0d83604051602001611bb491815260200190565b9250611c1883612e22565b85611c24846002614fbf565b601a8110611c3457611c34615023565b6020020186611c44856002614fbf565b611c4f906001614fe9565b601a8110611c5f57611c5f615023565b602002019190915252600101611be4565b50509250929050565b611c81614d20565b5f805b601c811015611cd357611ca384604051602001611bb491815260200190565b93505f611caf85612e22565b8584601c8110611cc157611cc1615023565b60200201919091525050600101611c84565b5090929050565b611ce2614d20565b5f805b601c811015611da557611cf6614d01565b8481525f5b6008811015611d5f5786610120015183601c8110611d1b57611d1b615023565b60200201518160088110611d3157611d31615023565b602002015182611d42836001614fe9565b60098110611d5257611d52615023565b6020020152600101611cfb565b50611d7481604051602001611bb4919061506c565b94505f611d8086612e22565b8685601c8110611d9257611d92615023565b6020020191909152505050600101611ce5565b50909391925050565b5f5f611db8614d3f565b8381525f5b6028811015611e0b578561014001518160288110611ddd57611ddd615023565b602002015182611dee836001614fe9565b60298110611dfe57611dfe615023565b6020020152600101611dbd565b50611e2081604051602001611bb491906150c7565b91505f611e2c83612e22565b5096929550919350505050565b5f5f611e43614d5e565b8381525f5b611e546001601c614fd6565b811015611f925785610160015181601b8110611e7257611e72615023565b60200201515182611e84836004614fbf565b611e8f906001614fe9565b606d8110611e9f57611e9f615023565b602002015261016086015181601b8110611ebb57611ebb615023565b60200201516020015182826004611ed29190614fbf565b611edd906002614fe9565b606d8110611eed57611eed615023565b602002015261016086015181601b8110611f0957611f09615023565b60200201516040015182611f1e836004614fbf565b611f29906003614fe9565b606d8110611f3957611f39615023565b602002015261016086015181601b8110611f5557611f55615023565b60200201516060015182611f6a836004614fbf565b611f75906004614fe9565b606d8110611f8557611f85615023565b6020020152600101611e48565b50611e2081604051602001611bb491906150fb565b5f5f611fb1614d7d565b8381525f5b601c8110156120045785610180015181601c8110611fd657611fd6615023565b602002015182611fe7836001614fe9565b601d8110611ff757611ff7615023565b6020020152600101611fb6565b50611e2081604051602001611bb4919061512f565b5f5f612023614d9c565b8381526101a085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611e2091611bb491849101615163565b5f6120885f5160206152c55f395f51905f5283615196565b92915050565b5f5f5160206152c55f395f51905f528284099392505050565b5f5f5160206152c55f395f51905f528284089392505050565b5f5f5160206152c55f395f51905f526120e6835f5160206152c55f395f51905f52614fd6565b84089392505050565b5f6119ec8361061d846123c7565b81515f90819061210f908560016108b3565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b6008811015612201576121f78261061d87846120c0565b91506001016121e0565b5061220a614dba565b5f5b600881101561226b575f84826008811061222857612228615023565b6020020151905061223d8161061d89856120c0565b9050612248816123c7565b90508083836008811061225d5761225d615023565b60200201525060010161220c565b505f5b60088110156122be575f87826008811061228a5761228a615023565b602002015190506122a781848460088110610edb57610edb615023565b90506122b386826120a7565b95505060010161226e565b5061084a848361208e565b5f5f6122df60016106228561061d8960016120c0565b90506122eb848261208e565b95945050505050565b5f6122fd614dd9565b612308868285612e52565b61231486868386612ffe565b612320868683866131e6565b61232b868285613411565b612336868285613605565b6123428686838661394e565b61234d8682856141e8565b6123588682856145b3565b61084a81856148a8565b61236a614d20565b81815260015b601c8110156123c1576123a282612388600184614fd6565b601c811061239857612398615023565b60200201516125a2565b8282601c81106123b4576123b4615023565b6020020152600101612370565b50919050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f5160206152c55f395f51905f520360808201525f5160206152c55f395f51905f5260a082015260205f60c08360055afa905080612425575f5ffd5b50505f519392505050565b612438614df8565b604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f612088825f5160206152c55f395f51905f52614fd6565b61248f614d20565b601c5b8015612598575f846124a5600184614fd6565b601c81106124b5576124b5615023565b602002015190505f886124c9600185614fd6565b601c81106124d9576124d9615023565b602002015190505f6125346124f86124f1858c61208e565b600261208e565b6106408a612507600189614fd6565b601c811061251757612517615023565b602002015161061d61252e8861061d60018a6120c0565b876120c0565b90506125558161061d61089761254f8761061d6001896120c0565b866120a7565b905085841161258457975087808561256e600187614fd6565b601c811061257e5761257e615023565b60200201525b50505080612591906151a9565b9050612492565b5095945050505050565b5f612088828361208e565b6125b5614df8565b5f6125c2601c6028614fe9565b6125cd906002614fe9565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b8381101561265b5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612602565b50805184526020810151602085015250505092915050565b61267b614df8565b5f5160206152a55f395f51905f5282602001515f5160206152a55f395f51905f526126a69190614fd6565b6126b09190615196565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b03168360405161284f91906151be565b5f60405180830381855afa9150503d805f8114612887576040519150601f19603f3d011682016040523d82523d5f602084013e61288c565b606091505b509150915081801561084a57508080602001905181019061084a91906151d4565b5f808080806128bd876003614fe9565b6128c890600c614fe9565b6001600160401b038111156128df576128df6151f3565b604051908082528060200260200182016040528015612908578160200160208202803683370190505b509050875f1b815f8151811061292057612920615023565b602002602001018181525050865f1b8160018151811061294257612942615023565b602002602001018181525050855f1b8160028151811061296457612964615023565b60209081029190910101525f5b61297c601089614fd6565b8110156129cd578a8a8281811061299557612995615023565b90506020020135828260036129aa9190614fe9565b815181106129ba576129ba615023565b6020908102919091010152600101612971565b505f5b6010811015612a3e578b516129f89082601081106129f0576129f0615023565b602002015190565b82826010612a078c6003614fe9565b612a119190614fd6565b612a1b9190614fe9565b81518110612a2b57612a2b615023565b60209081029190910101526001016129d0565b5060208b01515181612a51896003614fe9565b81518110612a6157612a61615023565b6020908102919091018101919091528b810151015181612a82896003614fe9565b612a8d906001614fe9565b81518110612a9d57612a9d615023565b6020908102919091018101919091528b01516040015181612abf896003614fe9565b612aca906002614fe9565b81518110612ada57612ada615023565b6020908102919091018101919091528b01516060015181612afc896003614fe9565b612b07906003614fe9565b81518110612b1757612b17615023565b602090810291909101015260408b01515181612b34896003614fe9565b612b3f906004614fe9565b81518110612b4f57612b4f615023565b60209081029190910181019190915260408c0151015181612b71896003614fe9565b612b7c906005614fe9565b81518110612b8c57612b8c615023565b60209081029190910101526040808c0151015181612bab896003614fe9565b612bb6906006614fe9565b81518110612bc657612bc6615023565b602090810291909101015260408b01516060015181612be6896003614fe9565b612bf1906007614fe9565b81518110612c0157612c01615023565b602090810291909101015260608b01515181612c1e896003614fe9565b612c29906008614fe9565b81518110612c3957612c39615023565b60209081029190910181019190915260608c0151015181612c5b896003614fe9565b612c66906009614fe9565b81518110612c7657612c76615023565b602090810291909101015260608b01516040015181612c96896003614fe9565b612ca190600a614fe9565b81518110612cb157612cb1615023565b60209081029190910101526060808c0151015181612cd0896003614fe9565b612cdb90600b614fe9565b81518110612ceb57612ceb615023565b602002602001018181525050612d0b81604051602001611bb49190615207565b9150612d1682612e22565b6040805160208101869052929750909550612d319101611bb4565b91505f612d3d83612e22565b50959c949b509499509097509195505050505050565b5f5f5f612d5e614e10565b85815260c085810180515160208085019190915281518101516040808601919091528251810151606080870191909152925183015160808087019190915260e0808b0180515160a089015280518501519688019690965285518301519087015293518301516101008601529288018051516101208601528051820151610140860152805184015161016086015251909101516101808401529051612e0891611bb49184910161523c565b9150612e1382612e22565b90979096509194509092505050565b5f80826001600160801b038116608082901c612e3d82612070565b9450612e4881612070565b9350505050915091565b5f612e5e84600761490d565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612ebf612eb9612e938560036120c0565b61061d612eae612ea38b5f61490d565b61061d8c601c61490d565b61061d8b601b61490d565b8361208e565b9050612f40612f35612f1c612f03612eea85610622612edf8d600261490d565b61061d8e601b61490d565b610622612ef88c600361490d565b61061d8d601c61490d565b610622612f118b600461490d565b61061d8c601d61490d565b610622612f2a8a600561490d565b61061d8b601e61490d565b61062288600161490d565b9050612f5f81610622612f548660016120c0565b61061d8a602661490d565b9050612f6b818461208e565b9050612f77818561208e565b8552505f9050612fb1612fa7612f9c612f9188601b61490d565b61062289601e61490d565b61064088602361490d565b610622875f61490d565b9050612fc28161061d8460026120c0565b9050612fd38161061d8460016120c0565b9050612fdf818361208e565b9050612feb818461208e565b9050808460015b60200201525050505050565b5f5f5f61303461302a61301289601b61490d565b6106226130208b601161490d565b8a6060015161208e565b87608001516120a7565b905061306d8161061d61306361304b8b601c61490d565b6106226130598d601261490d565b8c6060015161208e565b89608001516120a7565b90506130928161061d6130636130848b601d61490d565b6106226130598d601361490d565b90506130b78161061d6130636130a98b601e61490d565b6106226130598d601461490d565b92505f90506130db61302a6130cd89601b61490d565b6106226130208b600d61490d565b90506131008161061d6130636130f28b601c61490d565b6106226130598d600e61490d565b90506131258161061d6130636131178b601d61490d565b6106226130598d600f61490d565b905061314a8161061d61306361313c8b601e61490d565b6106226130598d601061490d565b91505f905061317161316b61316089601f61490d565b6106228a601961490d565b8461208e565b90506131a6816106406131a06131888b602761490d565b6106226131968d601a61490d565b8c60a0015161208e565b8561208e565b90506131b2818561208e565b6040860152505f6131d56131a06131ca89601a61490d565b61061d8a602761490d565b606090950194909452505050505050565b5f5f61324461322c6132146131ff6130638a601561490d565b61062261320d8b601661490d565b8a5161208e565b6106226132228a601761490d565b896020015161208e565b61062261323a89601861490d565b886040015161208e565b91505f61327b61326261325889601b61490d565b88608001516120a7565b6106226132708a600361490d565b61061d8b602361490d565b90505f6132a461328c89601c61490d565b6106226132998b5f61490d565b61061d8c602461490d565b90505f6132ce6132b58a601d61490d565b6106226132c38c600161490d565b61061d8d602561490d565b905061330d6132f56132e785610622868d5f015161208e565b610622848c6020015161208e565b6106226133038c600461490d565b8b6040015161208e565b93505050505f61332161316b88602061490d565b90505f61333261316b89602061490d565b90505f61336a6133516133468b602261490d565b6106228c600661490d565b61064061335f8c602261490d565b61061d8d600661490d565b90505f61338e61338861337d878961208e565b61061d8d602061490d565b836120c0565b905061339a818861208e565b90505f6133c26133b46133ae8d600661490d565b8761208e565b6106406133ae8e602161490d565b90505f6133d08c602261490d565b90505f6133e0613388838461208e565b60808c0185905260a08c0184905290506133fa818b61208e565b8b6006602002015250505050505050505050505050565b5f61341d5f60016120c0565b90505f61342b5f60026120c0565b90505f6134395f60036120c0565b90505f61345561344a88601c61490d565b61064089601b61490d565b90505f61347161346689601d61490d565b6106408a601c61490d565b90505f61348d6134828a601e61490d565b6106408b601d61490d565b90505f6134a961349e8b602361490d565b6106408c601e61490d565b9050836134ba8161061d818b6120a7565b90506134ca8161061d878a6120a7565b90506134da8161061d87896120a7565b90506134eb8161061d8d600861490d565b90506134f7818a61208e565b60e08b0152508261350c8161061d818b6120a7565b905061351c8161061d868a6120a7565b905061352c8161061d86896120a7565b905061353d8161061d8d600861490d565b9050613549818a61208e565b6101008b0152508161355f8161061d818b6120a7565b905061356f8161061d858a6120a7565b905061357f8161061d85896120a7565b90506135908161061d8d600861490d565b905061359c818a61208e565b6101208b015250806135b28161061d818b6120a7565b90506135c28161061d848a6120a7565b90506135d28161061d84896120a7565b90506135e38161061d8d600861490d565b90506135ef818a61208e565b610140909a019990995250505050505050505050565b61363e6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61364984601c61490d565b815261365684601d61490d565b602082015261366684602361490d565b604082015261367684602661490d565b606082015261368684602561490d565b608082015261369684602461490d565b60a08201525f6136a785600261490d565b90505f6136b4865f61490d565b90505f6136c88460400151855f01516120c0565b90505f6136dd8560200151866020015161208e565b606086015190915086905f906136f3908061208e565b90505f61371161370b89602001518a6060015161208e565b8861208e565b90505f6137306137298a60a001518b604001516120a7565b8a516120a7565b905061373f6133ae828861208e565b905061376661376061375a61375484876120c0565b886120c0565b846120a7565b836120a7565b905061378e613783613778838761208e565b61061d8f600961490d565b61061d60018a6120c0565b6101608c015250505050602085015160808601515f916137ad916120a7565b90505f6137cb6137c188606001518861208e565b88602001516120c0565b90505f6137ef6137db848761208e565b6106226131a08b60a001518c5f01516120c0565b905061381761380c613801838c61208e565b61061d8e600961490d565b61061d6001896120c0565b6101808b0152505f915061383890506138318360116120a7565b875161208e565b90505f61384583846120a7565b905061385181826120a7565b90505f61385f83600961208e565b905061388861388261316b61387b8b60a001518c5f01516120a7565b8b516120a7565b826120c0565b60c089018190525f906138a39061370b90613778908d61208e565b90506138b68b600b6020020151826120a7565b6101608c0152505086515f92506138dd9150613831906138d690806120a7565b88516120a7565b90505f61391d6138f88361061d8a5f01518b60a001516120c0565b60208901516106409061390b90806120a7565b61061d8b602001518c608001516120a7565b905061393a89600c602002015161062261370b613778858d61208e565b89600c602002015250505050505050505050565b6139e2604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613a176139fe6139f387601b61490d565b61061d88602461490d565b610622613a0c88602361490d565b61061d89601c61490d565b8152613a5c613a51613a38613a2d88601b61490d565b61061d89601e61490d565b610622613a4689601c61490d565b61061d8a601d61490d565b61064087602561490d565b60408201819052613a7190600160441b61208e565b60408201819052613a879061064087602661490d565b604082018190528151613a9a91906120a7565b60408201819052613ab09061061d87600561490d565b60408201528051613ac590600160441b61208e565b808252613ae590610622613ada88602361490d565b61061d89602461490d565b80825260208201819052613b0190610640612f9188601d61490d565b60208201819052613b179061061d87600461490d565b6020820152805160608201819052613b349061062287601e61490d565b60608201819052613b5890610640613b4d88602561490d565b61062289602661490d565b60608201819052613b6d9061061d875f61490d565b8160600181815250505f613b96613b8c836020015184604001516120a7565b83606001516120a7565b9050613ba78161061d88600361490d565b9050613bbf613bb787602461490d565b61400061208e565b60808301819052613bd59061062288602361490d565b60808301819052613be89061400061208e565b60808301819052613bfe9061062288601d61490d565b60808301819052613c119061400061208e565b60808301819052613c279061062288601c61490d565b60808301819052613c3a9061400061208e565b60808301819052613c509061062288601b61490d565b60808301819052613c669061064088601e61490d565b60808301819052613c7c9061061d88600561490d565b6080830152613c8f613bb787602561490d565b60a08301819052613ca59061062288602461490d565b60a08301819052613cb89061400061208e565b60a08301819052613cce9061062288602361490d565b60a08301819052613ce19061400061208e565b60a08301819052613cf79061062288601e61490d565b60a08301819052613d0a9061400061208e565b60a08301819052613d209061062288601d61490d565b60a08301819052613d369061064088602661490d565b60a08301819052613d4b9061061d885f61490d565b60a0830181905260808301515f91613d6391906120a7565b9050613d748161061d89600461490d565b9050613d8e613d8488601d61490d565b876040015161208e565b60c08401819052613da7906106226132228a601c61490d565b60c08401819052613dc790610622613dc08a601b61490d565b895161208e565b60c08401819052613ddd9061062289600161490d565b60c0840181905260e08401819052613dfa9061064089601e61490d565b60c0840152613e0d61344a88602361490d565b610140840152613e2c613e2188602661490d565b61064089601e61490d565b610120840152610140830151613e5190613e46908061208e565b8461014001516120c0565b610280840152610140830151613e9390613e8890613e819061061d60015f5160206152c55f395f51905f52614fd6565b60016120a7565b84610120015161208e565b6101608401819052613eca90613ebc9061061d613eb18b600261490d565b61061d8c600361490d565b61061d6133ae8a600a61490d565b6101c0860152610280830151613eec90613ebc9061061d613eb18b600261490d565b6101e086015260c0830151613f149061061d613f098a600261490d565b61061d8b600361490d565b6101e08401525f613f33613f2989601e61490d565b8560e001516120c0565b9050613f42613882828361208e565b6101a0850152613f5661323a89602561490d565b6101008501819052613f7a90610622613f708b602461490d565b8a6020015161208e565b6101008501819052613f949061062261320d8b602361490d565b610100850152613fb3613fa889602661490d565b8561010001516120c0565b6101008501525f613fc86134828a602561490d565b905061401c613ff6612eb9613e8188610140015160015f5160206152c55f395f51905f5261061d9190614fd6565b61061d613e8188610100015160015f5160206152c55f395f51905f5261061d9190614fd6565b61018086015261010085015161404190614036908061208e565b8661010001516120c0565b6101c0860152610180850151614074906140609061061d8c600761490d565b61061d61406e8c600a61490d565b8961208e565b610200880152610280850151614093906140609061061d8c600761490d565b6102208801526101c08501516140b2906140609061061d8c600761490d565b6102408801526101a08501516140cd9061061d8b600761490d565b6102008601526140ec6140e18a602461490d565b6106408b601c61490d565b61022086015261014085015161412b906134829061412090613e819061061d60015f5160206152c55f395f51905f52614fd6565b87610220015161208e565b61024086018190526101e08601516102608701819052614162916106229061061d6141578e600561490d565b61061d8f600261490d565b610260860181905260c086015161418591906106229061061d6141578e5f61490d565b610260860181905261020086015161419d91906120a7565b61026086018190526141b39061375a90866120a7565b6102a086018190526141cd9061061d61406e8c600a61490d565b6102a0860181905287600d6020020152505050505050505050565b61425e6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61427761426c85601b61490d565b61062286600261490d565b815261429261428785601c61490d565b61062286600361490d565b60208201526142b06142a585601d61490d565b61062286600461490d565b60408201526142ce6142c385601e61490d565b61062286600561490d565b60608201528051614300906142f9906142f2906142eb908061208e565b845161208e565b835161208e565b825161208e565b6080820152602081015161433e906143349061432a90614320908061208e565b846020015161208e565b836020015161208e565b826020015161208e565b60a0820152604081015161437c90614372906143689061435e908061208e565b846040015161208e565b836040015161208e565b826040015161208e565b60c082015260608101516143ba906143b0906143a69061439c908061208e565b846060015161208e565b836060015161208e565b826060015161208e565b60e0820152608081015160a08201516143d391906120a7565b61010082015260c081015160e08201516143ed91906120a7565b61012082015260a08101516144119061440690806120a7565b8261012001516120a7565b61014082015260e08101516144359061442a90806120a7565b8261010001516120a7565b61016082015261012081015161444b90806120a7565b6101e0820181905261446c9061446190806120a7565b8261016001516120a7565b6101e082015261010081015161448290806120a7565b6101a082018190526144a39061449890806120a7565b8261014001516120a7565b6101a082018190526101608201516144ba916120a7565b6101808201526101408101516101e08201516144d691906120a7565b6101c08201526144ea612eb985600b61490d565b6102008201819052610260840151610180830151614515926106229161061d906106408a602361490d565b8360136020020152614545836014602002015161062283610200015161061d856101a001516106408a602461490d565b8360146020020152614575836015602002015161062283610200015161061d856101c001516106408a602561490d565b83601560200201526145a5836016602002015161062283610200015161061d856101e001516106408a602661490d565b836016602002015250505050565b6146056040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f604051806080016040528061463a7f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7612070565b81526020016146687f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b612070565b81526020016146957e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15612070565b81526020016146c37f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b612070565b905290506146e06146d586601b61490d565b61062287600261490d565b61012083018190526147149061470990613e88906146fe908061208e565b85610120015161208e565b83610120015161208e565b825261472185601c61490d565b602083015261473185601d61490d565b604083015261474185601e61490d565b60608301528151602083015161476991613b8c9161475f91906120a7565b84604001516120a7565b608083015261477c61316b86600c61490d565b610140830152815161479d9061479390835f610edb565b83608001516120a7565b60a08301526147c9846017602002015161062284610140015161061d8660a001516106408b602361490d565b6102e085015260208201516147e49061479390836001610edb565b60c0830152614810846018602002015161062284610140015161061d8660c001516106408b602461490d565b610300850152604082015161482b9061479390836002610edb565b60e0830152614857846019602002015161062284610140015161061d8660e001516106408b602561490d565b61032085015260608201516148729061479390836003610edb565b6101008301526148a084601a602002015161062284610140015161061d8661010001516106408b602661490d565b84601a612ff2565b5f6148b48184816108b3565b905060015b601b811015614906576148fc826106228684601b81106148db576148db615023565b6020020151866148ec600187614fd6565b601a8110610edb57610edb615023565b91506001016148b9565b5092915050565b5f8282602781111561492157614921615270565b6028811061493157614931615023565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f8152602001614963614df8565b8152602001614970614df8565b815260200161497d614df8565b815260200161498a614df8565b8152602001614997614df8565b81526020016149a4614df8565b81526020016149b1614df8565b81526020016149be614df8565b81526020016149cb614df8565b81526020016149d8614df8565b81526020016149e5614df8565b81526020016149f2614df8565b81526020016149ff614df8565b8152602001614a0c614df8565b8152602001614a19614df8565b8152602001614a26614df8565b8152602001614a33614df8565b8152602001614a40614df8565b8152602001614a4d614df8565b8152602001614a5a614df8565b8152602001614a67614df8565b8152602001614a74614df8565b8152602001614a81614df8565b8152602001614a8e614df8565b8152602001614a9b614df8565b8152602001614aa8614df8565b8152602001614ab5614df8565b905290565b604051806101e00160405280614ace614e2f565b8152602001614adb614c8e565b8152602001614ae8614c8e565b8152602001614af5614c8e565b8152602001614b02614c8e565b8152602001614b0f614c8e565b8152602001614b1c614c8e565b8152602001614b29614c8e565b8152602001614b36614c8e565b8152602001614b43614e4e565b8152602001614b50614e7c565b8152602001614b5d614e9b565b8152602001614b6a614d20565b8152602001614b77614c8e565b8152602001614ab5614c8e565b604051806101000160405280614b98614cb2565b8152602001614ba5614ce2565b8152602001614bb2614d20565b8152602001614bbf614d20565b81526020015f81526020015f81526020015f81526020015f81525090565b6040518061018001604052805f81526020015f81526020015f81526020015f81526020015f8152602001614c0f614ec9565b8152602001614c1c614ec9565b81526020015f81526020015f81526020015f81526020015f8152602001614ab5614d20565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b614c78614df8565b815260200190600190039081614c705790505090565b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806103400160405280601a906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103600160405280601b906020820280368337509192915050565b60405180604001604052805f81526020015f81525090565b604051806101a00160405280600d906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b614e66614dba565b815260200190600190039081614e5e5790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b614eb3614c8e565b815260200190600190039081614eab5790505090565b60405180608001604052806004906020820280368337509192915050565b5f5f5f5f60408587031215614efa575f5ffd5b84356001600160401b03811115614f0f575f5ffd5b8501601f81018713614f1f575f5ffd5b80356001600160401b03811115614f34575f5ffd5b876020828401011115614f45575f5ffd5b6020918201955093508501356001600160401b03811115614f64575f5ffd5b8501601f81018713614f74575f5ffd5b80356001600160401b03811115614f89575f5ffd5b8760208260051b8401011115614f9d575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761208857612088614fab565b8181038181111561208857612088614fab565b8082018082111561208857612088614fab565b5f5f8585111561500a575f5ffd5b83861115615016575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161504857615048614fab565b5060010190565b80356020831015612088575f19602084900360031b1b1692915050565b5f8183825b6009811015615090578151835260209283019290910190600101615071565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f826150c2576150c26150a0565b500490565b5f8183825b60298110156150eb5781518352602092830192909101906001016150cc565b5050506105208201905092915050565b5f8183825b606d81101561511f578151835260209283019290910190600101615100565b505050610da08201905092915050565b5f8183825b601d811015615153578151835260209283019290910190600101615134565b5050506103a08201905092915050565b5f8183825b6005811015615187578151835260209283019290910190600101615168565b50505060a08201905092915050565b5f826151a4576151a46150a0565b500690565b5f816151b7576151b7614fab565b505f190190565b5f82518060208501845e5f920191825250919050565b5f602082840312156151e4575f5ffd5b815180151581146119ec575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b82811015615231578151845260209384019390910190600101615213565b509195945050505050565b5f8183825b600d811015615260578151835260209283019290910190600101615241565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe696e76616c6964206e756d626572206f6620627974657320746f20636f6e737430644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
|
|
4
4
|
/**
|
|
5
5
|
* HonkVerifier link references.
|
|
6
6
|
*/ export const HonkVerifierLinkReferences = {};
|
package/dest/IERC20Abi.d.ts
CHANGED
|
@@ -147,7 +147,7 @@ export declare const IERC20Abi: readonly [{
|
|
|
147
147
|
}];
|
|
148
148
|
}, {
|
|
149
149
|
readonly type: "error";
|
|
150
|
-
readonly name: "
|
|
150
|
+
readonly name: "GSE__NotLatestRollup";
|
|
151
151
|
readonly inputs: readonly [{
|
|
152
152
|
readonly name: "";
|
|
153
153
|
readonly type: "address";
|
|
@@ -203,13 +203,13 @@ export declare const IERC20Abi: readonly [{
|
|
|
203
203
|
}];
|
|
204
204
|
}, {
|
|
205
205
|
readonly type: "error";
|
|
206
|
-
readonly name: "
|
|
206
|
+
readonly name: "GovernanceProposer__CanOnlySubmitRoundWinnerInPast";
|
|
207
207
|
readonly inputs: readonly [];
|
|
208
208
|
}, {
|
|
209
209
|
readonly type: "error";
|
|
210
|
-
readonly name: "
|
|
210
|
+
readonly name: "GovernanceProposer__FailedToSubmitRoundWinner";
|
|
211
211
|
readonly inputs: readonly [{
|
|
212
|
-
readonly name: "
|
|
212
|
+
readonly name: "payload";
|
|
213
213
|
readonly type: "address";
|
|
214
214
|
readonly internalType: "contract IPayload";
|
|
215
215
|
}];
|
|
@@ -227,43 +227,31 @@ export declare const IERC20Abi: readonly [{
|
|
|
227
227
|
}];
|
|
228
228
|
}, {
|
|
229
229
|
readonly type: "error";
|
|
230
|
-
readonly name: "
|
|
230
|
+
readonly name: "GovernanceProposer__InsufficientSignals";
|
|
231
231
|
readonly inputs: readonly [{
|
|
232
|
-
readonly name: "
|
|
232
|
+
readonly name: "signalsCast";
|
|
233
233
|
readonly type: "uint256";
|
|
234
234
|
readonly internalType: "uint256";
|
|
235
235
|
}, {
|
|
236
|
-
readonly name: "
|
|
236
|
+
readonly name: "signalsNeeded";
|
|
237
237
|
readonly type: "uint256";
|
|
238
238
|
readonly internalType: "uint256";
|
|
239
239
|
}];
|
|
240
240
|
}, {
|
|
241
241
|
readonly type: "error";
|
|
242
|
-
readonly name: "
|
|
242
|
+
readonly name: "GovernanceProposer__InvalidQuorumAndRoundSize";
|
|
243
243
|
readonly inputs: readonly [{
|
|
244
|
-
readonly name: "
|
|
244
|
+
readonly name: "quorumSize";
|
|
245
245
|
readonly type: "uint256";
|
|
246
246
|
readonly internalType: "uint256";
|
|
247
247
|
}, {
|
|
248
|
-
readonly name: "
|
|
248
|
+
readonly name: "roundSize";
|
|
249
249
|
readonly type: "uint256";
|
|
250
250
|
readonly internalType: "uint256";
|
|
251
251
|
}];
|
|
252
252
|
}, {
|
|
253
253
|
readonly type: "error";
|
|
254
|
-
readonly name: "
|
|
255
|
-
readonly inputs: readonly [{
|
|
256
|
-
readonly name: "n";
|
|
257
|
-
readonly type: "uint256";
|
|
258
|
-
readonly internalType: "uint256";
|
|
259
|
-
}, {
|
|
260
|
-
readonly name: "m";
|
|
261
|
-
readonly type: "uint256";
|
|
262
|
-
readonly internalType: "uint256";
|
|
263
|
-
}];
|
|
264
|
-
}, {
|
|
265
|
-
readonly type: "error";
|
|
266
|
-
readonly name: "GovernanceProposer__OnlyProposerCanVote";
|
|
254
|
+
readonly name: "GovernanceProposer__OnlyProposerCanSignal";
|
|
267
255
|
readonly inputs: readonly [{
|
|
268
256
|
readonly name: "caller";
|
|
269
257
|
readonly type: "address";
|
|
@@ -275,7 +263,7 @@ export declare const IERC20Abi: readonly [{
|
|
|
275
263
|
}];
|
|
276
264
|
}, {
|
|
277
265
|
readonly type: "error";
|
|
278
|
-
readonly name: "
|
|
266
|
+
readonly name: "GovernanceProposer__PayloadAlreadySubmitted";
|
|
279
267
|
readonly inputs: readonly [{
|
|
280
268
|
readonly name: "roundNumber";
|
|
281
269
|
readonly type: "uint256";
|
|
@@ -283,19 +271,31 @@ export declare const IERC20Abi: readonly [{
|
|
|
283
271
|
}];
|
|
284
272
|
}, {
|
|
285
273
|
readonly type: "error";
|
|
286
|
-
readonly name: "
|
|
274
|
+
readonly name: "GovernanceProposer__PayloadCannotBeAddressZero";
|
|
287
275
|
readonly inputs: readonly [];
|
|
288
276
|
}, {
|
|
289
277
|
readonly type: "error";
|
|
290
|
-
readonly name: "
|
|
278
|
+
readonly name: "GovernanceProposer__PayloadHaveNoCode";
|
|
291
279
|
readonly inputs: readonly [{
|
|
292
|
-
readonly name: "
|
|
280
|
+
readonly name: "payload";
|
|
293
281
|
readonly type: "address";
|
|
294
282
|
readonly internalType: "contract IPayload";
|
|
295
283
|
}];
|
|
296
284
|
}, {
|
|
297
285
|
readonly type: "error";
|
|
298
|
-
readonly name: "
|
|
286
|
+
readonly name: "GovernanceProposer__QuorumCannotBeLargerThanRoundSize";
|
|
287
|
+
readonly inputs: readonly [{
|
|
288
|
+
readonly name: "quorumSize";
|
|
289
|
+
readonly type: "uint256";
|
|
290
|
+
readonly internalType: "uint256";
|
|
291
|
+
}, {
|
|
292
|
+
readonly name: "roundSize";
|
|
293
|
+
readonly type: "uint256";
|
|
294
|
+
readonly internalType: "uint256";
|
|
295
|
+
}];
|
|
296
|
+
}, {
|
|
297
|
+
readonly type: "error";
|
|
298
|
+
readonly name: "GovernanceProposer__RoundTooOld";
|
|
299
299
|
readonly inputs: readonly [{
|
|
300
300
|
readonly name: "roundNumber";
|
|
301
301
|
readonly type: "uint256";
|
|
@@ -307,7 +307,7 @@ export declare const IERC20Abi: readonly [{
|
|
|
307
307
|
}];
|
|
308
308
|
}, {
|
|
309
309
|
readonly type: "error";
|
|
310
|
-
readonly name: "
|
|
310
|
+
readonly name: "GovernanceProposer__SignalAlreadyCastForSlot";
|
|
311
311
|
readonly inputs: readonly [{
|
|
312
312
|
readonly name: "slot";
|
|
313
313
|
readonly type: "uint256";
|
|
@@ -349,14 +349,6 @@ export declare const IERC20Abi: readonly [{
|
|
|
349
349
|
readonly type: "error";
|
|
350
350
|
readonly name: "Governance__CannotCallAsset";
|
|
351
351
|
readonly inputs: readonly [];
|
|
352
|
-
}, {
|
|
353
|
-
readonly type: "error";
|
|
354
|
-
readonly name: "Governance__ConfigurationLib__DifferentialTooBig";
|
|
355
|
-
readonly inputs: readonly [];
|
|
356
|
-
}, {
|
|
357
|
-
readonly type: "error";
|
|
358
|
-
readonly name: "Governance__ConfigurationLib__DifferentialTooSmall";
|
|
359
|
-
readonly inputs: readonly [];
|
|
360
352
|
}, {
|
|
361
353
|
readonly type: "error";
|
|
362
354
|
readonly name: "Governance__ConfigurationLib__InvalidMinimumVotes";
|
|
@@ -373,6 +365,10 @@ export declare const IERC20Abi: readonly [{
|
|
|
373
365
|
readonly type: "error";
|
|
374
366
|
readonly name: "Governance__ConfigurationLib__QuorumTooSmall";
|
|
375
367
|
readonly inputs: readonly [];
|
|
368
|
+
}, {
|
|
369
|
+
readonly type: "error";
|
|
370
|
+
readonly name: "Governance__ConfigurationLib__RequiredYeaMarginTooBig";
|
|
371
|
+
readonly inputs: readonly [];
|
|
376
372
|
}, {
|
|
377
373
|
readonly type: "error";
|
|
378
374
|
readonly name: "Governance__ConfigurationLib__TimeTooBig";
|
|
@@ -393,6 +389,10 @@ export declare const IERC20Abi: readonly [{
|
|
|
393
389
|
readonly type: "error";
|
|
394
390
|
readonly name: "Governance__DepositNotAllowed";
|
|
395
391
|
readonly inputs: readonly [];
|
|
392
|
+
}, {
|
|
393
|
+
readonly type: "error";
|
|
394
|
+
readonly name: "Governance__GovernanceProposerCannotBeSelf";
|
|
395
|
+
readonly inputs: readonly [];
|
|
396
396
|
}, {
|
|
397
397
|
readonly type: "error";
|
|
398
398
|
readonly name: "Governance__InsufficientPower";
|