UNPKG

witnet-solidity-bridge

Version:

Witnet Solidity Bridge contracts for EVM-compatible chains

1,039 lines 104 kB
{ "_format": "hh-sol-artifact-1", "contractName": "WitnetRequestBytecodesDefault", "sourceName": "contracts/core/defaults/WitnetRequestBytecodesDefault.sol", "abi": [ { "inputs": [ { "internalType": "bool", "name": "_upgradable", "type": "bool" }, { "internalType": "bytes32", "name": "_versionTag", "type": "bytes32" } ], "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" }, { "inputs": [ { "internalType": "bytes32", "name": "hash", "type": "bytes32" } ], "name": "UnknownRadonReducer", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "hash", "type": "bytes32" } ], "name": "UnknownRadonRequest", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "hash", "type": "bytes32" } ], "name": "UnknownRadonRetrieval", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "NewDataProvider", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "hash", "type": "bytes32" } ], "name": "NewRadHash", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "hash", "type": "bytes32" } ], "name": "NewRadonReducerHash", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "hash", "type": "bytes32" } ], "name": "NewRadonRetrievalHash", "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": "bytes32", "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": "uint8", "name": "committeeSize", "type": "uint8" }, { "internalType": "uint64", "name": "witnessingFeeNanoWit", "type": "uint64" } ], "internalType": "struct WitnetV2.RadonSLA", "name": "_sla", "type": "tuple" } ], "name": "bytecodeOf", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_radHash", "type": "bytes32" }, { "components": [ { "internalType": "uint8", "name": "committeeSize", "type": "uint8" }, { "internalType": "uint64", "name": "witnessingFeeNanoWit", "type": "uint64" } ], "internalType": "struct WitnetV2.RadonSLA", "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": "bytes32", "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": "uint256", "name": "_index", "type": "uint256" } ], "name": "lookupDataProvider", "outputs": [ { "internalType": "string", "name": "", "type": "string" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_authority", "type": "string" } ], "name": "lookupDataProviderIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" }, { "internalType": "uint256", "name": "_offset", "type": "uint256" }, { "internalType": "uint256", "name": "_length", "type": "uint256" } ], "name": "lookupDataProviderSources", "outputs": [ { "internalType": "bytes32[]", "name": "_endpoints", "type": "bytes32[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_hash", "type": "bytes32" } ], "name": "lookupRadonReducer", "outputs": [ { "components": [ { "internalType": "enum Witnet.RadonReducerOpcodes", "name": "opcode", "type": "uint8" }, { "components": [ { "internalType": "enum Witnet.RadonFilterOpcodes", "name": "opcode", "type": "uint8" }, { "internalType": "bytes", "name": "args", "type": "bytes" } ], "internalType": "struct Witnet.RadonFilter[]", "name": "filters", "type": "tuple[]" } ], "internalType": "struct Witnet.RadonReducer", "name": "_reducer", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_radHash", "type": "bytes32" } ], "name": "lookupRadonRequestAggregator", "outputs": [ { "components": [ { "internalType": "enum Witnet.RadonReducerOpcodes", "name": "opcode", "type": "uint8" }, { "components": [ { "internalType": "enum Witnet.RadonFilterOpcodes", "name": "opcode", "type": "uint8" }, { "internalType": "bytes", "name": "args", "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": "_radHash", "type": "bytes32" } ], "name": "lookupRadonRequestResultDataType", "outputs": [ { "internalType": "enum Witnet.RadonDataTypes", "name": "", "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": "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": "bytes32", "name": "_radHash", "type": "bytes32" } ], "name": "lookupRadonRequestTally", "outputs": [ { "components": [ { "internalType": "enum Witnet.RadonReducerOpcodes", "name": "opcode", "type": "uint8" }, { "components": [ { "internalType": "enum Witnet.RadonFilterOpcodes", "name": "opcode", "type": "uint8" }, { "internalType": "bytes", "name": "args", "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.RadonDataRequestMethods", "name": "method", "type": "uint8" }, { "internalType": "enum Witnet.RadonDataTypes", "name": "resultDataType", "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": "script", "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": "view", "type": "function" }, { "inputs": [], "name": "totalDataProviders", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "enum Witnet.RadonReducerOpcodes", "name": "opcode", "type": "uint8" }, { "components": [ { "internalType": "enum Witnet.RadonFilterOpcodes", "name": "opcode", "type": "uint8" }, { "internalType": "bytes", "name": "args", "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": "_retrievalsIds", "type": "bytes32[]" }, { "internalType": "bytes32", "name": "_aggregatorId", "type": "bytes32" }, { "internalType": "bytes32", "name": "_tallyId", "type": "bytes32" }, { "internalType": "uint16", "name": "_resultMaxSize", "type": "uint16" }, { "internalType": "string[][]", "name": "_args", "type": "string[][]" } ], "name": "verifyRadonRequest", "outputs": [ { "internalType": "bytes32", "name": "_radHash", "type": "bytes32" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "enum Witnet.RadonDataRequestMethods", "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" } ], "bytecode": "0x6101606040523361010052636f1735ab60e01b6101405234801561002257600080fd5b50604051614ed1380380614ed1833981016040819052610041916101eb565b81816040518060400160405280601d81526020017f696f2e7769746e65742e70726f786961626c652e62797465636f64657300000081525082333061008a6100fd60201b60201c565b80546001600160a01b0319166001600160a01b0392831617905581166100ca57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100d381610121565b5030608052151560c052600160025560e0919091528051602090910120610120525061021e915050565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dec90565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dee80546001600160a01b03191690556000610171600080516020614eb1833981519152546001600160a01b031690565b9050806001600160a01b0316826001600160a01b0316146101e757600080516020614eb183398151915280546001600160a01b0319166001600160a01b0384811691821790925560405190918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35b5050565b600080604083850312156101fe57600080fd5b8251801515811461020e57600080fd5b6020939093015192949293505050565b60805160a05160c05160e051610100516101205161014051614c2061029160003960006106af015260006103e6015260006107d601526000610eb70152600081816104250152610efe0152600050506000818161039c0152818161067801528181610d3f0152610e220152614c206000f3fe6080604052600436106102135760003560e01c80639f34df1911610118578063b2299677116100a0578063d5f394881161006f578063d5f39488146107c4578063db4c6b21146107f8578063e30c397814610818578063f2fde38b14610843578063f4f07e991461086357610271565b8063b2299677146106ea578063b4ab01a51461071e578063bff852fa14610750578063c0a673611461079657610271565b8063a47bd1a4116100e7578063a47bd1a414610609578063a4a7cecd14610629578063a83e942c14610649578063a9e954b914610669578063adb7c3f71461069d57610271565b80639f34df1914610589578063a0490fa0146105a9578063a09948b0146105c9578063a0e55336146105e957610271565b80636b58960a1161019b57806379ba50971161016a57806379ba5097146104f25780637f412e23146105075780638da5cb5b146105275780639dd487571461053c5780639eb3ab1f1461056957610271565b80636b58960a1461046a5780636ea3ebe41461048a578063715018a6146104aa57806376b78a06146104bf57610271565b80634c729104116101e25780634c729104146103605780635001f3b51461038d57806352d1902d146103d45780635479d9401461041657806354fd4d501461045557610271565b806321ead36f146102b05780632ebf5d5c146102e65780633679f86414610313578063439fab911461034057610271565b366102715760405162461bcd60e51b8152602060048201526024808201527f5769746e65745265717565737442797465636f6465733a206e6f207472616e736044820152636665727360e01b60648201526084015b60405180910390fd5b34801561027d57600080fd5b506102ae6040518060400160405280600f81526020016e1b9bdd081a5b5c1b195b595b9d1959608a1b815250610883565b005b3480156102bc57600080fd5b506102d06102cb366004613768565b6108ef565b6040516102dd91906137d0565b60405180910390f35b3480156102f257600080fd5b506103066103013660046137e3565b6109d7565b6040516102dd919061384c565b34801561031f57600080fd5b5061033361032e3660046137e3565b610a83565b6040516102dd9190613899565b34801561034c57600080fd5b506102ae61035b366004613a1b565b610c46565b34801561036c57600080fd5b5061038061037b3660046137e3565b610e98565b6040516102dd9190613a67565b34801561039957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102dd565b3480156103e057600080fd5b506104087f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016102dd565b34801561042257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405190151581526020016102dd565b34801561046157600080fd5b50610306610eb0565b34801561047657600080fd5b50610445610485366004613a8a565b610ee0565b34801561049657600080fd5b506104086104a53660046137e3565b610f41565b3480156104b657600080fd5b506102ae610f56565b3480156104cb57600080fd5b506104df6104da3660046137e3565b610f6a565b60405161ffff90911681526020016102dd565b3480156104fe57600080fd5b506102ae610f88565b34801561051357600080fd5b50610408610522366004613aca565b61101d565b34801561053357600080fd5b506103bc611168565b34801561054857600080fd5b5061055c6105573660046137e3565b611184565b6040516102dd9190613ca1565b34801561057557600080fd5b50610408610584366004613e84565b611569565b34801561059557600080fd5b506103336105a43660046137e3565b61194e565b3480156105b557600080fd5b506104086105c4366004613f58565b611ae7565b3480156105d557600080fd5b506103066105e4366004613fab565b611b31565b3480156105f557600080fd5b506103806106043660046137e3565b611c7d565b34801561061557600080fd5b50610408610624366004613f58565b611cfa565b34801561063557600080fd5b5061040861064436600461410c565b611d49565b34801561065557600080fd5b506102d06106643660046137e3565b612b10565b34801561067557600080fd5b507f00000000000000000000000000000000000000000000000000000000000000003f610408565b3480156106a957600080fd5b506106d17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160e01b031990911681526020016102dd565b3480156106f657600080fd5b507f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427df754610408565b34801561072a57600080fd5b5061073e6107393660046137e3565b612b73565b60405160ff90911681526020016102dd565b34801561075c57600080fd5b5060408051808201909152601d81527f5769746e65745265717565737442797465636f64657344656661756c740000006020820152610306565b3480156107a257600080fd5b506107b66107b13660046137e3565b612bea565b6040516102dd9291906141e8565b3480156107d057600080fd5b506103bc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561080457600080fd5b506103336108133660046137e3565b612cb6565b34801561082457600080fd5b50600080516020614bcb833981519152546001600160a01b03166103bc565b34801561084f57600080fd5b506102ae61085e366004613a8a565b612e41565b34801561086f57600080fd5b5061030661087e36600461420a565b612eb4565b60408051808201909152601d81527f5769746e65745265717565737442797465636f64657344656661756c740000006020820152816040516020016108c9929190614237565b60408051601f198184030181529082905262461bcd60e51b82526102689160040161384c565b606060006108fb613009565b6000868152602091909152604090206001810154909150808510156109ce5780610925858761428a565b111561093857610935858261429d565b93505b836001600160401b0381111561095057610950613930565b604051908082528060200260200182016040528015610979578160200160208202803683370190505b50925060005b83518110156109cc57600283016000610998888461428a565b8152602001908152602001600020548482815181106109b9576109b96142b0565b602090810291909101015260010161097f565b505b50509392505050565b60606109e1613009565b60008381526006919091016020526040902080546109fe906142c6565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2a906142c6565b8015610a775780601f10610a4c57610100808354040283529160200191610a77565b820191906000526020600020905b815481529060010190602001808311610a5a57829003601f168201915b50505050509050919050565b604080518082019091526000815260606020820152610aa0613009565b600083815260029190910160205260409081902081518083019092528054829060ff16600b811115610ad457610ad461385f565b600b811115610ae557610ae561385f565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015610bfe5760008481526020902060408051808201909152600284029091018054829060ff166009811115610b4857610b4861385f565b6009811115610b5957610b5961385f565b8152602001600182018054610b6d906142c6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b99906142c6565b8015610be65780601f10610bbb57610100808354040283529160200191610be6565b820191906000526020600020905b815481529060010190602001808311610bc957829003601f168201915b50505050508152505081526020019060010190610b0e565b505050915250508051909150600b811115610c1b57610c1b61385f565b60ff16600003610c415760405163b020432960e01b815260048101839052602401610268565b919050565b600080516020614bab833981519152546001600160a01b031680610ca75781806020019051810190610c7891906142fa565b600080516020614bab83398151915280546001600160a01b0319166001600160a01b0383161790559050610d0d565b336001600160a01b03821614610d0d5760405162461bcd60e51b815260206004820152602560248201527f5769746e65745265717565737442797465636f6465733a206e6f74207468652060448201526437bbb732b960d91b6064820152608401610268565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dec546001600160a01b031615610df3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dec546001600160a01b031603610df35760405162461bcd60e51b815260206004820152602b60248201527f5769746e65745265717565737442797465636f6465733a20616c72656164792060448201526a1a5b9a5d1a585b1a5e995960aa1b6064820152608401610268565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dec80546001600160a01b0319167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038181169283179093553f9183167fe73e754121f0bad1327816970101955bfffdf53d270ac509d777c25be070d7f6610e7f610eb0565b604051610e8c919061384c565b60405180910390a45050565b6000610ea38261302d565b6003015460ff1692915050565b6060610edb7f000000000000000000000000000000000000000000000000000000000000000061304a565b905090565b600080516020614bab833981519152546000906001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000008015610f3a5750826001600160a01b0316816001600160a01b0316145b9392505050565b6000610f4c8261302d565b6004015492915050565b610f5e6130f5565b610f686000613127565b565b6000610f758261302d565b60030154610100900461ffff1692915050565b3380610fa9600080516020614bcb833981519152546001600160a01b031690565b6001600160a01b0316146110115760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610268565b61101a81613127565b50565b6000816040516020016110309190613899565b6040516020818303038152906040528051906020012090506000611052613009565b600083815260029190910160205260409020805490915060ff16600b81111561107d5761107d61385f565b60ff1615801561108f57506001810154155b156111625760405163daf4b0ef60e01b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__9063daf4b0ef906110cb908690600401614317565b60006040518083038186803b1580156110e357600080fd5b505af41580156110f7573d6000803e3d6000fd5b50508451835490925083915060ff1916600183600b81111561111b5761111b61385f565b021790555061112e8184602001516131c8565b6040518281527feb8b5415ec9648a9403c5cce90965dfa18af4388f474323741018a06e231be829060200160405180910390a15b50919050565b600080516020614bab833981519152546001600160a01b031690565b6111c56040805160e0810190915260008082526020820190815260200160008152602001606081526020016060815260200160608152602001606081525090565b6111cd613009565b60008381526003919091016020908152604091829020825160e08101909352805460ff808216855291928401916101009091041660048111156112125761121261385f565b60048111156112235761122361385f565b8152815460209091019062010000900460ff1660138111156112475761124761385f565b60138111156112585761125861385f565b815260200160018201805461126c906142c6565b80601f0160208091040260200160405190810160405280929190818152602001828054611298906142c6565b80156112e55780601f106112ba576101008083540402835291602001916112e5565b820191906000526020600020905b8154815290600101906020018083116112c857829003601f168201915b505050505081526020016002820180546112fe906142c6565b80601f016020809104026020016040519081016040528092919081815260200182805461132a906142c6565b80156113775780601f1061134c57610100808354040283529160200191611377565b820191906000526020600020905b81548152906001019060200180831161135a57829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b8282101561148357600084815260208120604080518082019091529160028086029092019190835b828210156114705783820180546113e3906142c6565b80601f016020809104026020016040519081016040528092919081815260200182805461140f906142c6565b801561145c5780601f106114315761010080835404028352916020019161145c565b820191906000526020600020905b81548152906001019060200180831161143f57829003601f168201915b5050505050815260200190600101906113cd565b50505050815260200190600101906113a5565b50505050815260200160048201805461149b906142c6565b80601f01602080910402602001604051908101604052809291908181526020018280546114c7906142c6565b80156115145780601f106114e957610100808354040283529160200191611514565b820191906000526020600020905b8154815290600101906020018083116114f757829003601f168201915b5050505050815250509050600060048111156115325761153261385f565b816020015160048111156115485761154861385f565b03610c4157604051633552703b60e21b815260048101839052602401610268565b600088600481111561157d5761157d61385f565b604051631746472760e01b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__916317464727916115c191908c908c908c908c908c908c908c90600401614441565b602060405180830381865af41580156115de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160291906144ad565b9050600061160e613009565b60008381526003919091016020526040902054610100900460ff16600481111561163a5761163a61385f565b03611942576040518060e001604052806116cf8a8a604051806040016040528060018152602001600160fd1b8152508b8b604051806040016040528060018152602001600160fd1b8152508c604051806040016040528060018152602001600160fd1b8152508d8d6040516020016116bb9a999897969594939291906144c6565b60405160208183030381529060405261325c565b60ff1681526020018a60048111156116e9576116e961385f565b815260200173__$6fdcaaf223938e26cbe304f958c2f40bbf$__63f3106f7886866040518363ffffffff1660e01b8152600401611727929190614563565b602060405180830381865af4158015611744573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117689190614577565b60138111156117795761177961385f565b815260200189898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8a0181900481028201810190925288815291810191908990899081908401838280828437600092019190915250505090825250602080820187905260408051601f870183900483028101830182528681529201919086908690819084018382808284376000920191909152505050915250611838613009565b6000838152600391909101602090815260409091208251815460ff90911660ff19821681178355928401519192839161ffff1916176101008360048111156118825761188261385f565b021790555060408201518154829062ff00001916620100008360138111156118ac576118ac61385f565b0217905550606082015160018201906118c590826145e8565b50608082015160028201906118da90826145e8565b5060a082015180516118f6916003840191602090910190613503565b5060c0820151600482019061190b90826145e8565b50506040518281527fd4d6341509dbdeb3a349aa77cc95076376f8e1c84fd3d27e0081424b01909272915060200160405180910390a15b98975050505050505050565b60408051808201909152600081526060602082015261196b613009565b60020160006119798461302d565b6001015481526020810191909152604090810160002081518083019092528054829060ff16600b8111156119af576119af61385f565b600b8111156119c0576119c061385f565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015611ad95760008481526020902060408051808201909152600284029091018054829060ff166009811115611a2357611a2361385f565b6009811115611a3457611a3461385f565b8152602001600182018054611a48906142c6565b80601f0160208091040260200160405190810160405280929190818152602001828054611a74906142c6565b8015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b505050505081525050815260200190600101906119e9565b505050915250909392505050565b6000611b2883838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506133d192505050565b90505b92915050565b60405163acbade1f60e01b81526001600160401b0383166004820152600560f91b602482015260609073__$6fdcaaf223938e26cbe304f958c2f40bbf$__9063acbade1f90604401600060405180830381865af4158015611b96573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611bbe91908101906146a7565b8484611bd7611bd236879003870187614714565b613423565b6040516316c0d2a160e11b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__91632d81a54291611c0d9190600401614767565b600060405180830381865af4158015611c2a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c5291908101906146a7565b604051602001611c6594939291906147b8565b60405160208183030381529060405290509392505050565b600080611c88613009565b60008481526003919091016020526040902054610100900460ff166004811115611cb457611cb461385f565b03611cd557604051633552703b60e21b815260048101839052602401610268565b611cdd613009565b600092835260030160205250604090205462010000900460ff1690565b6000611d04613009565b60010160008484604051602001611d1c9291906147f3565b60405160208183030381529060405280519060200120815260200190815260200160002054905092915050565b6000808686868686604051602001611d65959493929190614803565b604051602081830303815290604052805190602001209050611d85613009565b600082815260059190910160205260408120549250611da2613009565b6000838152600591909101602052604090205403612b06578651600003611e195760405162461bcd60e51b815260206004820152602560248201527f5769746e65745265717565737442797465636f6465733a206e6f2072657472696044820152646576616c7360d81b6064820152608401610268565b8251875114611e785760405162461bcd60e51b815260206004820152602560248201527f5769746e65745265717565737442797465636f6465733a2061726773206d69736044820152640dac2e8c6d60db1b6064820152608401610268565b6000611e82613009565b600088815260029190910160205260409081902081518083019092528054829060ff16600b811115611eb657611eb661385f565b600b811115611ec757611ec761385f565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015611fe05760008481526020902060408051808201909152600284029091018054829060ff166009811115611f2a57611f2a61385f565b6009811115611f3b57611f3b61385f565b8152602001600182018054611f4f906142c6565b80601f0160208091040260200160405190810160405280929190818152602001828054611f7b906142c6565b8015611fc85780601f10611f9d57610100808354040283529160200191611fc8565b820191906000526020600020905b815481529060010190602001808311611fab57829003601f168201915b50505050508152505081526020019060010190611ef0565b505050508152505090506000611ff4613009565b600088815260029190910160205260409081902081518083019092528054829060ff16600b8111156120285761202861385f565b600b8111156120395761203961385f565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b828210156121525760008481526020902060408051808201909152600284029091018054829060ff16600981111561209c5761209c61385f565b60098111156120ad576120ad61385f565b81526020016001820180546120c1906142c6565b80601f01602080910402602001604051908101604052809291908181526020018280546120ed906142c6565b801561213a5780601f1061210f5761010080835404028352916020019161213a565b820191906000526020600020905b81548152906001019060200180831161211d57829003601f168201915b50505050508152505081526020019060010190612062565b505050508152505090506000808a516001600160401b0381111561217857612178613930565b6040519080825280602002602001820160405280156121ea57816020015b6121d76040805160e0810190915260008082526020820190815260200160008152602001606081526020016060815260200160608152602001606081525090565b8152602001906001900390816121965790505b50905060005b815181101561270057612201613009565b60030160008d8381518110612218576122186142b0565b6020908102919091018101518252818101929092526040908101600020815160e08101909252805460ff808216845292939192918401916101009091041660048111156122675761226761385f565b60048111156122785761227861385f565b8152815460209091019062010000900460ff16601381111561229c5761229c61385f565b60138111156122ad576122ad61385f565b81526020016001820180546122c1906142c6565b80601f01602080910402602001604051908101604052809291908181526020018280546122ed906142c6565b801561233a5780601f1061230f5761010080835404028352916020019161233a565b820191906000526020600020905b81548152906001019060200180831161231d57829003601f168201915b50505050508152602001600282018054612353906142c6565b80601f016020809104026020016040519081016040528092919081815260200182805461237f906142c6565b80156123cc5780601f106123a1576101008083540402835291602001916123cc565b820191906000526020600020905b8154815290600101906020018083116123af57829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b828210156124d857600084815260208120604080518082019091529160028086029092019190835b828210156124c5578382018054612438906142c6565b80601f0160208091040260200160405190810160405280929190818152602001828054612464906142c6565b80156124b15780601f10612486576101008083540402835291602001916124b1565b820191906000526020600020905b81548152906001019060200180831161249457829003601f168201915b505050505081526020019060010190612422565b50505050815260200190600101906123fa565b5050505081526020016004820180546124f0906142c6565b80601f016020809104026020016040519081016040528092919081815260200182805461251c906142c6565b80156125695780601f1061253e57610100808354040283529160200191612569565b820191906000526020600020905b81548152906001019060200180831161254c57829003601f168201915b505050505081525050828281518110612584576125846142b0565b6020026020010181905250806000036125bd57816000815181106125aa576125aa6142b0565b6020026020010151604001519250612662565b8260138111156125cf576125cf61385f565b8282815181106125e1576125e16142b0565b60200260200101516040015160138111156125fe576125fe61385f565b146126625760405162461bcd60e51b815260206004820152602e60248201527f5769746e65745265717565737442797465636f6465733a206d69736d6174636860448201526d696e672072657472696576616c7360901b6064820152608401610268565b818181518110612674576126746142b0565b60200260200101516000015160ff16888281518110612695576126956142b0565b60200260200101515110156126f85760405162461bcd60e51b8152602060048201526024808201527f5769746e65745265717565737442797465636f6465733a206d697373696e67206044820152636172677360e01b6064820152608401610268565b6001016121f0565b508160138111156127135761271361385f565b604051630160730f60e01b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__91630160730f9161274b91908c906004016148d2565b602060405180830381865af4158015612768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061278c91906148f1565b975060008173__$6fdcaaf223938e26cbe304f958c2f40bbf$__63b6349ebd90918a8873__$6fdcaaf223938e26cbe304f958c2f40bbf$__631c02d22b90916040518263ffffffff1660e01b81526004016127e79190614317565b600060405180830381865af4158015612804573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261282c91908101906146a7565b604051631c02d22b60e01b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__90631c02d22b90612863908c90600401614317565b600060405180830381865af4158015612880573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128a891908101906146a7565b8e6040518663ffffffff1660e01b81526004016128c99594939291906149aa565b600060405180830381865af41580156128e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261290e91908101906146a7565b905061ffff815111156129755760405162461bcd60e51b815260206004820152602960248201527f5769746e65745265717565737442797465636f6465733a20746f6f20686561766044820152681e481c995c5d595cdd60ba1b6064820152608401610268565b61297e816133d1565b965086612989613009565b60008881526005919091016020526040902055806129a5613009565b600089815260069190910160205260409020906129c290826145e8565b506040518060e001604052808981526020018c81526020018881526020018460138111156129f2576129f261385f565b81526020018a61ffff1681526020018d81526020018b815250612a13613009565b600089815260049190910160209081526040909120825180519192612a3d9284929091019061355d565b50602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690836013811115612a7c57612a7c61385f565b0217905550608082015160038201805461ffff9092166101000262ffff001990921691909117905560a08201518051612abf9160048401916020909101906135b6565b5060c091909101516005909101556040518781527fe8845fcb11242df46ec5ca06bf7d381c3c6e9cc4f110abacffc933558e8dd67d9060200160405180910390a150505050505b5095945050505050565b6060612b1b8261302d565b600401805480602002602001604051908101604052809291908181526020018280548015610a7757602002820191906000526020600020905b815481526020019060010190808311612b545750505050509050919050565b600080612b7e613009565b60008481526003919091016020526040902054610100900460ff166004811115612baa57612baa61385f565b03612bcb57604051633552703b60e21b815260048101839052602401610268565b612bd3613009565b600092835260030160205250604090205460ff1690565b60606000612bf6613009565b600084815260209190915260409020612c0d613009565b6000858152602091909152604090206001015481548290612c2d906142c6565b80601f0160208091040260200160405190810160405280929190818152602001828054612c59906142c6565b8015612ca65780601f10612c7b57610100808354040283529160200191612ca6565b820191906000526020600020905b815481529060010190602001808311612c8957829003601f168201915b5050505050915091509150915091565b604080518082019091526000815260606020820152612cd3613009565b6002016000612ce18461302d565b6005015481526020810191909152604090810160002081518083019092528054829060ff16600b811115612d1757612d1761385f565b600b811115612d2857612d2861385f565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015611ad95760008481526020902060408051808201909152600284029091018054829060ff166009811115612d8b57612d8b61385f565b6009811115612d9c57612d9c61385f565b8152602001600182018054612db0906142c6565b80601f0160208091040260200160405190810160405280929190818152602001828054612ddc906142c6565b8015612e295780601f10612dfe57610100808354040283529160200191612e29565b820191906000526020600020905b815481529060010190602001808311612e0c57829003601f168201915b50505050508152505081526020019060010190612d51565b612e496130f5565b600080516020614bcb83398151915280546001600160a01b0319166001600160a01b038316908117909155612e7c611168565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60606000612ec1846109d7565b805160405163acbade1f60e01b81526001600160401b039091166004820152600560f91b602482015290915073__$6fdcaaf223938e26cbe304f958c2f40bbf$__9063acbade1f90604401600060405180830381865af4158015612f29573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f5191908101906146a7565b81612f64611bd236879003870187614714565b6040516316c0d2a160e11b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__91632d81a54291612f9a9190600401614767565b600060405180830381865af4158015612fb7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fdf91908101906146a7565b604051602001612ff193929190614aec565b60405160208183030381529060405291505092915050565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427def90565b6000613037613009565b6000928352600401602052506040902090565b60606000613057836134ca565b6001600160401b0381111561306e5761306e613930565b6040519080825280601f01601f191660200182016040528015613098576020820181803683370190505b50905060005b81518110156130ee578381602081106130b9576130b96142b0565b1a60f81b8282815181106130cf576130cf6142b0565b60200101906001600160f81b031916908160001a90535060010161309e565b5092915050565b336130fe611168565b6001600160a01b031614610f685760405163118cdaa760e01b8152336004820152602401610268565b600080516020614bcb83398151915280546001600160a01b0319169055600061314e611168565b9050806001600160a01b0316826001600160a01b0316146131c457600080516020614bab83398151915280546001600160a01b0319166001600160a01b0384811691821790925560405190918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35b5050565b60005b815181101561325757826001018282815181106131ea576131ea6142b0565b60209081029190910181015182546001818101855560009485529290932081516002909402018054919390929091839160ff19909116908360098111156132335761323361385f565b02179055506020820151600182019061324c90826145e8565b5050506001016131cb565b505050565b60006003825110