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 WitOracleRadonRegistryUpgradableNoSha256$Type {
readonly _format: "hh3-artifact-1";
readonly contractName: "WitOracleRadonRegistryUpgradableNoSha256";
readonly sourceName: "contracts/core/upgradable/WitOracleRadonRegistryUpgradableNoSha256.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: "0x6101406040523361010052348015610015575f5ffd5b50604051615def380380615def833981016040819052610034916101dd565b818180826040518060400160405280601d81526020017f696f2e7769746e65742e70726f786961626c652e62797465636f64657300000081525082333061007f6100f360201b60201c565b80546001600160a01b0319166001600160a01b0392831617905581166100be57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100c781610117565b5030608052151560c052600160025560e0919091528051602090910120610120525061020f9350505050565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dec90565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dee80546001600160a01b03191690555f6101655f516020615dcf5f395f51905f52546001600160a01b031690565b9050806001600160a01b0316826001600160a01b0316146101d9575f516020615dcf5f395f51905f5280546001600160a01b0319166001600160a01b0384811691821790925560405190918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35b5050565b5f5f604083850312156101ee575f5ffd5b8251915060208301518015158114610204575f5ffd5b809150509250929050565b60805160a05160c05160e0516101005161012051615b6061026f5f395f6104ea01525f6108cc01525f6110ad01525f818161051a015261110901525f50505f81816104a10152818161080401528181610eb50152610f260152615b605ff3fe608060405260043610610280575f3560e01c8063977e01571161014e578063adb7c3f7116100c0578063db4c6b2111610079578063db4c6b21146108ee578063dbc218ef1461090d578063dcf3f9721461092c578063e30c39781461094b578063f0bd92d914610974578063f2fde38b146109a0576102b4565b8063adb7c3f714610829578063b4ab01a51461084a578063b73cb31314610869578063bff852fa14610888578063c61fa8931461089c578063d5f39488146108bb576102b4565b80639f34df19116101125780639f34df191461074e578063a0490fa01461076d578063a0e553361461078c578063a4a7cecd146107ab578063a83e942c146107ca578063a9e954b9146107f6576102b4565b8063977e0157146106a657806398cb04f4146106c55780639a7af84e146106e45780639dd48757146107035780639eb3ab1f1461072f576102b4565b806354fd4d50116101f257806376b78a06116101ab57806376b78a06146105e257806377c112591461061457806379ba5097146106405780637f412e23146106545780638a227764146106735780638da5cb5b14610692576102b4565b806354fd4d501461053e57806368ec07a4146105525780636b58960a146105715780636bd04634146105905780636ea3ebe4146105af578063715018a6146105ce576102b4565b8063439fab9111610244578063439fab911461042957806348223a0b146104485780634c729104146104675780635001f3b51461049357806352d1902d146104d95780635479d9401461050c576102b4565b80632229e86e1461033f57806323f2e3ea146103735780632ebf5d5c146103a45780633679f864146103d057806340c5da1d146103fc576102b4565b366102b4576102b26040518060400160405280600c81526020016b6e6f207472616e736665727360a01b8152506109bf565b005b3480156102bf575f5ffd5b506102cd5f3560f81c6109d9565b6102dd60ff5f3560f01c166109d9565b6102ed60ff5f3560e81c166109d9565b6102fd60ff5f3560e01c166109d9565b6040516020016103109493929190614249565b60408051601f198184030181529082905262461bcd60e51b8252610336916004016142d5565b60405180910390fd5b34801561034a575f5ffd5b5061035e6103593660046142e7565b610ac5565b60405190151581526020015b60405180910390f35b34801561037e575f5ffd5b5061039261038d3660046142e7565b610b00565b60405160ff909116815260200161036a565b3480156103af575f5ffd5b506103c36103be3660046142e7565b610b26565b60405161036a91906142d5565b3480156103db575f5ffd5b506103ef6103ea3660046142e7565b610ba1565b60405161036a91906143cc565b348015610407575f5ffd5b5061041b610416366004614425565b610d7d565b60405190815260200161036a565b348015610434575f5ffd5b506102b2610443366004614557565b610ddf565b348015610453575f5ffd5b506103ef6104623660046142e7565b610fc8565b348015610472575f5ffd5b506104866104813660046142e7565b611018565b60405161036a91906145a0565b34801561049e575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161036a565b3480156104e4575f5ffd5b5061041b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610517575f5ffd5b507f000000000000000000000000000000000000000000000000000000000000000061035e565b348015610549575f5ffd5b506103c36110a6565b34801561055d575f5ffd5b5061035e61056c3660046142e7565b6110d6565b34801561057c575f5ffd5b5061035e61058b3660046145c2565b611106565b34801561059b575f5ffd5b5061041b6105aa3660046145ed565b611152565b3480156105ba575f5ffd5b5061041b6105c93660046142e7565b6111c1565b3480156105d9575f5ffd5b506102b26111e3565b3480156105ed575f5ffd5b506106016105fc3660046142e7565b6111f6565b60405161ffff909116815260200161036a565b34801561061f575f5ffd5b5061063361062e3660046142e7565b61120d565b60405161036a91906147f9565b34801561064b575f5ffd5b506102b261162c565b34801561065f575f5ffd5b5061041b61066e366004614953565b6116c0565b34801561067e575f5ffd5b506103c361068d3660046142e7565b6117ff565b34801561069d575f5ffd5b506104c16118b6565b3480156106b1575f5ffd5b5061035e6106c03660046142e7565b6118e4565b3480156106d0575f5ffd5b5061041b6106df366004614984565b611921565b3480156106ef575f5ffd5b506103c36106fe366004614a56565b6120fa565b34801561070e575f5ffd5b5061072261071d3660046142e7565b612230565b60405161036a9190614aa6565b34801561073a575f5ffd5b5061041b610749366004614b93565b6125fc565b348015610759575f5ffd5b506103ef6107683660046142e7565b61292b565b348015610778575f5ffd5b5061041b610787366004614c5d565b61299a565b348015610797575f5ffd5b506104866107a63660046142e7565b6129e0565b3480156107b6575f5ffd5b5061041b6107c5366004614cac565b612a10565b3480156107d5575f5ffd5b506107e96107e43660046142e7565b612a33565b60405161036a9190614d3c565b348015610801575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000003f61041b565b348015610834575f5ffd5b5060405163a614fef760e01b815260200161036a565b348015610855575f5ffd5b506103926108643660046142e7565b612aa2565b348015610874575f5ffd5b5061041b610883366004614d7e565b612acc565b348015610893575f5ffd5b506103c3612af5565b3480156108a7575f5ffd5b506103ef6108b63660046142e7565b612b15565b3480156108c6575f5ffd5b506104c17f000000000000000000000000000000000000000000000000000000000000000081565b3480156108f9575f5ffd5b506103ef6109083660046142e7565b612b6c565b348015610918575f5ffd5b5061041b610927366004614e3c565b612bd8565b348015610937575f5ffd5b506103c3610946366004614eb7565b612bef565b348015610956575f5ffd5b505f516020615b0b5f395f51905f52546001600160a01b03166104c1565b34801561097f575f5ffd5b5061099361098e3660046142e7565b612d32565b60405161036a9190614ee2565b3480156109ab575f5ffd5b506102b26109ba3660046145c2565b612d72565b6109c7612af5565b81604051602001610310929190614f38565b6040805160028082528183019092526060915f91906020820181803683370190505090505f610a09601085614f80565b610a14906030614fa1565b90505f610a22601086614fba565b610a2d906030614fa1565b905060398260ff161115610a4957610a46600783614fa1565b91505b60398160ff161115610a6357610a60600782614fa1565b90505b8160f81b835f81518110610a7957610a79614fdb565b60200101906001600160f81b03191690815f1a9053508060f81b83600181518110610aa657610aa6614fdb565b60200101906001600160f81b03191690815f1a90535091949350505050565b5f80610acf612de4565b5f848152600291909101602052604090205460ff16600b811115610af557610af56142fe565b60ff16141592915050565b5f610b09612de4565b5f928352600701602052506040902054600160781b900460ff1690565b606081610b8f5f610b35612de4565b5f848152600691909101602052604090208054610b5190614fef565b9050116040518060400160405280601781526020017f756e766572696669656420646174612072657175657374000000000000000000815250612e08565b610b98836117ff565b91505b50919050565b604080518082019091525f815260606020820152610bbd612de4565b5f83815260029190910160205260409081902081518083019092528054829060ff16600b811115610bf057610bf06142fe565b600b811115610c0157610c016142fe565b815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610d16575f8481526020902060408051808201909152600284029091018054829060ff166009811115610c6257610c626142fe565b6009811115610c7357610c736142fe565b8152602001600182018054610c8790614fef565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb390614fef565b8015610cfe5780601f10610cd557610100808354040283529160200191610cfe565b820191905f5260205f20905b815481529060010190602001808311610ce157829003601f168201915b50505050508152505081526020019060010190610c29565b505050915250508051909150610d7890600b811115610d3757610d376142fe565b60ff165f14156040518060400160405280601781526020017f756e766572696669656420646174612072656475636572000000000000000000815250612e08565b919050565b5f610dd68585806001600160401b03811115610d9b57610d9b614471565b604051908082528060200260200182016040528015610dce57816020015b6060815260200190600190039081610db95790505b508686612e1a565b95945050505050565b5f610de86118b6565b90506001600160a01b038116610e1e5781806020019051810190610e0c919061506e565b92509050610e1981613a4f565b610e66565b336001600160a01b03821614610e665760405162461bcd60e51b815260206004820152600d60248201526c3737ba103a34329037bbb732b960991b6044820152606401610336565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe5415801590610ed757507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe547f00000000000000000000000000000000000000000000000000000000000000003f145b15610f245760405162461bcd60e51b815260206004820152601c60248201527f616c726561647920696e697469616c697a656420636f646568617368000000006044820152606401610336565b7f0000000000000000000000000000000000000000000000000000000000000000803f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe55803f906001600160a01b0316610f7d6118b6565b6001600160a01b03167fe73e754121f0bad1327816970101955bfffdf53d270ac509d777c25be070d7f6610faf6110a6565b604051610fbc91906142d5565b60405180910390a45050565b604080518082019091525f81526060602082015281610fe95f610b35612de4565b610b98610ff4612de4565b5f858152600791909101602052604090205460881b6001600160881b031916610ba1565b5f816110265f610b35612de4565b61102e612de4565b5f8481526007919091016020526040902054600160f81b900460ff16915081601381111561105e5761105e6142fe565b60ff165f03610b9b57610b98611072612de4565b6004015f8581526020019081526020015f206004015f8154811061109857611098614fdb565b905f5260205f2001546129e0565b60606110d17f0000000000000000000000000000000000000000000000000000000000000000613afe565b905090565b5f5f6110e0612de4565b5f8481526006919091016020526040902080546110fc90614fef565b9050119050919050565b5f7f0000000000000000000000000000000000000000000000000000000000000000801561114c5750816001600160a01b03166111416118b6565b6001600160a01b0316145b92915050565b5f610dd68585806001600160401b0381111561117057611170614471565b6040519080825280602002602001820160405280156111a357816020015b606081526020019060019003908161118e5790505b506111b061066e886150bb565b6111bc61066e886150bb565b612e1a565b5f816111cf5f610b35612de4565b6111d883613ba6565b600401549392505050565b6111eb613bc1565b6111f45f613a4f565b565b5f816112045f610b35612de4565b50602092915050565b60608161121c5f610b35612de4565b61122583613ba6565b600401546001600160401b0381111561124057611240614471565b60405190808252806020026020018201604052801561127957816020015b611266614075565b81526020019060019003908161125e5790505b5091505f5b82518110156116255761128f612de4565b6003015f61129c86613ba6565b60040183815481106112b0576112b0614fdb565b5f91825260208083209091015483528281019390935260409182019020815160e08101909252805460ff808216845292939192918401916101009091041660048111156112ff576112ff6142fe565b6004811115611310576113106142fe565b8152815460209091019062010000900460ff166013811115611334576113346142fe565b6013811115611345576113456142fe565b815260200160018201805461135990614fef565b80601f016020809104026020016040519081016040528092919081815260200182805461138590614fef565b80156113d05780601f106113a7576101008083540402835291602001916113d0565b820191905f5260205f20905b8154815290600101906020018083116113b357829003601f168201915b505050505081526020016002820180546113e990614fef565b80601f016020809104026020016040519081016040528092919081815260200182805461141590614fef565b80156114605780601f1061143757610100808354040283529160200191611460565b820191905f5260205f20905b81548152906001019060200180831161144357829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020015f905b82821015611568575f84815260208120604080518082019091529160028086029092019190835b828210156115555783820180546114ca90614fef565b80601f01602080910402602001604051908101604052809291908181526020018280546114f690614fef565b80156115415780601f1061151857610100808354040283529160200191611541565b820191905f5260205f20905b81548152906001019060200180831161152457829003601f168201915b5050505050815260200190600101906114b4565b505050508152602001906001019061148d565b50505050815260200160048201805461158090614fef565b80601f01602080910402602001604051908101604052809291908181526020018280546115ac90614fef565b80156115f75780601f106115ce576101008083540402835291602001916115f7565b820191905f5260205f20905b8154815290600101906020018083116115da57829003601f168201915b50505050508152505083828151811061161257611612614fdb565b602090810291909101015260010161127e565b5050919050565b338061164c5f516020615b0b5f395f51905f52546001600160a01b031690565b6001600160a01b0316146116b45760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610336565b6116bd81613a4f565b50565b5f816040516020016116d291906143cc565b604051602081830303815290604052805190602001206001600160881b03191690505f6116fd612de4565b5f83815260029190910160205260409020805490915060ff16600b811115611727576117276142fe565b60ff165f03610b9b5760405163daf4b0ef60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__9063daf4b0ef906117679086906004016150c6565b5f6040518083038186803b15801561177d575f5ffd5b505af415801561178f573d5f5f3e3d5ffd5b50508451835490925083915060ff1916600183600b8111156117b3576117b36142fe565b02179055506117c6818460200151613bf3565b6040518281527f320dd9c6faaa443dc32e80fbf490af796ec6dce6bbb09027a5b37444fa4571d79060200160405180910390a150919050565b60608161180e5f610b35612de4565b611816612de4565b5f84815260069190910160205260409020805461183290614fef565b80601f016020809104026020016040519081016040528092919081815260200182805461185e90614fef565b80156118a95780601f10611880576101008083540402835291602001916118a9565b820191905f5260205f20905b81548152906001019060200180831161188c57829003601f168201915b5050505050915050919050565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427ded546001600160a01b031690565b5f806118ee612de4565b5f8481526003919091016020526040902054610100900460ff166004811115611919576119196142fe565b141592915050565b5f5f8886868a8a88886040516020016119409796959493929190615214565b604051602081830303815290604052805190602001209050611960612de4565b5f8281526005919091016020526040902054915061199561197f612de4565b5f83815260059190910160205260409020541590565b156120ee575f856001600160401b038111156119b3576119b3614471565b6040519080825280602002602001820160405280156119ec57816020015b6119d9614075565b8152602001906001900390816119d15790505b5090505f5b86811015611ae557805f03611a2b57611a098b612230565b825f81518110611a1b57611a1b614fdb565b6020026020010181905250611a63565b815f81518110611a3d57611a3d614fdb565b6020026020010151828281518110611a5757611a57614fdb565b60200260200101819052505b878782818110611a7557611a75614fdb565b9050602002810190611a879190615257565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505084518592508491508110611ace57611ace614fdb565b6020908102919091010151606001526001016119f1565b505f73__$837d11b4e2c5af92796e708387f786b6cb$__63d7a7291e838c8c611b0c612de4565b5f8c815260029190910160205260409081902081518083019092528054829060ff16600b811115611b3f57611b3f6142fe565b600b811115611b5057611b506142fe565b815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015611c65575f8481526020902060408051808201909152600284029091018054829060ff166009811115611bb157611bb16142fe565b6009811115611bc257611bc26142fe565b8152602001600182018054611bd690614fef565b80601f0160208091040260200160405190810160405280929190818152602001828054611c0290614fef565b8015611c4d5780601f10611c2457610100808354040283529160200191611c4d565b820191905f5260205f20905b815481529060010190602001808311611c3057829003601f168201915b50505050508152505081526020019060010190611b78565b50505091525050604051631c02d22b60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__91631c02d22b91611ca291906004016150c6565b5f60405180830381865af4158015611cbc573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ce39190810190615299565b611ceb612de4565b5f8c815260029190910160205260409081902081518083019092528054829060ff16600b811115611d1e57611d1e6142fe565b600b811115611d2f57611d2f6142fe565b815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015611e44575f8481526020902060408051808201909152600284029091018054829060ff166009811115611d9057611d906142fe565b6009811115611da157611da16142fe565b8152602001600182018054611db590614fef565b80601f0160208091040260200160405190810160405280929190818152602001828054611de190614fef565b8015611e2c5780601f10611e0357610100808354040283529160200191611e2c565b820191905f5260205f20905b815481529060010190602001808311611e0f57829003601f168201915b50505050508152505081526020019060010190611d57565b50505091525050604051631c02d22b60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__91631c02d22b91611e8191906004016150c6565b5f60405180830381865af4158015611e9b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ec29190810190615299565b6040518663ffffffff1660e01b8152600401611ee29594939291906153a6565b5f60405180830381865af4158015611efc573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611f239190810190615299565b9050611f5c61ffff825111156040518060400160405280600f81526020016e1d1bdbc8189a59c81c995c5d595cdd608a1b815250612e08565b80516020820120935083611f6e612de4565b5f858152600591909101602052604090205580611f89612de4565b5f8681526006919091016020526040902090611fa59082615489565b506040518060800160405280866001600160881b03191681526020018989905060ff168152602001876001600160881b0319168152602001835f81518110611fef57611fef614fdb565b602002602001015160400151601381111561200c5761200c6142fe565b9052612016612de4565b5f8681526007919091016020908152604091829020835181549285015193850151608890811c600160801b02600160801b600160f81b031960ff909616600160781b026001600160801b03199095169290911c91909117929092179283168217815560608401519092909183916001600160f81b039091166001600160801b0390911617600160f81b8360138111156120b1576120b16142fe565b0217905550506040518581527f33415078470d846accbdec5f4869eae9b8cb9ae69d7fa487792b6b0daf9f736e915060200160405180910390a150505b50979650505050505050565b60405163acbade1f60e01b81526001600160401b0383166004820152600560f91b602482015260609073__$837d11b4e2c5af92796e708387f786b6cb$__9063acbade1f906044015f60405180830381865af415801561215c573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526121839190810190615299565b848461218e85613c90565b60405163b7aa578f60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__9163b7aa578f916121c49190600401615543565b5f60405180830381865af41580156121de573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526122059190810190615299565b604051602001612218949392919061559d565b60405160208183030381529060405290509392505050565b612238614075565b816122a75f5b612246612de4565b5f8481526003919091016020526040902054610100900460ff166004811115612271576122716142fe565b141560405180604001604052806016815260200175756e7665726966696564206461746120736f7572636560501b815250612e08565b6122af612de4565b5f8481526003919091016020908152604091829020825160e08101909352805460ff808216855291928401916101009091041660048111156122f3576122f36142fe565b6004811115612304576123046142fe565b8152815460209091019062010000900460ff166013811115612328576123286142fe565b6013811115612339576123396142fe565b815260200160018201805461234d90614fef565b80601f016020809104026020016040519081016040528092919081815260200182805461237990614fef565b80156123c45780601f1061239b576101008083540402835291602001916123c4565b820191905f5260205f20905b8154815290600101906020018083116123a757829003601f168201915b505050505081526020016002820180546123dd90614fef565b80601f016020809104026020016040519081016040528092919081815260200182805461240990614fef565b80156124545780601f1061242b57610100808354040283529160200191612454565b820191905f5260205f20905b81548152906001019060200180831161243757829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020015f905b8282101561255c575f84815260208120604080518082019091529160028086029092019190835b828210156125495783820180546124be90614fef565b80601f01602080910402602001604051908101604052809291908181526020018280546124ea90614fef565b80156125355780601f1061250c57610100808354040283529160200191612535565b820191905f5260205f20905b81548152906001019060200180831161251857829003601f168201915b5050505050815260200190600101906124a8565b5050505081526020019060010190612481565b50505050815260200160048201805461257490614fef565b80601f01602080910402602001604051908101604052809291908181526020018280546125a090614fef565b80156125eb5780601f106125c2576101008083540402835291602001916125eb565b820191905f5260205f20905b8154815290600101906020018083116125ce57829003601f168201915b505050505081525050915050919050565b5f85600481111561260f5761260f6142fe565b604051630db1b26960e21b815273__$837d11b4e2c5af92796e708387f786b6cb$__916336c6c9a49161264d919089908990899089906004016155c8565b602060405180830381865af4158015612668573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061268c9190615621565b90505f612697612de4565b5f8381526003919091016020526040902054610100900460ff1660048111156126c2576126c26142fe565b03610dd6576040518060e0016040528061275187604051806040016040528060018152602001600160fd1b81525088604051806040016040528060018152602001600160fd1b81525089604051806040016040528060018152602001600160fd1b8152508a60405160200161273d9796959493929190615638565b604051602081830303815290604052613d89565b60ff16815260200187600481111561276b5761276b6142fe565b815260200173__$837d11b4e2c5af92796e708387f786b6cb$__63f3106f78856040518263ffffffff1660e01b81526004016127a791906142d5565b602060405180830381865af41580156127c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127e691906156ce565b60138111156127f7576127f76142fe565b81526020018681526020018581526020018481526020018381525061281a612de4565b5f838152600391909101602090815260409091208251815460ff90911660ff19821681178355928401519192839161ffff191617610100836004811115612863576128636142fe565b021790555060408201518154829062ff000019166201000083601381111561288d5761288d6142fe565b0217905550606082015160018201906128a69082615489565b50608082015160028201906128bb9082615489565b5060a082015180516128d79160038401916020909101906140b1565b5060c082015160048201906128ec9082615489565b50506040518281527fbe95e1bda0ae521f178da31f3aae4e1218556af2a302dd68319055236c235b92915060200160405180910390a195945050505050565b604080518082019091525f8152606060208201528161294c5f610b35612de4565b5f61295684613ba6565b600501541461297b5761297461296b84613ba6565b60010154610ba1565b9150610b9b565b61297461298784613ba6565b600101546001600160801b031916610ba1565b5f6129d983838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613c8592505050565b9392505050565b5f816129eb8261223e565b6129f3612de4565b5f9384526003016020525050604090205462010000900460ff1690565b5f612a278888612a2085876156ec565b8989612e1a565b98975050505050505050565b606081612a425f610b35612de4565b612a4b83613ba6565b6004018054806020026020016040519081016040528092919081815260200182805480156118a957602002820191905f5260205f20905b815481526020019060010190808311612a82575050505050915050919050565b5f81612aad8261223e565b612ab5612de4565b5f9384526003016020525050604090205460ff1690565b5f612ae88787612adc87896156ec565b6111b061066e886150bb565b90505b9695505050505050565b6060604051806060016040526028815280602001615ae360289139905090565b604080518082019091525f81526060602082015281612b365f610b35612de4565b610b98612b41612de4565b5f8581526007919091016020526040902054600160801b900460881b6001600160881b031916610ba1565b604080518082019091525f81526060602082015281612b8d5f610b35612de4565b5f612b9784613ba6565b6005015414612bb557612974612bac84613ba6565b60050154610ba1565b6129746080612bc385613ba6565b600101546001600160801b0319911b16610ba1565b5f612ae88787612be887896156ec565b8686612e1a565b60605f612bfb846117ff565b805160405163acbade1f60e01b81526001600160401b039091166004820152600560f91b602482015290915073__$837d11b4e2c5af92796e708387f786b6cb$__9063acbade1f906044015f60405180830381865af4158015612c60573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612c879190810190615299565b81612c9185613c90565b60405163b7aa578f60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__9163b7aa578f91612cc79190600401615543565b5f60405180830381865af4158015612ce1573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612d089190810190615299565b604051602001612d1a939291906157c8565b60405160208183030381529060405291505092915050565b612d3a614109565b6040518060600160405280612d4e8461120d565b8152602001612d5c8461292b565b8152602001612d6a84612b6c565b905292915050565b612d7a613bc1565b5f516020615b0b5f395f51905f5280546001600160a01b0319166001600160a01b038316908117909155612dac6118b6565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427def90565b81612e1657612e16816109bf565b5050565b5f5f8686868686604051602001612e359594939291906157d9565b604051602081830303815290604052805190602001209050612e55612de4565b5f82815260059190910160205260409020549150612e7461197f612de4565b15613a4557612eb78615801590612e8c575061010087105b6040518060400160405280600d81526020016c6e6f2072657472696576616c7360981b815250612e08565b845160408051808201909152600d81526c0c2e4cee640dad2e6dac2e8c6d609b1b6020820152612ee991881490612e08565b5f80876001600160401b03811115612f0357612f03614471565b604051908082528060200260200182016040528015612f3c57816020015b612f29614075565b815260200190600190039081612f215790505b5090505f5b8881101561346157612f51612de4565b6003015f8b8b84818110612f6757612f67614fdb565b602090810292909201358352508181019290925260409081015f20815160e08101909252805460ff80821684529293919291840191610100909104166004811115612fb457612fb46142fe565b6004811115612fc557612fc56142fe565b8152815460209091019062010000900460ff166013811115612fe957612fe96142fe565b6013811115612ffa57612ffa6142fe565b815260200160018201805461300e90614fef565b80601f016020809104026020016040519081016040528092919081815260200182805461303a90614fef565b80156130855780601f1061305c57610100808354040283529160200191613085565b820191905f5260205f20905b81548152906001019060200180831161306857829003601f168201915b5050505050815260200160028201805461309e90614fef565b80601f01602080910402602001604051908101604052809291908181526020018280546130ca90614fef565b80156131155780601f106130ec57610100808354040283529160200191613115565b820191905f5260205f20905b8154815290600101906020018083116130f857829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020015f905b8282101561321d575f84815260208120604080518082019091529160028086029092019190835b8282101561320a57838201805461317f90614fef565b80601f01602080910402602001604051908101604052809291908181526020018280546131ab90614fef565b80156131f65780601f106131cd576101008083540402835291602001916131f6565b820191905f5260205f20905b8154815290600101906020018083116131d957829003601f168201915b505050505081526020019060010190613169565b5050505081526020019060010190613142565b50505050815260200160048201805461323590614fef565b80601f016020809104026020016040519081016040528092919081815260200182805461326190614fef565b80156132ac5780601f10613283576101008083540402835291602001916132ac565b820191905f5260205f20905b81548152906001019060200180831161328f57829003601f168201915b5050505050815250508282815181106132c7576132c7614fdb565b60209081029190910101526133365f8383815181106132e8576132e8614fdb565b6020026020010151602001516004811115613305576133056142fe565b1415604051806040016040528060118152602001701d5b9adb9bdddb881c995d1c9a595d985b607a1b815250612e08565b805f0361336257815f8151811061334f5761334f614fdb565b60200260200101516040015192506133df565b81818151811061337457613374614fdb565b6020026020010151604001516013811115613391576133916142fe565b8360138111156133a3576133a36142fe565b146133df576133df604051806040016040528060168152602001756d69736d61746368696e672072657472696576616c7360501b8152506109bf565b8181815181106133f1576133f1614fdb565b60200260200101515f015160ff1688828151811061341157613411614fdb565b60200260200101515114613459576134596134356134308360016158c6565b613ef3565b60405160200161344591906158d9565b6040516020818303038152906040526109bf565b600101612f41565b505f73__$837d11b4e2c5af92796e708387f786b6cb$__63b6349ebd838a613487612de4565b5f8c815260029190910160205260409081902081518083019092528054829060ff16600b8111156134ba576134ba6142fe565b600b8111156134cb576134cb6142fe565b815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156135e0575f8481526020902060408051808201909152600284029091018054829060ff16600981111561352c5761352c6142fe565b600981111561353d5761353d6142fe565b815260200160018201805461355190614fef565b80601f016020809104026020016040519081016040528092919081815260200182805461357d90614fef565b80156135c85780601f1061359f576101008083540402835291602001916135c8565b820191905f5260205f20905b8154815290600101906020018083116135ab57829003601f168201915b505050505081525050815260200190600101906134f3565b50505091525050604051631c02d22b60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__91631c02d22b9161361d91906004016150c6565b5f60405180830381865af4158015613637573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261365e9190810190615299565b613666612de4565b5f8c815260029190910160205260409081902081518083019092528054829060ff16600b811115613699576136996142fe565b600b8111156136aa576136aa6142fe565b815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156137bf575f8481526020902060408051808201909152600284029091018054829060ff16600981111561370b5761370b6142fe565b600981111561371c5761371c6142fe565b815260200160018201805461373090614fef565b80601f016020809104026020016040519081016040528092919081815260200182805461375c90614fef565b80156137a75780601f1061377e576101008083540402835291602001916137a7565b820191905f5260205f20905b81548152906001019060200180831161378a57829003601f168201915b505050505081525050815260200190600101906136d2565b50505091525050604051631c02d22b60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__91631c02d22b916137fc91906004016150c6565b5f60405180830381865af4158015613816573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261383d9190810190615299565b5f6040518663ffffffff1660e01b815260040161385e959493929190615918565b5f6040518083038