witnet-solidity-bridge
Version:
Witnet Solidity Bridge contracts for EVM-compatible chains
12 lines (11 loc) • 117 kB
TypeScript
// This file was autogenerated by Hardhat, do not edit it.
// prettier-ignore
// tslint:disable
// eslint-disable
// biome-ignore format: see above
export interface WitOracleRadonRegistryUpgradableDefault$Type {
readonly _format: "hh3-artifact-1";
readonly contractName: "WitOracleRadonRegistryUpgradableDefault";
readonly sourceName: "contracts/core/upgradable/WitOracleRadonRegistryUpgradableDefault.sol";
readonly abi: [{"inputs":[{"internalType":"bytes32","name":"_versionTag","type":"bytes32"},{"internalType":"bool","name":"_upgradable","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"NewRadonReducer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"Witnet.RadonHash","name":"radonHash","type":"bytes32"}],"name":"NewRadonRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"NewRadonRetrieval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"baseAddr","type":"address"},{"indexed":true,"internalType":"bytes32","name":"baseCodehash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"versionTag","type":"string"}],"name":"Upgraded","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"base","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Witnet.RadonHash","name":"_radHash","type":"bytes32"}],"name":"bytecodeOf","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_radBytecode","type":"bytes"},{"components":[{"internalType":"uint16","name":"witResultMaxSize","type":"uint16"},{"internalType":"uint16","name":"witCommitteeSize","type":"uint16"},{"internalType":"uint64","name":"witUnitaryReward","type":"uint64"}],"internalType":"struct Witnet.QuerySLA","name":"_sla","type":"tuple"}],"name":"bytecodeOf","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"Witnet.RadonHash","name":"_radHash","type":"bytes32"},{"components":[{"internalType":"uint16","name":"witResultMaxSize","type":"uint16"},{"internalType":"uint16","name":"witCommitteeSize","type":"uint16"},{"internalType":"uint64","name":"witUnitaryReward","type":"uint64"}],"internalType":"struct Witnet.QuerySLA","name":"_sla","type":"tuple"}],"name":"bytecodeOf","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"class","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"codehash","outputs":[{"internalType":"bytes32","name":"_codehash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_radBytecode","type":"bytes"}],"name":"hashOf","outputs":[{"internalType":"Witnet.RadonHash","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"_initData","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isUpgradable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"}],"name":"isUpgradableFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_radonReducerHash","type":"bytes32"}],"name":"isVerifiedRadonReducer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Witnet.RadonHash","name":"_radonRequestHash","type":"bytes32"}],"name":"isVerifiedRadonRequest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_radonRetrievalHash","type":"bytes32"}],"name":"isVerifiedRadonRetrieval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"lookupRadonReducer","outputs":[{"components":[{"internalType":"enum Witnet.RadonReduceOpcodes","name":"opcode","type":"uint8"},{"components":[{"internalType":"enum Witnet.RadonFilterOpcodes","name":"opcode","type":"uint8"},{"internalType":"bytes","name":"cborArgs","type":"bytes"}],"internalType":"struct Witnet.RadonFilter[]","name":"filters","type":"tuple[]"}],"internalType":"struct Witnet.RadonReducer","name":"_reducer","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Witnet.RadonHash","name":"_radHash","type":"bytes32"}],"name":"lookupRadonRequest","outputs":[{"components":[{"components":[{"internalType":"uint8","name":"argsCount","type":"uint8"},{"internalType":"enum Witnet.RadonRetrievalMethods","name":"method","type":"uint8"},{"internalType":"enum Witnet.RadonDataTypes","name":"dataType","type":"uint8"},{"internalType":"string","name":"url","type":"string"},{"internalType":"string","name":"body","type":"string"},{"internalType":"string[2][]","name":"headers","type":"string[2][]"},{"internalType":"bytes","name":"radonScript","type":"bytes"}],"internalType":"struct Witnet.RadonRetrieval[]","name":"retrieve","type":"tuple[]"},{"components":[{"internalType":"enum Witnet.RadonReduceOpcodes","name":"opcode","type":"uint8"},{"components":[{"internalType":"enum Witnet.RadonFilterOpcodes","name":"opcode","type":"uint8"},{"internalType":"bytes","name":"cborArgs","type":"bytes"}],"internalType":"struct Witnet.RadonFilter[]","name":"filters","type":"tuple[]"}],"internalType":"struct Witnet.RadonReducer","name":"aggregate","type":"tuple"},{"components":[{"internalType":"enum Witnet.RadonReduceOpcodes","name":"opcode","type":"uint8"},{"components":[{"internalType":"enum Witnet.RadonFilterOpcodes","name":"opcode","type":"uint8"},{"internalType":"bytes","name":"cborArgs","type":"bytes"}],"internalType":"struct Witnet.RadonFilter[]","name":"filters","type":"tuple[]"}],"internalType":"struct Witnet.RadonReducer","name":"tally","type":"tuple"}],"internalType":"struct Witnet.RadonRequest","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Witnet.RadonHash","name":"_radHash","type":"bytes32"}],"name":"lookupRadonRequestAggregator","outputs":[{"components":[{"internalType":"enum Witnet.RadonReduceOpcodes","name":"opcode","type":"uint8"},{"components":[{"internalType":"enum Witnet.RadonFilterOpcodes","name":"opcode","type":"uint8"},{"internalType":"bytes","name":"cborArgs","type":"bytes"}],"internalType":"struct Witnet.RadonFilter[]","name":"filters","type":"tuple[]"}],"internalType":"struct Witnet.RadonReducer","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Witnet.RadonHash","name":"_radHash","type":"bytes32"}],"name":"lookupRadonRequestBytecode","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Witnet.RadonHash","name":"_radHash","type":"bytes32"}],"name":"lookupRadonRequestCrowdAttestationTally","outputs":[{"components":[{"internalType":"enum Witnet.RadonReduceOpcodes","name":"opcode","type":"uint8"},{"components":[{"internalType":"enum Witnet.RadonFilterOpcodes","name":"opcode","type":"uint8"},{"internalType":"bytes","name":"cborArgs","type":"bytes"}],"internalType":"struct Witnet.RadonFilter[]","name":"filters","type":"tuple[]"}],"internalType":"struct Witnet.RadonReducer","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Witnet.RadonHash","name":"_radHash","type":"bytes32"}],"name":"lookupRadonRequestResultDataType","outputs":[{"internalType":"enum Witnet.RadonDataTypes","name":"_resultDataType","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_radHash","type":"bytes32"}],"name":"lookupRadonRequestResultMaxSize","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Witnet.RadonHash","name":"_radHash","type":"bytes32"}],"name":"lookupRadonRequestRetrievals","outputs":[{"components":[{"internalType":"uint8","name":"argsCount","type":"uint8"},{"internalType":"enum Witnet.RadonRetrievalMethods","name":"method","type":"uint8"},{"internalType":"enum Witnet.RadonDataTypes","name":"dataType","type":"uint8"},{"internalType":"string","name":"url","type":"string"},{"internalType":"string","name":"body","type":"string"},{"internalType":"string[2][]","name":"headers","type":"string[2][]"},{"internalType":"bytes","name":"radonScript","type":"bytes"}],"internalType":"struct Witnet.RadonRetrieval[]","name":"_retrievals","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Witnet.RadonHash","name":"_radHash","type":"bytes32"}],"name":"lookupRadonRequestRetrievalsAggregator","outputs":[{"components":[{"internalType":"enum Witnet.RadonReduceOpcodes","name":"opcode","type":"uint8"},{"components":[{"internalType":"enum Witnet.RadonFilterOpcodes","name":"opcode","type":"uint8"},{"internalType":"bytes","name":"cborArgs","type":"bytes"}],"internalType":"struct Witnet.RadonFilter[]","name":"filters","type":"tuple[]"}],"internalType":"struct Witnet.RadonReducer","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Witnet.RadonHash","name":"_radHash","type":"bytes32"}],"name":"lookupRadonRequestRetrievalsCount","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_radHash","type":"bytes32"}],"name":"lookupRadonRequestSources","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_radHash","type":"bytes32"}],"name":"lookupRadonRequestSourcesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Witnet.RadonHash","name":"_radHash","type":"bytes32"}],"name":"lookupRadonRequestTally","outputs":[{"components":[{"internalType":"enum Witnet.RadonReduceOpcodes","name":"opcode","type":"uint8"},{"components":[{"internalType":"enum Witnet.RadonFilterOpcodes","name":"opcode","type":"uint8"},{"internalType":"bytes","name":"cborArgs","type":"bytes"}],"internalType":"struct Witnet.RadonFilter[]","name":"filters","type":"tuple[]"}],"internalType":"struct Witnet.RadonReducer","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"lookupRadonRetrieval","outputs":[{"components":[{"internalType":"uint8","name":"argsCount","type":"uint8"},{"internalType":"enum Witnet.RadonRetrievalMethods","name":"method","type":"uint8"},{"internalType":"enum Witnet.RadonDataTypes","name":"dataType","type":"uint8"},{"internalType":"string","name":"url","type":"string"},{"internalType":"string","name":"body","type":"string"},{"internalType":"string[2][]","name":"headers","type":"string[2][]"},{"internalType":"bytes","name":"radonScript","type":"bytes"}],"internalType":"struct Witnet.RadonRetrieval","name":"_source","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"lookupRadonRetrievalArgsCount","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"lookupRadonRetrievalResultDataType","outputs":[{"internalType":"enum Witnet.RadonDataTypes","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"specs","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"enum Witnet.RadonReduceOpcodes","name":"opcode","type":"uint8"},{"components":[{"internalType":"enum Witnet.RadonFilterOpcodes","name":"opcode","type":"uint8"},{"internalType":"bytes","name":"cborArgs","type":"bytes"}],"internalType":"struct Witnet.RadonFilter[]","name":"filters","type":"tuple[]"}],"internalType":"struct Witnet.RadonReducer","name":"_reducer","type":"tuple"}],"name":"verifyRadonReducer","outputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_retrieveHashes","type":"bytes32[]"},{"internalType":"bytes32","name":"_aggregateReducerHash","type":"bytes32"},{"internalType":"bytes32","name":"_tallyReducerHash","type":"bytes32"}],"name":"verifyRadonRequest","outputs":[{"internalType":"Witnet.RadonHash","name":"radHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_retrieveHashes","type":"bytes32[]"},{"components":[{"internalType":"enum Witnet.RadonReduceOpcodes","name":"opcode","type":"uint8"},{"components":[{"internalType":"enum Witnet.RadonFilterOpcodes","name":"opcode","type":"uint8"},{"internalType":"bytes","name":"cborArgs","type":"bytes"}],"internalType":"struct Witnet.RadonFilter[]","name":"filters","type":"tuple[]"}],"internalType":"struct Witnet.RadonReducer","name":"_aggregateReducer","type":"tuple"},{"components":[{"internalType":"enum Witnet.RadonReduceOpcodes","name":"opcode","type":"uint8"},{"components":[{"internalType":"enum Witnet.RadonFilterOpcodes","name":"opcode","type":"uint8"},{"internalType":"bytes","name":"cborArgs","type":"bytes"}],"internalType":"struct Witnet.RadonFilter[]","name":"filters","type":"tuple[]"}],"internalType":"struct Witnet.RadonReducer","name":"_tallyReducer","type":"tuple"}],"name":"verifyRadonRequest","outputs":[{"internalType":"Witnet.RadonHash","name":"radHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"modalRetrieveHash","type":"bytes32"},{"internalType":"string[]","name":"modalArgs","type":"string[]"},{"internalType":"string[]","name":"modalUrls","type":"string[]"},{"internalType":"bytes32","name":"dataSourcesAggregatorHash","type":"bytes32"},{"internalType":"bytes32","name":"crowdAttestationTallyHash","type":"bytes32"}],"name":"verifyRadonRequest","outputs":[{"internalType":"Witnet.RadonHash","name":"_radHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_retrieveHashes","type":"bytes32[]"},{"internalType":"bytes32","name":"_aggregateReducerHash","type":"bytes32"},{"internalType":"bytes32","name":"_tallyReducerHash","type":"bytes32"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"string[][]","name":"_retrieveArgsValues","type":"string[][]"}],"name":"verifyRadonRequest","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_retrieveHashes","type":"bytes32[]"},{"internalType":"string[][]","name":"_retrieveArgsValues","type":"string[][]"},{"components":[{"internalType":"enum Witnet.RadonReduceOpcodes","name":"opcode","type":"uint8"},{"components":[{"internalType":"enum Witnet.RadonFilterOpcodes","name":"opcode","type":"uint8"},{"internalType":"bytes","name":"cborArgs","type":"bytes"}],"internalType":"struct Witnet.RadonFilter[]","name":"filters","type":"tuple[]"}],"internalType":"struct Witnet.RadonReducer","name":"_aggregateReducer","type":"tuple"},{"components":[{"internalType":"enum Witnet.RadonReduceOpcodes","name":"opcode","type":"uint8"},{"components":[{"internalType":"enum Witnet.RadonFilterOpcodes","name":"opcode","type":"uint8"},{"internalType":"bytes","name":"cborArgs","type":"bytes"}],"internalType":"struct Witnet.RadonFilter[]","name":"filters","type":"tuple[]"}],"internalType":"struct Witnet.RadonReducer","name":"_tallyReducer","type":"tuple"}],"name":"verifyRadonRequest","outputs":[{"internalType":"Witnet.RadonHash","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_retrieveHashes","type":"bytes32[]"},{"internalType":"string[][]","name":"_retrieveArgsValues","type":"string[][]"},{"internalType":"bytes32","name":"_aggregateReducerHash","type":"bytes32"},{"internalType":"bytes32","name":"_tallyReducerHash","type":"bytes32"}],"name":"verifyRadonRequest","outputs":[{"internalType":"Witnet.RadonHash","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum Witnet.RadonRetrievalMethods","name":"_requestMethod","type":"uint8"},{"internalType":"string","name":"_requestURL","type":"string"},{"internalType":"string","name":"_requestBody","type":"string"},{"internalType":"string[2][]","name":"_requestHeaders","type":"string[2][]"},{"internalType":"bytes","name":"_requestRadonScript","type":"bytes"}],"name":"verifyRadonRetrieval","outputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}];
readonly bytecode: "0x6101406040523361010052348015610015575f5ffd5b50604051615e41380380615e41833981016040819052610034916101dd565b818180826040518060400160405280601d81526020017f696f2e7769746e65742e70726f786961626c652e62797465636f64657300000081525082333061007f6100f360201b60201c565b80546001600160a01b0319166001600160a01b0392831617905581166100be57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100c781610117565b5030608052151560c052600160025560e0919091528051602090910120610120525061020f9350505050565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dec90565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dee80546001600160a01b03191690555f6101655f516020615e215f395f51905f52546001600160a01b031690565b9050806001600160a01b0316826001600160a01b0316146101d9575f516020615e215f395f51905f5280546001600160a01b0319166001600160a01b0384811691821790925560405190918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35b5050565b5f5f604083850312156101ee575f5ffd5b8251915060208301518015158114610204575f5ffd5b809150509250929050565b60805160a05160c05160e0516101005161012051615bb261026f5f395f6104ea01525f6108cc01525f6110ad01525f818161051a015261110901525f50505f81816104a10152818161080401528181610eb50152610f260152615bb25ff3fe608060405260043610610280575f3560e01c8063977e01571161014e578063adb7c3f7116100c0578063db4c6b2111610079578063db4c6b21146108ee578063dbc218ef1461090d578063dcf3f9721461092c578063e30c39781461094b578063f0bd92d914610974578063f2fde38b146109a0576102b4565b8063adb7c3f714610829578063b4ab01a51461084a578063b73cb31314610869578063bff852fa14610888578063c61fa8931461089c578063d5f39488146108bb576102b4565b80639f34df19116101125780639f34df191461074e578063a0490fa01461076d578063a0e553361461078c578063a4a7cecd146107ab578063a83e942c146107ca578063a9e954b9146107f6576102b4565b8063977e0157146106a657806398cb04f4146106c55780639a7af84e146106e45780639dd48757146107035780639eb3ab1f1461072f576102b4565b806354fd4d50116101f257806376b78a06116101ab57806376b78a06146105e257806377c112591461061457806379ba5097146106405780637f412e23146106545780638a227764146106735780638da5cb5b14610692576102b4565b806354fd4d501461053e57806368ec07a4146105525780636b58960a146105715780636bd04634146105905780636ea3ebe4146105af578063715018a6146105ce576102b4565b8063439fab9111610244578063439fab911461042957806348223a0b146104485780634c729104146104675780635001f3b51461049357806352d1902d146104d95780635479d9401461050c576102b4565b80632229e86e1461033f57806323f2e3ea146103735780632ebf5d5c146103a45780633679f864146103d057806340c5da1d146103fc576102b4565b366102b4576102b26040518060400160405280600c81526020016b6e6f207472616e736665727360a01b8152506109bf565b005b3480156102bf575f5ffd5b506102cd5f3560f81c6109d9565b6102dd60ff5f3560f01c166109d9565b6102ed60ff5f3560e81c166109d9565b6102fd60ff5f3560e01c166109d9565b6040516020016103109493929190614291565b60408051601f198184030181529082905262461bcd60e51b82526103369160040161431d565b60405180910390fd5b34801561034a575f5ffd5b5061035e61035936600461432f565b610ac5565b60405190151581526020015b60405180910390f35b34801561037e575f5ffd5b5061039261038d36600461432f565b610b00565b60405160ff909116815260200161036a565b3480156103af575f5ffd5b506103c36103be36600461432f565b610b26565b60405161036a919061431d565b3480156103db575f5ffd5b506103ef6103ea36600461432f565b610ba1565b60405161036a9190614414565b348015610407575f5ffd5b5061041b61041636600461446d565b610d7d565b60405190815260200161036a565b348015610434575f5ffd5b506102b261044336600461459f565b610ddf565b348015610453575f5ffd5b506103ef61046236600461432f565b610fc8565b348015610472575f5ffd5b5061048661048136600461432f565b611018565b60405161036a91906145e8565b34801561049e575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161036a565b3480156104e4575f5ffd5b5061041b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610517575f5ffd5b507f000000000000000000000000000000000000000000000000000000000000000061035e565b348015610549575f5ffd5b506103c36110a6565b34801561055d575f5ffd5b5061035e61056c36600461432f565b6110d6565b34801561057c575f5ffd5b5061035e61058b36600461460a565b611106565b34801561059b575f5ffd5b5061041b6105aa366004614635565b611152565b3480156105ba575f5ffd5b5061041b6105c936600461432f565b6111c1565b3480156105d9575f5ffd5b506102b26111e3565b3480156105ed575f5ffd5b506106016105fc36600461432f565b6111f6565b60405161ffff909116815260200161036a565b34801561061f575f5ffd5b5061063361062e36600461432f565b61120d565b60405161036a9190614841565b34801561064b575f5ffd5b506102b261162c565b34801561065f575f5ffd5b5061041b61066e36600461499b565b6116c0565b34801561067e575f5ffd5b506103c361068d36600461432f565b6117ff565b34801561069d575f5ffd5b506104c16118b6565b3480156106b1575f5ffd5b5061035e6106c036600461432f565b6118e4565b3480156106d0575f5ffd5b5061041b6106df3660046149cc565b611921565b3480156106ef575f5ffd5b506103c36106fe366004614a9e565b6120fc565b34801561070e575f5ffd5b5061072261071d36600461432f565b612232565b60405161036a9190614aee565b34801561073a575f5ffd5b5061041b610749366004614bdb565b6125fe565b348015610759575f5ffd5b506103ef61076836600461432f565b61292d565b348015610778575f5ffd5b5061041b610787366004614ca5565b61299c565b348015610797575f5ffd5b506104866107a636600461432f565b6129e2565b3480156107b6575f5ffd5b5061041b6107c5366004614cf4565b612a12565b3480156107d5575f5ffd5b506107e96107e436600461432f565b612a35565b60405161036a9190614d84565b348015610801575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000003f61041b565b348015610834575f5ffd5b5060405163a614fef760e01b815260200161036a565b348015610855575f5ffd5b5061039261086436600461432f565b612aa4565b348015610874575f5ffd5b5061041b610883366004614dc6565b612ace565b348015610893575f5ffd5b506103c3612af7565b3480156108a7575f5ffd5b506103ef6108b636600461432f565b612b17565b3480156108c6575f5ffd5b506104c17f000000000000000000000000000000000000000000000000000000000000000081565b3480156108f9575f5ffd5b506103ef61090836600461432f565b612b6e565b348015610918575f5ffd5b5061041b610927366004614e84565b612bda565b348015610937575f5ffd5b506103c3610946366004614eff565b612bf1565b348015610956575f5ffd5b505f516020615b5d5f395f51905f52546001600160a01b03166104c1565b34801561097f575f5ffd5b5061099361098e36600461432f565b612d34565b60405161036a9190614f2a565b3480156109ab575f5ffd5b506102b26109ba36600461460a565b612d74565b6109c7612af7565b81604051602001610310929190614f80565b6040805160028082528183019092526060915f91906020820181803683370190505090505f610a09601085614fc8565b610a14906030614fe9565b90505f610a22601086615002565b610a2d906030614fe9565b905060398260ff161115610a4957610a46600783614fe9565b91505b60398160ff161115610a6357610a60600782614fe9565b90505b8160f81b835f81518110610a7957610a79615023565b60200101906001600160f81b03191690815f1a9053508060f81b83600181518110610aa657610aa6615023565b60200101906001600160f81b03191690815f1a90535091949350505050565b5f80610acf612de6565b5f848152600291909101602052604090205460ff16600b811115610af557610af5614346565b60ff16141592915050565b5f610b09612de6565b5f928352600701602052506040902054600160781b900460ff1690565b606081610b8f5f610b35612de6565b5f848152600691909101602052604090208054610b5190615037565b9050116040518060400160405280601781526020017f756e766572696669656420646174612072657175657374000000000000000000815250612e0a565b610b98836117ff565b91505b50919050565b604080518082019091525f815260606020820152610bbd612de6565b5f83815260029190910160205260409081902081518083019092528054829060ff16600b811115610bf057610bf0614346565b600b811115610c0157610c01614346565b815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610d16575f8481526020902060408051808201909152600284029091018054829060ff166009811115610c6257610c62614346565b6009811115610c7357610c73614346565b8152602001600182018054610c8790615037565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb390615037565b8015610cfe5780601f10610cd557610100808354040283529160200191610cfe565b820191905f5260205f20905b815481529060010190602001808311610ce157829003601f168201915b50505050508152505081526020019060010190610c29565b505050915250508051909150610d7890600b811115610d3757610d37614346565b60ff165f14156040518060400160405280601781526020017f756e766572696669656420646174612072656475636572000000000000000000815250612e0a565b919050565b5f610dd68585806001600160401b03811115610d9b57610d9b6144b9565b604051908082528060200260200182016040528015610dce57816020015b6060815260200190600190039081610db95790505b508686612e1c565b95945050505050565b5f610de86118b6565b90506001600160a01b038116610e1e5781806020019051810190610e0c91906150b6565b92509050610e1981613a53565b610e66565b336001600160a01b03821614610e665760405162461bcd60e51b815260206004820152600d60248201526c3737ba103a34329037bbb732b960991b6044820152606401610336565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe5415801590610ed757507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe547f00000000000000000000000000000000000000000000000000000000000000003f145b15610f245760405162461bcd60e51b815260206004820152601c60248201527f616c726561647920696e697469616c697a656420636f646568617368000000006044820152606401610336565b7f0000000000000000000000000000000000000000000000000000000000000000803f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe55803f906001600160a01b0316610f7d6118b6565b6001600160a01b03167fe73e754121f0bad1327816970101955bfffdf53d270ac509d777c25be070d7f6610faf6110a6565b604051610fbc919061431d565b60405180910390a45050565b604080518082019091525f81526060602082015281610fe95f610b35612de6565b610b98610ff4612de6565b5f858152600791909101602052604090205460881b6001600160881b031916610ba1565b5f816110265f610b35612de6565b61102e612de6565b5f8481526007919091016020526040902054600160f81b900460ff16915081601381111561105e5761105e614346565b60ff165f03610b9b57610b98611072612de6565b6004015f8581526020019081526020015f206004015f8154811061109857611098615023565b905f5260205f2001546129e2565b60606110d17f0000000000000000000000000000000000000000000000000000000000000000613b02565b905090565b5f5f6110e0612de6565b5f8481526006919091016020526040902080546110fc90615037565b9050119050919050565b5f7f0000000000000000000000000000000000000000000000000000000000000000801561114c5750816001600160a01b03166111416118b6565b6001600160a01b0316145b92915050565b5f610dd68585806001600160401b03811115611170576111706144b9565b6040519080825280602002602001820160405280156111a357816020015b606081526020019060019003908161118e5790505b506111b061066e88615103565b6111bc61066e88615103565b612e1c565b5f816111cf5f610b35612de6565b6111d883613baa565b600401549392505050565b6111eb613bc5565b6111f45f613a53565b565b5f816112045f610b35612de6565b50602092915050565b60608161121c5f610b35612de6565b61122583613baa565b600401546001600160401b03811115611240576112406144b9565b60405190808252806020026020018201604052801561127957816020015b6112666140bd565b81526020019060019003908161125e5790505b5091505f5b82518110156116255761128f612de6565b6003015f61129c86613baa565b60040183815481106112b0576112b0615023565b5f91825260208083209091015483528281019390935260409182019020815160e08101909252805460ff808216845292939192918401916101009091041660048111156112ff576112ff614346565b600481111561131057611310614346565b8152815460209091019062010000900460ff16601381111561133457611334614346565b601381111561134557611345614346565b815260200160018201805461135990615037565b80601f016020809104026020016040519081016040528092919081815260200182805461138590615037565b80156113d05780601f106113a7576101008083540402835291602001916113d0565b820191905f5260205f20905b8154815290600101906020018083116113b357829003601f168201915b505050505081526020016002820180546113e990615037565b80601f016020809104026020016040519081016040528092919081815260200182805461141590615037565b80156114605780601f1061143757610100808354040283529160200191611460565b820191905f5260205f20905b81548152906001019060200180831161144357829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020015f905b82821015611568575f84815260208120604080518082019091529160028086029092019190835b828210156115555783820180546114ca90615037565b80601f01602080910402602001604051908101604052809291908181526020018280546114f690615037565b80156115415780601f1061151857610100808354040283529160200191611541565b820191905f5260205f20905b81548152906001019060200180831161152457829003601f168201915b5050505050815260200190600101906114b4565b505050508152602001906001019061148d565b50505050815260200160048201805461158090615037565b80601f01602080910402602001604051908101604052809291908181526020018280546115ac90615037565b80156115f75780601f106115ce576101008083540402835291602001916115f7565b820191905f5260205f20905b8154815290600101906020018083116115da57829003601f168201915b50505050508152505083828151811061161257611612615023565b602090810291909101015260010161127e565b5050919050565b338061164c5f516020615b5d5f395f51905f52546001600160a01b031690565b6001600160a01b0316146116b45760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610336565b6116bd81613a53565b50565b5f816040516020016116d29190614414565b604051602081830303815290604052805190602001206001600160881b03191690505f6116fd612de6565b5f83815260029190910160205260409020805490915060ff16600b81111561172757611727614346565b60ff165f03610b9b5760405163daf4b0ef60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__9063daf4b0ef9061176790869060040161510e565b5f6040518083038186803b15801561177d575f5ffd5b505af415801561178f573d5f5f3e3d5ffd5b50508451835490925083915060ff1916600183600b8111156117b3576117b3614346565b02179055506117c6818460200151613bf7565b6040518281527f320dd9c6faaa443dc32e80fbf490af796ec6dce6bbb09027a5b37444fa4571d79060200160405180910390a150919050565b60608161180e5f610b35612de6565b611816612de6565b5f84815260069190910160205260409020805461183290615037565b80601f016020809104026020016040519081016040528092919081815260200182805461185e90615037565b80156118a95780601f10611880576101008083540402835291602001916118a9565b820191905f5260205f20905b81548152906001019060200180831161188c57829003601f168201915b5050505050915050919050565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427ded546001600160a01b031690565b5f806118ee612de6565b5f8481526003919091016020526040902054610100900460ff16600481111561191957611919614346565b141592915050565b5f5f8886868a8a8888604051602001611940979695949392919061525c565b604051602081830303815290604052805190602001209050611960612de6565b5f8281526005919091016020526040902054915061199561197f612de6565b5f83815260059190910160205260409020541590565b156120f0575f856001600160401b038111156119b3576119b36144b9565b6040519080825280602002602001820160405280156119ec57816020015b6119d96140bd565b8152602001906001900390816119d15790505b5090505f5b86811015611ae557805f03611a2b57611a098b612232565b825f81518110611a1b57611a1b615023565b6020026020010181905250611a63565b815f81518110611a3d57611a3d615023565b6020026020010151828281518110611a5757611a57615023565b60200260200101819052505b878782818110611a7557611a75615023565b9050602002810190611a87919061529f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505084518592508491508110611ace57611ace615023565b6020908102919091010151606001526001016119f1565b505f73__$837d11b4e2c5af92796e708387f786b6cb$__63d7a7291e838c8c611b0c612de6565b5f8c815260029190910160205260409081902081518083019092528054829060ff16600b811115611b3f57611b3f614346565b600b811115611b5057611b50614346565b815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015611c65575f8481526020902060408051808201909152600284029091018054829060ff166009811115611bb157611bb1614346565b6009811115611bc257611bc2614346565b8152602001600182018054611bd690615037565b80601f0160208091040260200160405190810160405280929190818152602001828054611c0290615037565b8015611c4d5780601f10611c2457610100808354040283529160200191611c4d565b820191905f5260205f20905b815481529060010190602001808311611c3057829003601f168201915b50505050508152505081526020019060010190611b78565b50505091525050604051631c02d22b60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__91631c02d22b91611ca2919060040161510e565b5f60405180830381865af4158015611cbc573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ce391908101906152e1565b611ceb612de6565b5f8c815260029190910160205260409081902081518083019092528054829060ff16600b811115611d1e57611d1e614346565b600b811115611d2f57611d2f614346565b815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015611e44575f8481526020902060408051808201909152600284029091018054829060ff166009811115611d9057611d90614346565b6009811115611da157611da1614346565b8152602001600182018054611db590615037565b80601f0160208091040260200160405190810160405280929190818152602001828054611de190615037565b8015611e2c5780601f10611e0357610100808354040283529160200191611e2c565b820191905f5260205f20905b815481529060010190602001808311611e0f57829003601f168201915b50505050508152505081526020019060010190611d57565b50505091525050604051631c02d22b60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__91631c02d22b91611e81919060040161510e565b5f60405180830381865af4158015611e9b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ec291908101906152e1565b6040518663ffffffff1660e01b8152600401611ee29594939291906153ee565b5f60405180830381865af4158015611efc573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611f2391908101906152e1565b9050611f5c61ffff825111156040518060400160405280600f81526020016e1d1bdbc8189a59c81c995c5d595cdd608a1b815250612e0a565b611f6581613c89565b935083611f70612de6565b5f858152600591909101602052604090205580611f8b612de6565b5f8681526006919091016020526040902090611fa790826154d1565b506040518060800160405280866001600160881b03191681526020018989905060ff168152602001876001600160881b0319168152602001835f81518110611ff157611ff1615023565b602002602001015160400151601381111561200e5761200e614346565b9052612018612de6565b5f8681526007919091016020908152604091829020835181549285015193850151608890811c600160801b02600160801b600160f81b031960ff909616600160781b026001600160801b03199095169290911c91909117929092179283168217815560608401519092909183916001600160f81b039091166001600160801b0390911617600160f81b8360138111156120b3576120b3614346565b0217905550506040518581527f33415078470d846accbdec5f4869eae9b8cb9ae69d7fa487792b6b0daf9f736e915060200160405180910390a150505b50979650505050505050565b60405163acbade1f60e01b81526001600160401b0383166004820152600560f91b602482015260609073__$837d11b4e2c5af92796e708387f786b6cb$__9063acbade1f906044015f60405180830381865af415801561215e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261218591908101906152e1565b848461219085613cd8565b60405163b7aa578f60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__9163b7aa578f916121c6919060040161558b565b5f60405180830381865af41580156121e0573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261220791908101906152e1565b60405160200161221a94939291906155e5565b60405160208183030381529060405290509392505050565b61223a6140bd565b816122a95f5b612248612de6565b5f8481526003919091016020526040902054610100900460ff16600481111561227357612273614346565b141560405180604001604052806016815260200175756e7665726966696564206461746120736f7572636560501b815250612e0a565b6122b1612de6565b5f8481526003919091016020908152604091829020825160e08101909352805460ff808216855291928401916101009091041660048111156122f5576122f5614346565b600481111561230657612306614346565b8152815460209091019062010000900460ff16601381111561232a5761232a614346565b601381111561233b5761233b614346565b815260200160018201805461234f90615037565b80601f016020809104026020016040519081016040528092919081815260200182805461237b90615037565b80156123c65780601f1061239d576101008083540402835291602001916123c6565b820191905f5260205f20905b8154815290600101906020018083116123a957829003601f168201915b505050505081526020016002820180546123df90615037565b80601f016020809104026020016040519081016040528092919081815260200182805461240b90615037565b80156124565780601f1061242d57610100808354040283529160200191612456565b820191905f5260205f20905b81548152906001019060200180831161243957829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020015f905b8282101561255e575f84815260208120604080518082019091529160028086029092019190835b8282101561254b5783820180546124c090615037565b80601f01602080910402602001604051908101604052809291908181526020018280546124ec90615037565b80156125375780601f1061250e57610100808354040283529160200191612537565b820191905f5260205f20905b81548152906001019060200180831161251a57829003601f168201915b5050505050815260200190600101906124aa565b5050505081526020019060010190612483565b50505050815260200160048201805461257690615037565b80601f01602080910402602001604051908101604052809291908181526020018280546125a290615037565b80156125ed5780601f106125c4576101008083540402835291602001916125ed565b820191905f5260205f20905b8154815290600101906020018083116125d057829003601f168201915b505050505081525050915050919050565b5f85600481111561261157612611614346565b604051630db1b26960e21b815273__$837d11b4e2c5af92796e708387f786b6cb$__916336c6c9a49161264f91908990899089908990600401615610565b602060405180830381865af415801561266a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061268e9190615669565b90505f612699612de6565b5f8381526003919091016020526040902054610100900460ff1660048111156126c4576126c4614346565b03610dd6576040518060e0016040528061275387604051806040016040528060018152602001600160fd1b81525088604051806040016040528060018152602001600160fd1b81525089604051806040016040528060018152602001600160fd1b8152508a60405160200161273f9796959493929190615680565b604051602081830303815290604052613dd1565b60ff16815260200187600481111561276d5761276d614346565b815260200173__$837d11b4e2c5af92796e708387f786b6cb$__63f3106f78856040518263ffffffff1660e01b81526004016127a9919061431d565b602060405180830381865af41580156127c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127e89190615716565b60138111156127f9576127f9614346565b81526020018681526020018581526020018481526020018381525061281c612de6565b5f838152600391909101602090815260409091208251815460ff90911660ff19821681178355928401519192839161ffff19161761010083600481111561286557612865614346565b021790555060408201518154829062ff000019166201000083601381111561288f5761288f614346565b0217905550606082015160018201906128a890826154d1565b50608082015160028201906128bd90826154d1565b5060a082015180516128d99160038401916020909101906140f9565b5060c082015160048201906128ee90826154d1565b50506040518281527fbe95e1bda0ae521f178da31f3aae4e1218556af2a302dd68319055236c235b92915060200160405180910390a195945050505050565b604080518082019091525f8152606060208201528161294e5f610b35612de6565b5f61295884613baa565b600501541461297d5761297661296d84613baa565b60010154610ba1565b9150610b9b565b61297661298984613baa565b600101546001600160801b031916610ba1565b5f6129db83838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613c8992505050565b9392505050565b5f816129ed82612240565b6129f5612de6565b5f9384526003016020525050604090205462010000900460ff1690565b5f612a298888612a228587615734565b8989612e1c565b98975050505050505050565b606081612a445f610b35612de6565b612a4d83613baa565b6004018054806020026020016040519081016040528092919081815260200182805480156118a957602002820191905f5260205f20905b815481526020019060010190808311612a84575050505050915050919050565b5f81612aaf82612240565b612ab7612de6565b5f9384526003016020525050604090205460ff1690565b5f612aea8787612ade8789615734565b6111b061066e88615103565b90505b9695505050505050565b6060604051806060016040526027815280602001615b3660279139905090565b604080518082019091525f81526060602082015281612b385f610b35612de6565b610b98612b43612de6565b5f8581526007919091016020526040902054600160801b900460881b6001600160881b031916610ba1565b604080518082019091525f81526060602082015281612b8f5f610b35612de6565b5f612b9984613baa565b6005015414612bb757612976612bae84613baa565b60050154610ba1565b6129766080612bc585613baa565b600101546001600160801b0319911b16610ba1565b5f612aea8787612bea8789615734565b8686612e1c565b60605f612bfd846117ff565b805160405163acbade1f60e01b81526001600160401b039091166004820152600560f91b602482015290915073__$837d11b4e2c5af92796e708387f786b6cb$__9063acbade1f906044015f60405180830381865af4158015612c62573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612c8991908101906152e1565b81612c9385613cd8565b60405163b7aa578f60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__9163b7aa578f91612cc9919060040161558b565b5f60405180830381865af4158015612ce3573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612d0a91908101906152e1565b604051602001612d1c93929190615810565b60405160208183030381529060405291505092915050565b612d3c614151565b6040518060600160405280612d508461120d565b8152602001612d5e8461292d565b8152602001612d6c84612b6e565b905292915050565b612d7c613bc5565b5f516020615b5d5f395f51905f5280546001600160a01b0319166001600160a01b038316908117909155612dae6118b6565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427def90565b81612e1857612e18816109bf565b5050565b5f5f8686868686604051602001612e37959493929190615821565b604051602081830303815290604052805190602001209050612e57612de6565b5f82815260059190910160205260409020549150612e7661197f612de6565b15613a4957612eb98615801590612e8e575061010087105b6040518060400160405280600d81526020016c6e6f2072657472696576616c7360981b815250612e0a565b845160408051808201909152600d81526c0c2e4cee640dad2e6dac2e8c6d609b1b6020820152612eeb91881490612e0a565b5f80876001600160401b03811115612f0557612f056144b9565b604051908082528060200260200182016040528015612f3e57816020015b612f2b6140bd565b815260200190600190039081612f235790505b5090505f5b8881101561346357612f53612de6565b6003015f8b8b84818110612f6957612f69615023565b602090810292909201358352508181019290925260409081015f20815160e08101909252805460ff80821684529293919291840191610100909104166004811115612fb657612fb6614346565b6004811115612fc757612fc7614346565b8152815460209091019062010000900460ff166013811115612feb57612feb614346565b6013811115612ffc57612ffc614346565b815260200160018201805461301090615037565b80601f016020809104026020016040519081016040528092919081815260200182805461303c90615037565b80156130875780601f1061305e57610100808354040283529160200191613087565b820191905f5260205f20905b81548152906001019060200180831161306a57829003601f168201915b505050505081526020016002820180546130a090615037565b80601f01602080910402602001604051908101604052809291908181526020018280546130cc90615037565b80156131175780601f106130ee57610100808354040283529160200191613117565b820191905f5260205f20905b8154815290600101906020018083116130fa57829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020015f905b8282101561321f575f84815260208120604080518082019091529160028086029092019190835b8282101561320c57838201805461318190615037565b80601f01602080910402602001604051908101604052809291908181526020018280546131ad90615037565b80156131f85780601f106131cf576101008083540402835291602001916131f8565b820191905f5260205f20905b8154815290600101906020018083116131db57829003601f168201915b50505050508152602001906001019061316b565b5050505081526020019060010190613144565b50505050815260200160048201805461323790615037565b80601f016020809104026020016040519081016040528092919081815260200182805461326390615037565b80156132ae5780601f10613285576101008083540402835291602001916132ae565b820191905f5260205f20905b81548152906001019060200180831161329157829003601f168201915b5050505050815250508282815181106132c9576132c9615023565b60209081029190910101526133385f8383815181106132ea576132ea615023565b602002602001015160200151600481111561330757613307614346565b1415604051806040016040528060118152602001701d5b9adb9bdddb881c995d1c9a595d985b607a1b815250612e0a565b805f0361336457815f8151811061335157613351615023565b60200260200101516040015192506133e1565b81818151811061337657613376615023565b602002602001015160400151601381111561339357613393614346565b8360138111156133a5576133a5614346565b146133e1576133e1604051806040016040528060168152602001756d69736d61746368696e672072657472696576616c7360501b8152506109bf565b8181815181106133f3576133f3615023565b60200260200101515f015160ff1688828151811061341357613413615023565b6020026020010151511461345b5761345b61343761343283600161590e565b613f3b565b6040516020016134479190615921565b6040516020818303038152906040526109bf565b600101612f43565b505f73__$837d11b4e2c5af92796e708387f786b6cb$__63b6349ebd838a613489612de6565b5f8c815260029190910160205260409081902081518083019092528054829060ff16600b8111156134bc576134bc614346565b600b8111156134cd576134cd614346565b815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156135e2575f8481526020902060408051808201909152600284029091018054829060ff16600981111561352e5761352e614346565b600981111561353f5761353f614346565b815260200160018201805461355390615037565b80601f016020809104026020016040519081016040528092919081815260200182805461357f90615037565b80156135ca5780601f106135a1576101008083540402835291602001916135ca565b820191905f5260205f20905b8154815290600101906020018083116135ad57829003601f168201915b505050505081525050815260200190600101906134f5565b50505091525050604051631c02d22b60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__91631c02d22b9161361f919060040161510e565b5f60405180830381865af4158015613639573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261366091908101906152e1565b613668612de6565b5f8c815260029190910160205260409081902081518083019092528054829060ff16600b81111561369b5761369b614346565b600b8111156136ac576136ac614346565b815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156137c1575f8481526020902060408051808201909152600284029091018054829060ff16600981111561370d5761370d614346565b600981111561371e5761371e614346565b815260200160018201805461373290615037565b80601f016020809104026020016040519081016040528092919081815260200182805461375e90615037565b80156137a95780601f10613780576101008083540402835291602001916137a9565b820191905f5260205f20905b81548152906001019060200180831161378c57829003601f168201915b505050505081525050815260200190600101906136d4565b50505091525050604051631c02d22b60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__91631c02d22b916137fe919060040161510e565b5f60405180830381865af4158015613818573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261383f91908101906152e1565b5f6040518663ffffffff1660e01b8152600401613860959493929190615960565b5f604051808303