witnet-solidity-bridge
Version:
Witnet Solidity Bridge contracts for EVM-compatible chains
850 lines • 2.48 MB
JSON
{
"contractName": "WitnetEncodingLib",
"abi": [
{
"inputs": [],
"name": "EmptyBuffer",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "range",
"type": "uint256"
}
],
"name": "IndexOutOfBounds",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "length",
"type": "uint256"
}
],
"name": "InvalidLengthEncoding",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "expected",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "given",
"type": "uint256"
}
],
"name": "MissingArgs",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "read",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "expected",
"type": "uint256"
}
],
"name": "UnexpectedMajorType",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "method",
"type": "uint8"
},
{
"internalType": "string",
"name": "schema",
"type": "string"
},
{
"internalType": "string",
"name": "body",
"type": "string"
},
{
"internalType": "string[2][]",
"name": "headers",
"type": "string[2][]"
}
],
"name": "UnsupportedDataRequestMethod",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "unexpected",
"type": "uint256"
}
],
"name": "UnsupportedMajorType",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "datatype",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "maxlength",
"type": "uint256"
}
],
"name": "UnsupportedRadonDataType",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "args",
"type": "bytes"
}
],
"name": "UnsupportedRadonFilterArgs",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "opcode",
"type": "uint8"
}
],
"name": "UnsupportedRadonFilterOpcode",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "opcode",
"type": "uint8"
}
],
"name": "UnsupportedRadonReducerOpcode",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "script",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "offset",
"type": "uint256"
}
],
"name": "UnsupportedRadonReducerScript",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "script",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "offset",
"type": "uint256"
}
],
"name": "UnsupportedRadonScript",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "script",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "cursor",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "opcode",
"type": "uint8"
}
],
"name": "UnsupportedRadonScriptOpcode",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "hash",
"type": "bytes32"
}
],
"name": "UnsupportedRadonTallyScript",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "buf",
"type": "bytes"
}
],
"name": "encode",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "enum Witnet.RadonReducerOpcodes",
"name": "opcode",
"type": "Witnet.RadonReducerOpcodes"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "Witnet.RadonFilterOpcodes"
},
{
"internalType": "bytes",
"name": "args",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "reducer",
"type": "tuple"
}
],
"name": "encode",
"outputs": [
{
"internalType": "bytes",
"name": "bytecode",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum Witnet.RadonReducerOpcodes",
"name": "opcode",
"type": "Witnet.RadonReducerOpcodes"
}
],
"name": "encode",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint8",
"name": "numWitnesses",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "minConsensusPercentage",
"type": "uint8"
},
{
"internalType": "uint64",
"name": "witnessReward",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "witnessCollateral",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "minerCommitRevealFee",
"type": "uint64"
}
],
"internalType": "struct Witnet.RadonSLA",
"name": "sla",
"type": "tuple"
}
],
"name": "encode",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "str",
"type": "string"
}
],
"name": "encode",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "buf",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "majorType",
"type": "uint256"
}
],
"name": "encode",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "n",
"type": "uint64"
},
{
"internalType": "bytes1",
"name": "t",
"type": "bytes1"
}
],
"name": "encode",
"outputs": [
{
"internalType": "bytes",
"name": "buf",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint8",
"name": "argsCount",
"type": "uint8"
},
{
"internalType": "enum Witnet.RadonDataRequestMethods",
"name": "method",
"type": "Witnet.RadonDataRequestMethods"
},
{
"internalType": "enum Witnet.RadonDataTypes",
"name": "resultDataType",
"type": "Witnet.RadonDataTypes"
},
{
"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": "sources",
"type": "tuple[]"
},
{
"internalType": "string[][]",
"name": "args",
"type": "string[][]"
},
{
"internalType": "bytes",
"name": "aggregatorInnerBytecode",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "tallyInnerBytecode",
"type": "bytes"
},
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"name": "encode",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "Witnet.RadonFilterOpcodes"
},
{
"internalType": "bytes",
"name": "args",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter",
"name": "filter",
"type": "tuple"
}
],
"name": "encode",
"outputs": [
{
"internalType": "bytes",
"name": "bytecode",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint8",
"name": "argsCount",
"type": "uint8"
},
{
"internalType": "enum Witnet.RadonDataRequestMethods",
"name": "method",
"type": "Witnet.RadonDataRequestMethods"
},
{
"internalType": "enum Witnet.RadonDataTypes",
"name": "resultDataType",
"type": "Witnet.RadonDataTypes"
},
{
"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"
}
],
"name": "encode",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
},
{
"internalType": "string[]",
"name": "args",
"type": "string[]"
}
],
"name": "replaceCborStringsFromBytes",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint8",
"name": "argsCount",
"type": "uint8"
},
{
"internalType": "enum Witnet.RadonDataRequestMethods",
"name": "method",
"type": "Witnet.RadonDataRequestMethods"
},
{
"internalType": "enum Witnet.RadonDataTypes",
"name": "resultDataType",
"type": "Witnet.RadonDataTypes"
},
{
"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": "self",
"type": "tuple"
},
{
"internalType": "string[]",
"name": "args",
"type": "string[]"
}
],
"name": "replaceWildcards",
"outputs": [],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum Witnet.RadonDataTypes",
"name": "dataType",
"type": "Witnet.RadonDataTypes"
},
{
"internalType": "uint16",
"name": "maxDataSize",
"type": "uint16"
}
],
"name": "validate",
"outputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum Witnet.RadonDataRequestMethods",
"name": "method",
"type": "Witnet.RadonDataRequestMethods"
},
{
"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"
}
],
"name": "validate",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint8",
"name": "numWitnesses",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "minConsensusPercentage",
"type": "uint8"
},
{
"internalType": "uint64",
"name": "witnessReward",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "witnessCollateral",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "minerCommitRevealFee",
"type": "uint64"
}
],
"internalType": "struct Witnet.RadonSLA",
"name": "sla",
"type": "tuple"
}
],
"name": "validate",
"outputs": [],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "Witnet.RadonFilterOpcodes"
},
{
"internalType": "bytes",
"name": "args",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter",
"name": "filter",
"type": "tuple"
}
],
"name": "validate",
"outputs": [],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "enum Witnet.RadonReducerOpcodes",
"name": "opcode",
"type": "Witnet.RadonReducerOpcodes"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "Witnet.RadonFilterOpcodes"
},
{
"internalType": "bytes",
"name": "args",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "reducer",
"type": "tuple"
}
],
"name": "validate",
"outputs": [],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "script",
"type": "bytes"
}
],
"name": "verifyRadonScriptResultDataType",
"outputs": [
{
"internalType": "enum Witnet.RadonDataTypes",
"name": "",
"type": "Witnet.RadonDataTypes"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EmptyBuffer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"range\",\"type\":\"uint256\"}],\"name\":\"IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidLengthEncoding\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"given\",\"type\":\"uint256\"}],\"name\":\"MissingArgs\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"read\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"}],\"name\":\"UnexpectedMajorType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"method\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"body\",\"type\":\"string\"},{\"internalType\":\"string[2][]\",\"name\":\"headers\",\"type\":\"string[2][]\"}],\"name\":\"UnsupportedDataRequestMethod\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"unexpected\",\"type\":\"uint256\"}],\"name\":\"UnsupportedMajorType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"datatype\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"maxlength\",\"type\":\"uint256\"}],\"name\":\"UnsupportedRadonDataType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"args\",\"type\":\"bytes\"}],\"name\":\"UnsupportedRadonFilterArgs\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"opcode\",\"type\":\"uint8\"}],\"name\":\"UnsupportedRadonFilterOpcode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"opcode\",\"type\":\"uint8\"}],\"name\":\"UnsupportedRadonReducerOpcode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"script\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"}],\"name\":\"UnsupportedRadonReducerScript\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"script\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"}],\"name\":\"UnsupportedRadonScript\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"script\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"opcode\",\"type\":\"uint8\"}],\"name\":\"UnsupportedRadonScriptOpcode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"UnsupportedRadonTallyScript\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"buf\",\"type\":\"bytes\"}],\"name\":\"encode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum Witnet.RadonReducerOpcodes\",\"name\":\"opcode\",\"type\":\"Witnet.RadonReducerOpcodes\"},{\"components\":[{\"internalType\":\"enum Witnet.RadonFilterOpcodes\",\"name\":\"opcode\",\"type\":\"Witnet.RadonFilterOpcodes\"},{\"internalType\":\"bytes\",\"name\":\"args\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.RadonFilter[]\",\"name\":\"filters\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Witnet.RadonReducer\",\"name\":\"reducer\",\"type\":\"tuple\"}],\"name\":\"encode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"bytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Witnet.RadonReducerOpcodes\",\"name\":\"opcode\",\"type\":\"Witnet.RadonReducerOpcodes\"}],\"name\":\"encode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"numWitnesses\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minConsensusPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"witnessReward\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"witnessCollateral\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"minerCommitRevealFee\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.RadonSLA\",\"name\":\"sla\",\"type\":\"tuple\"}],\"name\":\"encode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"encode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"buf\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"majorType\",\"type\":\"uint256\"}],\"name\":\"encode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"n\",\"type\":\"uint64\"},{\"internalType\":\"bytes1\",\"name\":\"t\",\"type\":\"bytes1\"}],\"name\":\"encode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"buf\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"argsCount\",\"type\":\"uint8\"},{\"internalType\":\"enum Witnet.RadonDataRequestMethods\",\"name\":\"method\",\"type\":\"Witnet.RadonDataRequestMethods\"},{\"internalType\":\"enum Witnet.RadonDataTypes\",\"name\":\"resultDataType\",\"type\":\"Witnet.RadonDataTypes\"},{\"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\":\"sources\",\"type\":\"tuple[]\"},{\"internalType\":\"string[][]\",\"name\":\"args\",\"type\":\"string[][]\"},{\"internalType\":\"bytes\",\"name\":\"aggregatorInnerBytecode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"tallyInnerBytecode\",\"type\":\"bytes\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"encode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum Witnet.RadonFilterOpcodes\",\"name\":\"opcode\",\"type\":\"Witnet.RadonFilterOpcodes\"},{\"internalType\":\"bytes\",\"name\":\"args\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.RadonFilter\",\"name\":\"filter\",\"type\":\"tuple\"}],\"name\":\"encode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"bytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"argsCount\",\"type\":\"uint8\"},{\"internalType\":\"enum Witnet.RadonDataRequestMethods\",\"name\":\"method\",\"type\":\"Witnet.RadonDataRequestMethods\"},{\"internalType\":\"enum Witnet.RadonDataTypes\",\"name\":\"resultDataType\",\"type\":\"Witnet.RadonDataTypes\"},{\"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\"}],\"name\":\"encode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"args\",\"type\":\"string[]\"}],\"name\":\"replaceCborStringsFromBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"argsCount\",\"type\":\"uint8\"},{\"internalType\":\"enum Witnet.RadonDataRequestMethods\",\"name\":\"method\",\"type\":\"Witnet.RadonDataRequestMethods\"},{\"internalType\":\"enum Witnet.RadonDataTypes\",\"name\":\"resultDataType\",\"type\":\"Witnet.RadonDataTypes\"},{\"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\":\"self\",\"type\":\"tuple\"},{\"internalType\":\"string[]\",\"name\":\"args\",\"type\":\"string[]\"}],\"name\":\"replaceWildcards\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Witnet.RadonDataTypes\",\"name\":\"dataType\",\"type\":\"Witnet.RadonDataTypes\"},{\"internalType\":\"uint16\",\"name\":\"maxDataSize\",\"type\":\"uint16\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Witnet.RadonDataRequestMethods\",\"name\":\"method\",\"type\":\"Witnet.RadonDataRequestMethods\"},{\"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\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"numWitnesses\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minConsensusPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"witnessReward\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"witnessCollateral\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"minerCommitRevealFee\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.RadonSLA\",\"name\":\"sla\",\"type\":\"tuple\"}],\"name\":\"validate\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum Witnet.RadonFilterOpcodes\",\"name\":\"opcode\",\"type\":\"Witnet.RadonFilterOpcodes\"},{\"internalType\":\"bytes\",\"name\":\"args\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.RadonFilter\",\"name\":\"filter\",\"type\":\"tuple\"}],\"name\":\"validate\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum Witnet.RadonReducerOpcodes\",\"name\":\"opcode\",\"type\":\"Witnet.RadonReducerOpcodes\"},{\"components\":[{\"internalType\":\"enum Witnet.RadonFilterOpcodes\",\"name\":\"opcode\",\"type\":\"Witnet.RadonFilterOpcodes\"},{\"internalType\":\"bytes\",\"name\":\"args\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.RadonFilter[]\",\"name\":\"filters\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Witnet.RadonReducer\",\"name\":\"reducer\",\"type\":\"tuple\"}],\"name\":\"validate\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"script\",\"type\":\"bytes\"}],\"name\":\"verifyRadonScriptResultDataType\",\"outputs\":[{\"internalType\":\"enum Witnet.RadonDataTypes\",\"name\":\"\",\"type\":\"Witnet.RadonDataTypes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"The Witnet Foundation.\",\"kind\":\"dev\",\"methods\":{\"encode(bytes)\":{\"params\":{\"buf\":\"Bytes array\"},\"returns\":{\"_0\":\"Mashaled bytes\"}},\"encode(bytes,uint256)\":{\"params\":{\"buf\":\"Bytes array\"},\"returns\":{\"_0\":\"Marshaled bytes\"}},\"encode(string)\":{\"params\":{\"str\":\"String bytes.\"},\"returns\":{\"_0\":\"Mashaled bytes\"}},\"encode(uint64,bytes1)\":{\"details\":\"Encode uint64 into tagged varint.See https://developers.google.com/protocol-buffers/docs/encoding#varints.\",\"params\":{\"n\":\"Number\",\"t\":\"Tag\"},\"returns\":{\"buf\":\"Marshaled bytes\"}}},\"title\":\"A library for encoding Witnet Data Requests.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"encode(bytes)\":{\"notice\":\"Encode bytes array.\"},\"encode(bytes,uint256)\":{\"notice\":\"Encode bytes array into given major type (UTF-8 not yet supported)\"},\"encode(string)\":{\"notice\":\"Encode string array (UTF-8 not yet supported).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/libs/WitnetEncodingLib.sol\":\"WitnetEncodingLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x65a87375dd79d63a83fb454b7199b6c999bd59c50b3b59d521c5c4d45a7d3cc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca865b681d810c2fc5c3672ea6343c3bdf6fd71764ab824d25994744dc85866b\",\"dweb:/ipfs/QmPGcP3xGTNZfsQ9GSKdujNLRVs8dWDdubyUko1rbQqJNv\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0xa14570492eb5a313ddbacae0185c850ec99c67211eb33989a5e21d31bf06a150\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e83c11edb49cab6a767c0b685825bc22ece0d3d2897e0d54fe1923df5cc76ba5\",\"dweb:/ipfs/QmdLDgCc3tnKbgRrXwfNzsg6uUDirNmjvBB8V3iMmnD69a\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xb346547ff731163beea2c657c52675cdf7936691d566a76a045577cf9c34ade0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d4b5b6424a033584b41f1204d635db98fda9ca9bd2a614c9d82539a3e4e6529\",\"dweb:/ipfs/QmW6Qy3wWpzHSECYaCPaf9LWGfPqWDKVoP2kPSNNQu7LMQ\"]},\"project:/contracts/libs/WitnetEncodingLib.sol\":{\"keccak256\":\"0x2c2ccc824f28dccdfb0b51c26a09b5cf1dc3c0519933e01b1a4211cee3634cb9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f5b7e3db8dcbdf521ad510ae3edbbc5accccbfabaf31a50bfe21ef9f5c40973\",\"dweb:/ipfs/QmZktfyrGF5pmaYerDA6oZYVwRt2HEeGk1Q7ruAG66QtXh\"]}},\"version\":1}",
"bytecode": "0x613a22610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106101205760003560e01c8063a8c06a13116100ac578063c5f3674a1161007b578063c5f3674a14610251578063daf4b0ef14610264578063dfaecd1114610277578063f3106f781461028a578063fa5dce12146102aa57600080fd5b8063a8c06a1314610205578063a97b1d3114610218578063acbade1f1461022b578063b6349ebd1461023e57600080fd5b8063203003b1116100f3578063203003b1146101a45780632461ccf3146101b75780632d81a542146101cc5780633b1e539b146101df5780636a11b2a8146101f257600080fd5b80630160730f1461012557806312496a1b1461015057806317464727146101705780631c02d22b14610191575b600080fd5b6101386101333660046129b8565b6102bd565b60405161ffff90911681526020015b60405180910390f35b61016361015e366004612aea565b610449565b6040516101479190612b76565b61018361017e366004612ca9565b610456565b604051908152602001610147565b61016361019f366004612dd3565b61055f565b6101636101b2366004612ec2565b6105f9565b6101ca6101c5366004612f05565b61061a565b005b6101636101da366004612f05565b6108b5565b6101ca6101ed3660046130fc565b61092c565b610163610200366004612aea565b6109f7565b61016361021336600461315f565b610a00565b6101ca6102263660046131a3565b610b50565b6101636102393660046131d7565b610c14565b61016361024c36600461329a565b610d7d565b61016361025f3660046131a3565b610eb9565b6101ca610272366004612dd3565b610f7b565b6101636102853660046133c7565b61107d565b61029d610298366004612aea565b6110e4565b6040516101479190613413565b6101636102b836600461342d565b6110f9565b6000808360138111156102d2576102d26133fd565b14806102ef575060078360138111156102ed576102ed6133fd565b145b8061030b57506003836013811115610309576103096133fd565b145b8061032757506001836013811115610325576103256133fd565b145b8061034357506006836013811115610341576103416133fd565b145b156103a6578161ffff1660000361039457826013811115610366576103666133fd565b604051637aba172760e01b815260ff909116600482015261ffff831660248201526044015b60405180910390fd5b61039f826003613477565b9050610443565b60048360138111156103ba576103ba6133fd565b14806103d7575060058360138111156103d5576103d56133fd565b145b806103f3575060028360138111156103f1576103f16133fd565b145b1561040057506009610443565b826013811115610412576104126133fd565b61041b846113e6565b604051637aba172760e01b815260ff909216600483015261ffff16602482015260440161038b565b92915050565b6060610443826002610a00565b60008085511180156104b057506001866004811115610477576104776133fd565b148061049457506003866004811115610492576104926133fd565b145b806104b0575060048660048111156104ae576104ae6133fd565b145b806104ef575060028660048111156104ca576104ca6133fd565b1480156104d657508451155b80156104e157508251155b80156104ef57506001825110155b61052557856004811115610505576105056133fd565b858585604051633a3cb62160e01b815260040161038b9493929190613518565b858585858560405160200161053e959493929190613565565b60405160208183030381529060405280519060200120905095945050505050565b606060005b8260200151518110156105c357816105988460200151838151811061058b5761058b6135d4565b6020026020010151610eb9565b6040516020016105a99291906135ea565b60408051601f198184030181529190529150600101610564565b50806105d283600001516105f9565b6040516020016105e39291906135ea565b6040516020818303038152906040529050919050565b606061044382600b811115610610576106106133fd565b600160fc1b610c14565b80604001516001600160401b03166000036106775760405162461bcd60e51b815260206004820152602960248201526000805160206139cd8339815191526044820152681b9bc81c995dd85c9960ba1b606482015260840161038b565b805160ff166000036106ce5760405162461bcd60e51b815260206004820152602c60248201526000805160206139cd83398151915260448201526b6e6f207769746e657373657360a01b606482015260840161038b565b607f816000015160ff16111561073a5760405162461bcd60e51b815260206004820152603960248201526000805160206139cd83398151915260448201527f746f6f206d616e79207769746e657373657320283e3132372900000000000000606482015260840161038b565b6033816020015160ff16108061075757506063816020015160ff16115b156107c25760405162461bcd60e51b815260206004820152604160248201526000805160206139cd83398151915260448201527f636f6e73656e7375732070657263656e74616765206f7574206f662072616e676064820152606560f81b608482015260a40161038b565b60608101516001600160401b0316156108215760405162461bcd60e51b815260206004820152602d60248201526000805160206139cd83398151915260448201526c1b9bc818dbdb1b185d195c985b609a1b606482015260840161038b565b607f81604001518260600151610837919061362f565b6001600160401b031611156108b25760405162461bcd60e51b815260206004820152604760248201526000805160206139cd83398151915260448201527f636f6c6c61746572616c2f72657761726420726174696f20746f6f206869676860648201526620283e3132372960c81b608482015260a40161038b565b50565b60606108c98260400151601060f81b610c14565b82516108dc9060ff16600360fb1b610c14565b60808401516108ef90600160fd1b610c14565b60208501516109059060ff16600560fb1b610c14565b606086015161091890600360fc1b610c14565b6040516020016105e3959493929190613655565b61093a826060015182611454565b6060830152608082015161094e9082611454565b608083015260c0820151610962908261107d565b60c083015260005b8260a00151518110156109f2576109b58360a001518281518110610990576109906135d4565b60200260200101516001600281106109aa576109aa6135d4565b602002015183611454565b8360a0015182815181106109cb576109cb6135d4565b60200260200101516001600281106109e5576109e56135d4565b602002015260010161096a565b505050565b60606104438260035b81516060906017811015610a41578060ff16600584901b1784604051602001610a2a9291906136c0565b604051602081830303815290604052915050610443565b600583901b606060ff8311610a88576040516001600160f81b031960f885901b166020820152601892909217916021015b6040516020818303038152906040529050610b1b565b61ffff8311610ab7576040516001600160f01b031960f085901b16602082015260199290921791602201610a72565b63ffffffff8311610ae8576040516001600160e01b031960e085901b166020820152601a9290921791602401610a72565b6040516001600160c01b031960c085901b166020820152601b929092179160280160405160208183030381529060405290505b818187604051602001610b30939291906136ef565b6040516020818303038152906040529350505050610443565b5092915050565b600581516009811115610b6557610b656133fd565b03610baa578060200151516000036108b25780516009811115610b8a57610b8a6133fd565b81602001516040516319037b1360e31b815260040161038b929190613734565b600881516009811115610bbf57610bbf6133fd565b03610be257602081015151156108b25780516009811115610b8a57610b8a6133fd565b80516009811115610bf557610bf56133fd565b60405163ddb08eaf60e01b815260ff909116600482015260240161038b565b60608260025b607f826001600160401b03161115610c47576007826001600160401b0316901c9150600181019050610c1a565b806001600160401b03166001600160401b03811115610c6857610c686129eb565b6040519080825280601f01601f191660200182016040528015610c92576020820181803683370190505b5092508491508383600081518110610cac57610cac6135d4565b60200101906001600160f81b031916908160001a90535060015b816001600160401b0316816001600160401b03161015610d355782607f1660801760f81b84826001600160401b031681518110610d0557610d056135d4565b60200101906001600160f81b031916908160001a90535060079290921c6701ffffffffffffff1691600101610cc6565b50607f60f81b83600183036001600160401b031681518110610d5957610d596135d4565b0160200180519091166001600160f81b03191690600082901a905350505092915050565b6060600086516001600160401b03811115610d9a57610d9a6129eb565b604051908082528060200260200182016040528015610dcd57816020015b6060815260200190600190039081610db85790505b50905060005b8751811015610e5f57610e18888281518110610df157610df16135d4565b6020026020010151888381518110610e0b57610e0b6135d4565b602002602001015161092c565b610e3a888281518110610e2d57610e2d6135d4565b60200260200101516110f9565b828281518110610e4c57610e4c6135d4565b6020908102919091010152600101610dd3565b50610e698161146b565b8551610e7990600d60f91b610c14565b86610e898751602260f81b610c14565b87604051602001610e9e959493929190613655565b60405160208183030381529060405291505095945050505050565b6060610ede82600001516009811115610ed457610ed46133fd565b600160fb1b610c14565b600083602001515111610f005760405180602001604052806000815250610f38565b602083015151610f1490600960f91b610c14565b602080850151604051610f289392016135ea565b6040516020818303038152906040525b604051602001610f499291906135ea565b6040516020818303038152906040529050610f698151600a60f81b610c14565b816040516020016105e39291906135ea565b60038151600b811115610f9057610f906133fd565b1480610fae575060078151600b811115610fac57610fac6133fd565b145b80610fcb575060028151600b811115610fc957610fc96133fd565b145b80610fe85750600b8151600b811115610fe657610fe66133fd565b145b80611005575060058151600b811115611003576110036133fd565b145b61103b578051600b81111561101c5761101c6133fd565b60405163a1165d6360e01b815260ff909116600482015260240161038b565b60005b8160200151518110156110795761107182602001518281518110611064576110646135d4565b6020026020010151610b50565b60010161103e565b5050565b6060600061108a846114c1565b90505b805180515160209091015110156110db57600360ff16816040015160ff16036110ca576110ba81846114ed565b6110c381611582565b905061108d565b6110c36110d6826115aa565b611582565b51519392505050565b60006104436110f2836114c1565b600061176f565b6060600061111683602001516004811115610ed457610ed46133fd565b90506060600084606001515111156111645760608401515161113c90600960f91b610c14565b84606001516040516020016111529291906135ea565b60405160208183030381529060405290505b60c084015151606090156111ae5760c08501515161118690600d60f91b610c14565b8560c0015160405160200161119c9291906135ea565b60405160208183030381529060405290505b608085015151606090156111f8576080860151516111d090601160f91b610c14565b86608001516040516020016111e69291906135ea565b60405160208183030381529060405290505b60a0860151516060901561136c5760005b8760a001515181101561136a57600061125b8960a001518381518110611231576112316135d4565b602002602001015160006002811061124b5761124b6135d4565b602002015151600560f91b610c14565b8960a001518381518110611271576112716135d4565b602002602001015160006002811061128b5761128b6135d4565b60200201516112d38b60a0015185815181106112a9576112a96135d4565b60200260200101516001600281106112c3576112c36135d4565b602002015151600960f91b610c14565b8b60a0015185815181106112e9576112e96135d4565b6020026020010151600160028110611303576113036135d4565b602002015160405160200161131b9493929190613750565b60405160208183030381529060405290508261133c8251602a60f81b610c14565b8260405160200161134f939291906137a7565b60408051601f19818403018152919052925050600101611209565b505b60008151835185518751895161138291906137ea565b61138c91906137ea565b61139691906137ea565b6113a091906137ea565b90506113b081600960f91b610c14565b86868686866040516020016113ca969594939291906137fd565b6040516020818303038152906040529650505050505050919050565b600060048260138111156113fc576113fc6133fd565b148061141957506005826013811115611417576114176133fd565b145b1561142657506009919050565b600282601381111561143a5761143a6133fd565b0361144757506001919050565b506000919050565b919050565b6060600061146284846118fe565b50949350505050565b60405160208101600060015b845181116114ab576020818102860151805190918201611498868284611b95565b5093840193929092019150600101611477565b5080835260208101604051016040525050919050565b6114c9612950565b60408051808201909152828152600060208201526114e681611bd9565b9392505050565b60808201518251602001516001600160401b0390911690600061150f85611cf9565b905060008061151e83876118fe565b90925090508015611579576000611534836109f7565b9050611540868661387c565b8851602001528351611560906115579088906137ea565b89519083611e02565b8051885160200180516115749083906137ea565b905250505b50505050505050565b61158a612950565b815180515160209091015110156115a657815161044390611bd9565b5090565b6115b2612950565b604082015160ff1615806115cd5750604082015160ff166001145b806116065750604082015160ff1660071480156115f257506019826060015160ff1610155b80156116065750601b826060015160ff1611155b156116395761161482611f2e565b6001600160401b0316826000015160200181815161163291906137ea565b9052505090565b604082015160ff16600314806116565750604082015160ff166002145b1561169a57600061166f83600001518460600151611f9b565b9050806001600160401b0316836000015160200181815161169091906137ea565b9052506115a69050565b604082015160ff16600414806116b75750604082015160ff166005145b156116e0576116ce82600001518360600151611f9b565b6001600160401b031660808301525090565b604082015160ff1660071415806117125750816060015160ff166014141580156117125750816060015160ff16601514155b156115a65760405162461bcd60e51b815260206004820152602760248201527f5769746e657443424f522e736b69703a20756e737570706f72746564206d616a6044820152666f72207479706560c81b606482015260840161038b565b6000600460ff16836040015160ff160361180c57600061178e8461205c565b905060018151111561180257826117d5576117d081600283516117b1919061387c565b815181106117c1576117c16135d4565b6020026020010151600161176f565b6117fa565b6117fa816000815181106117eb576117eb6135d4565b6020026020010151600061176f565b915050610443565b6000915050610443565b604083015160ff166118d55782516020015160006118298561220c565b905060006040518060a001604052806080815260200161394d60809139518211611884576040518060a001604052806080815260200161394d608091398281518110611877576118776135d4565b016020015160f81c611887565b60ff5b9050601360ff821611156118b657855151604051631aef51bd60e31b815261038b91908590859060040161388f565b8060ff1660138111156118cb576118cb6133fd565b9350505050610443565b604080840151905161800560e51b81526000600482015260ff909116602482015260440161038b565b60606000806000905060008080600080600080600060038d511015611932578c60009a509a50505050505050505050611b8e565b6040518d51909b5060208e810197508c019450600119015b808a1015611b1e57601760fa1b6001600160f81b0319168e8b81518110611973576119736135d4565b01602001516001600160f81b0319161480156119bf5750601760fa1b6001600160f81b0319168e8b600201815181106119ae576119ae6135d4565b01602001516001600160f81b031916145b80156119fc5750600360fc1b6001600160f81b0319168e8b600101815181106119ea576119ea6135d4565b01602001516001600160f81b03191610155b8015611a395750603960f81b6001600160f81b0319168e8b60010181518110611a2757611a276135d4565b01602001516001600160f81b03191611155b15611b1357888a039750888a1115611a6657611a5685888a611b95565b9587016003019593870193611a6d565b6003870196505b6000600360fc1b60f81c8f8c60010181518110611a8c57611a8c6135d4565b602001015160f81c60f81b60f81c0360ff1690508d518110611ad0578d516040516306786e0760e21b8152600183016004820152602481019190915260440161038b565b600181016020028e0151945084519350602085019250611af1868486611b95565b506001909a01996003999099019889985087830195909501949382019361194a565b60019099019861194a565b508c5198508415611b6f5787891115611b5c57611b458487611b408b8d61387c565b611b95565b611b4f888a61387c565b611b5990866137ea565b94505b848b526020850160405101604052611b84565b8c60009a509a50505050505050505050611b8e565b5050505050505050505b9250929050565b5b60208110611bb5578151835260209283019290910190601f1901611b96565b80156109f257905182516020929092036101000a6000190180199091169116179052565b611be1612950565b8151518290600003611c06576040516309036d4760e21b815260040160405180910390fd5b600060ff816001600160401b038160015b8015611c8957611c268961226f565b955081611c32816138bb565b6007600589901c169650601f881695509250506005198501611c81576020890151611c5d8a86611f9b565b9350808a60200151611c6f919061387c565b611c7990846137ea565b925050611c17565b506000611c17565b600760ff86161115611cb35760405163bd2ac87960e01b815260ff8616600482015260240161038b565b506040805160c08101825298895260ff95861660208a015293851693880193909352921660608601526001600160401b0390811660808601521660a08401525090919050565b60608160038060ff16826040015160ff1614611d3957604080830151905161800560e51b815260ff9182166004820152908216602482015260440161038b565b611d4b84600001518560600151611f9b565b6001600160401b03166080850181905267fffffffffffffffe1901611de85760005b80611de2576000611d86866000015187604001516122d1565b90506001600160401b038082161015611dd75784611db0611da860048461362f565b885190612377565b604051602001611dc19291906135ea565b6040516020818303038152906040529450611ddc565b600191505b50611d6d565b50611dfb565b60808401518451611df891612377565b92505b5050919050565b60208301518351518391611e159161387c565b611e209060016137ea565b80821115611e4b576040516363a056dd60e01b8152600481018390526024810182905260440161038b565b60408051600380825260808201909252600091816020015b606081526020019060019003908161