{
  "_format": "hh-sol-artifact-1",
  "contractName": "WitnetRequestBytecodesNoSha256",
  "sourceName": "contracts/core/customs/WitnetRequestBytecodesNoSha256.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": "0x6101606040523361010052636f1735ab60e01b6101405234801561002257600080fd5b50604051614e70380380614e70833981016040819052610041916101ef565b818181816040518060400160405280601d81526020017f696f2e7769746e65742e70726f786961626c652e62797465636f64657300000081525082333061008c61010160201b60201c565b80546001600160a01b0319166001600160a01b0392831617905581166100cc57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100d581610125565b5030608052151560c052600160025560e091909152805160209091012061012052506102229350505050565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dec90565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dee80546001600160a01b03191690556000610175600080516020614e50833981519152546001600160a01b031690565b9050806001600160a01b0316826001600160a01b0316146101eb57600080516020614e5083398151915280546001600160a01b0319166001600160a01b0384811691821790925560405190918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35b5050565b6000806040838503121561020257600080fd5b8251801515811461021257600080fd5b6020939093015192949293505050565b60805160a05160c05160e051610100516101205161014051614bbb61029560003960006106af015260006103e6015260006107d601526000610eb70152600081816104250152610efe0152600050506000818161039c0152818161067801528181610d3f0152610e220152614bbb6000f3fe6080604052600436106102135760003560e01c80639f34df1911610118578063b2299677116100a0578063d5f394881161006f578063d5f39488146107c4578063db4c6b21146107f8578063e30c397814610818578063f2fde38b14610843578063f4f07e991461086357610271565b8063b2299677146106ea578063b4ab01a51461071e578063bff852fa14610750578063c0a673611461079657610271565b8063a47bd1a4116100e7578063a47bd1a414610609578063a4a7cecd14610629578063a83e942c14610649578063a9e954b914610669578063adb7c3f71461069d57610271565b80639f34df1914610589578063a0490fa0146105a9578063a09948b0146105c9578063a0e55336146105e957610271565b80636b58960a1161019b57806379ba50971161016a57806379ba5097146104f25780637f412e23146105075780638da5cb5b146105275780639dd487571461053c5780639eb3ab1f1461056957610271565b80636b58960a1461046a5780636ea3ebe41461048a578063715018a6146104aa57806376b78a06146104bf57610271565b80634c729104116101e25780634c729104146103605780635001f3b51461038d57806352d1902d146103d45780635479d9401461041657806354fd4d501461045557610271565b806321ead36f146102b05780632ebf5d5c146102e65780633679f86414610313578063439fab911461034057610271565b366102715760405162461bcd60e51b8152602060048201526024808201527f5769746e65745265717565737442797465636f6465733a206e6f207472616e736044820152636665727360e01b60648201526084015b60405180910390fd5b34801561027d57600080fd5b506102ae6040518060400160405280600f81526020016e1b9bdd081a5b5c1b195b595b9d1959608a1b815250610883565b005b3480156102bc57600080fd5b506102d06102cb36600461371f565b6108ef565b6040516102dd9190613787565b60405180910390f35b3480156102f257600080fd5b5061030661030136600461379a565b6109d7565b6040516102dd9190613803565b34801561031f57600080fd5b5061033361032e36600461379a565b610a83565b6040516102dd9190613850565b34801561034c57600080fd5b506102ae61035b3660046139d2565b610c46565b34801561036c57600080fd5b5061038061037b36600461379a565b610e98565b6040516102dd9190613a1e565b34801561039957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102dd565b3480156103e057600080fd5b506104087f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016102dd565b34801561042257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405190151581526020016102dd565b34801561046157600080fd5b50610306610eb0565b34801561047657600080fd5b50610445610485366004613a41565b610ee0565b34801561049657600080fd5b506104086104a536600461379a565b610f41565b3480156104b657600080fd5b506102ae610f56565b3480156104cb57600080fd5b506104df6104da36600461379a565b610f6a565b60405161ffff90911681526020016102dd565b3480156104fe57600080fd5b506102ae610f88565b34801561051357600080fd5b50610408610522366004613a81565b61101d565b34801561053357600080fd5b506103bc611168565b34801561054857600080fd5b5061055c61055736600461379a565b611184565b6040516102dd9190613c58565b34801561057557600080fd5b50610408610584366004613e3b565b611569565b34801561059557600080fd5b506103336105a436600461379a565b61194e565b3480156105b557600080fd5b506104086105c4366004613f0f565b611ae7565b3480156105d557600080fd5b506103066105e4366004613f62565b611b31565b3480156105f557600080fd5b5061038061060436600461379a565b611c7d565b34801561061557600080fd5b50610408610624366004613f0f565b611cfa565b34801561063557600080fd5b506104086106443660046140c3565b611d49565b34801561065557600080fd5b506102d061066436600461379a565b612b0e565b34801561067557600080fd5b507f00000000000000000000000000000000000000000000000000000000000000003f610408565b3480156106a957600080fd5b506106d17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160e01b031990911681526020016102dd565b3480156106f657600080fd5b507f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427df754610408565b34801561072a57600080fd5b5061073e61073936600461379a565b612b71565b60405160ff90911681526020016102dd565b34801561075c57600080fd5b5060408051808201909152601e81527f5769746e65745265717565737442797465636f6465734e6f53686132353600006020820152610306565b3480156107a257600080fd5b506107b66107b136600461379a565b612be8565b6040516102dd92919061419f565b3480156107d057600080fd5b506103bc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561080457600080fd5b5061033361081336600461379a565b612cb4565b34801561082457600080fd5b50600080516020614b66833981519152546001600160a01b03166103bc565b34801561084f57600080fd5b506102ae61085e366004613a41565b612e3f565b34801561086f57600080fd5b5061030661087e3660046141c1565b612eb2565b60408051808201909152601e81527f5769746e65745265717565737442797465636f6465734e6f53686132353600006020820152816040516020016108c99291906141ee565b60408051601f198184030181529082905262461bcd60e51b825261026891600401613803565b606060006108fb613007565b6000868152602091909152604090206001810154909150808510156109ce57806109258587614241565b1115610938576109358582614254565b93505b836001600160401b03811115610950576109506138e7565b604051908082528060200260200182016040528015610979578160200160208202803683370190505b50925060005b83518110156109cc576002830160006109988884614241565b8152602001908152602001600020548482815181106109b9576109b9614267565b602090810291909101015260010161097f565b505b50509392505050565b60606109e1613007565b60008381526006919091016020526040902080546109fe9061427d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2a9061427d565b8015610a775780601f10610a4c57610100808354040283529160200191610a77565b820191906000526020600020905b815481529060010190602001808311610a5a57829003601f168201915b50505050509050919050565b604080518082019091526000815260606020820152610aa0613007565b600083815260029190910160205260409081902081518083019092528054829060ff16600b811115610ad457610ad4613816565b600b811115610ae557610ae5613816565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015610bfe5760008481526020902060408051808201909152600284029091018054829060ff166009811115610b4857610b48613816565b6009811115610b5957610b59613816565b8152602001600182018054610b6d9061427d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b999061427d565b8015610be65780601f10610bbb57610100808354040283529160200191610be6565b820191906000526020600020905b815481529060010190602001808311610bc957829003601f168201915b50505050508152505081526020019060010190610b0e565b505050915250508051909150600b811115610c1b57610c1b613816565b60ff16600003610c415760405163b020432960e01b815260048101839052602401610268565b919050565b600080516020614b46833981519152546001600160a01b031680610ca75781806020019051810190610c7891906142b1565b600080516020614b4683398151915280546001600160a01b0319166001600160a01b0383161790559050610d0d565b336001600160a01b03821614610d0d5760405162461bcd60e51b815260206004820152602560248201527f5769746e65745265717565737442797465636f6465733a206e6f74207468652060448201526437bbb732b960d91b6064820152608401610268565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dec546001600160a01b031615610df3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dec546001600160a01b031603610df35760405162461bcd60e51b815260206004820152602b60248201527f5769746e65745265717565737442797465636f6465733a20616c72656164792060448201526a1a5b9a5d1a585b1a5e995960aa1b6064820152608401610268565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dec80546001600160a01b0319167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038181169283179093553f9183167fe73e754121f0bad1327816970101955bfffdf53d270ac509d777c25be070d7f6610e7f610eb0565b604051610e8c9190613803565b60405180910390a45050565b6000610ea38261302b565b6003015460ff1692915050565b6060610edb7f0000000000000000000000000000000000000000000000000000000000000000613048565b905090565b600080516020614b46833981519152546000906001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000008015610f3a5750826001600160a01b0316816001600160a01b0316145b9392505050565b6000610f4c8261302b565b6004015492915050565b610f5e6130f3565b610f686000613125565b565b6000610f758261302b565b60030154610100900461ffff1692915050565b3380610fa9600080516020614b66833981519152546001600160a01b031690565b6001600160a01b0316146110115760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610268565b61101a81613125565b50565b6000816040516020016110309190613850565b6040516020818303038152906040528051906020012090506000611052613007565b600083815260029190910160205260409020805490915060ff16600b81111561107d5761107d613816565b60ff1615801561108f57506001810154155b156111625760405163daf4b0ef60e01b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__9063daf4b0ef906110cb9086906004016142ce565b60006040518083038186803b1580156110e357600080fd5b505af41580156110f7573d6000803e3d6000fd5b50508451835490925083915060ff1916600183600b81111561111b5761111b613816565b021790555061112e8184602001516131c6565b6040518281527feb8b5415ec9648a9403c5cce90965dfa18af4388f474323741018a06e231be829060200160405180910390a15b50919050565b600080516020614b46833981519152546001600160a01b031690565b6111c56040805160e0810190915260008082526020820190815260200160008152602001606081526020016060815260200160608152602001606081525090565b6111cd613007565b60008381526003919091016020908152604091829020825160e08101909352805460ff8082168552919284019161010090910416600481111561121257611212613816565b600481111561122357611223613816565b8152815460209091019062010000900460ff16601381111561124757611247613816565b601381111561125857611258613816565b815260200160018201805461126c9061427d565b80601f01602080910402602001604051908101604052809291908181526020018280546112989061427d565b80156112e55780601f106112ba576101008083540402835291602001916112e5565b820191906000526020600020905b8154815290600101906020018083116112c857829003601f168201915b505050505081526020016002820180546112fe9061427d565b80601f016020809104026020016040519081016040528092919081815260200182805461132a9061427d565b80156113775780601f1061134c57610100808354040283529160200191611377565b820191906000526020600020905b81548152906001019060200180831161135a57829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b8282101561148357600084815260208120604080518082019091529160028086029092019190835b828210156114705783820180546113e39061427d565b80601f016020809104026020016040519081016040528092919081815260200182805461140f9061427d565b801561145c5780601f106114315761010080835404028352916020019161145c565b820191906000526020600020905b81548152906001019060200180831161143f57829003601f168201915b5050505050815260200190600101906113cd565b50505050815260200190600101906113a5565b50505050815260200160048201805461149b9061427d565b80601f01602080910402602001604051908101604052809291908181526020018280546114c79061427d565b80156115145780601f106114e957610100808354040283529160200191611514565b820191906000526020600020905b8154815290600101906020018083116114f757829003601f168201915b50505050508152505090506000600481111561153257611532613816565b8160200151600481111561154857611548613816565b03610c4157604051633552703b60e21b815260048101839052602401610268565b600088600481111561157d5761157d613816565b604051631746472760e01b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__916317464727916115c191908c908c908c908c908c908c908c906004016143f8565b602060405180830381865af41580156115de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116029190614464565b9050600061160e613007565b60008381526003919091016020526040902054610100900460ff16600481111561163a5761163a613816565b03611942576040518060e001604052806116cf8a8a604051806040016040528060018152602001600160fd1b8152508b8b604051806040016040528060018152602001600160fd1b8152508c604051806040016040528060018152602001600160fd1b8152508d8d6040516020016116bb9a9998979695949392919061447d565b60405160208183030381529060405261325a565b60ff1681526020018a60048111156116e9576116e9613816565b815260200173__$6fdcaaf223938e26cbe304f958c2f40bbf$__63f3106f7886866040518363ffffffff1660e01b815260040161172792919061451a565b602060405180830381865af4158015611744573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611768919061452e565b601381111561177957611779613816565b815260200189898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8a0181900481028201810190925288815291810191908990899081908401838280828437600092019190915250505090825250602080820187905260408051601f870183900483028101830182528681529201919086908690819084018382808284376000920191909152505050915250611838613007565b6000838152600391909101602090815260409091208251815460ff90911660ff19821681178355928401519192839161ffff19161761010083600481111561188257611882613816565b021790555060408201518154829062ff00001916620100008360138111156118ac576118ac613816565b0217905550606082015160018201906118c5908261459f565b50608082015160028201906118da908261459f565b5060a082015180516118f69160038401916020909101906134ba565b5060c0820151600482019061190b908261459f565b50506040518281527fd4d6341509dbdeb3a349aa77cc95076376f8e1c84fd3d27e0081424b01909272915060200160405180910390a15b98975050505050505050565b60408051808201909152600081526060602082015261196b613007565b60020160006119798461302b565b6001015481526020810191909152604090810160002081518083019092528054829060ff16600b8111156119af576119af613816565b600b8111156119c0576119c0613816565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015611ad95760008481526020902060408051808201909152600284029091018054829060ff166009811115611a2357611a23613816565b6009811115611a3457611a34613816565b8152602001600182018054611a489061427d565b80601f0160208091040260200160405190810160405280929190818152602001828054611a749061427d565b8015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b505050505081525050815260200190600101906119e9565b505050915250909392505050565b6000611b2883838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506133cf92505050565b90505b92915050565b60405163acbade1f60e01b81526001600160401b0383166004820152600560f91b602482015260609073__$6fdcaaf223938e26cbe304f958c2f40bbf$__9063acbade1f90604401600060405180830381865af4158015611b96573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611bbe919081019061465e565b8484611bd7611bd2368790038701876146cb565b6133da565b6040516316c0d2a160e11b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__91632d81a54291611c0d919060040161471e565b600060405180830381865af4158015611c2a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c52919081019061465e565b604051602001611c65949392919061476f565b60405160208183030381529060405290509392505050565b600080611c88613007565b60008481526003919091016020526040902054610100900460ff166004811115611cb457611cb4613816565b03611cd557604051633552703b60e21b815260048101839052602401610268565b611cdd613007565b600092835260030160205250604090205462010000900460ff1690565b6000611d04613007565b60010160008484604051602001611d1c9291906147aa565b60405160208183030381529060405280519060200120815260200190815260200160002054905092915050565b6000808686868686604051602001611d659594939291906147ba565b604051602081830303815290604052805190602001209050611d85613007565b600082815260059190910160205260408120549250611da2613007565b6000838152600591909101602052604090205403612b04578651600003611e195760405162461bcd60e51b815260206004820152602560248201527f5769746e65745265717565737442797465636f6465733a206e6f2072657472696044820152646576616c7360d81b6064820152608401610268565b8251875114611e785760405162461bcd60e51b815260206004820152602560248201527f5769746e65745265717565737442797465636f6465733a2061726773206d69736044820152640dac2e8c6d60db1b6064820152608401610268565b6000611e82613007565b600088815260029190910160205260409081902081518083019092528054829060ff16600b811115611eb657611eb6613816565b600b811115611ec757611ec7613816565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015611fe05760008481526020902060408051808201909152600284029091018054829060ff166009811115611f2a57611f2a613816565b6009811115611f3b57611f3b613816565b8152602001600182018054611f4f9061427d565b80601f0160208091040260200160405190810160405280929190818152602001828054611f7b9061427d565b8015611fc85780601f10611f9d57610100808354040283529160200191611fc8565b820191906000526020600020905b815481529060010190602001808311611fab57829003601f168201915b50505050508152505081526020019060010190611ef0565b505050508152505090506000611ff4613007565b600088815260029190910160205260409081902081518083019092528054829060ff16600b81111561202857612028613816565b600b81111561203957612039613816565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b828210156121525760008481526020902060408051808201909152600284029091018054829060ff16600981111561209c5761209c613816565b60098111156120ad576120ad613816565b81526020016001820180546120c19061427d565b80601f01602080910402602001604051908101604052809291908181526020018280546120ed9061427d565b801561213a5780601f1061210f5761010080835404028352916020019161213a565b820191906000526020600020905b81548152906001019060200180831161211d57829003601f168201915b50505050508152505081526020019060010190612062565b505050508152505090506000808a516001600160401b03811115612178576121786138e7565b6040519080825280602002602001820160405280156121ea57816020015b6121d76040805160e0810190915260008082526020820190815260200160008152602001606081526020016060815260200160608152602001606081525090565b8152602001906001900390816121965790505b50905060005b815181101561270057612201613007565b60030160008d838151811061221857612218614267565b6020908102919091018101518252818101929092526040908101600020815160e08101909252805460ff8082168452929391929184019161010090910416600481111561226757612267613816565b600481111561227857612278613816565b8152815460209091019062010000900460ff16601381111561229c5761229c613816565b60138111156122ad576122ad613816565b81526020016001820180546122c19061427d565b80601f01602080910402602001604051908101604052809291908181526020018280546122ed9061427d565b801561233a5780601f1061230f5761010080835404028352916020019161233a565b820191906000526020600020905b81548152906001019060200180831161231d57829003601f168201915b505050505081526020016002820180546123539061427d565b80601f016020809104026020016040519081016040528092919081815260200182805461237f9061427d565b80156123cc5780601f106123a1576101008083540402835291602001916123cc565b820191906000526020600020905b8154815290600101906020018083116123af57829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b828210156124d857600084815260208120604080518082019091529160028086029092019190835b828210156124c55783820180546124389061427d565b80601f01602080910402602001604051908101604052809291908181526020018280546124649061427d565b80156124b15780601f10612486576101008083540402835291602001916124b1565b820191906000526020600020905b81548152906001019060200180831161249457829003601f168201915b505050505081526020019060010190612422565b50505050815260200190600101906123fa565b5050505081526020016004820180546124f09061427d565b80601f016020809104026020016040519081016040528092919081815260200182805461251c9061427d565b80156125695780601f1061253e57610100808354040283529160200191612569565b820191906000526020600020905b81548152906001019060200180831161254c57829003601f168201915b50505050508152505082828151811061258457612584614267565b6020026020010181905250806000036125bd57816000815181106125aa576125aa614267565b6020026020010151604001519250612662565b8260138111156125cf576125cf613816565b8282815181106125e1576125e1614267565b60200260200101516040015160138111156125fe576125fe613816565b146126625760405162461bcd60e51b815260206004820152602e60248201527f5769746e65745265717565737442797465636f6465733a206d69736d6174636860448201526d696e672072657472696576616c7360901b6064820152608401610268565b81818151811061267457612674614267565b60200260200101516000015160ff1688828151811061269557612695614267565b60200260200101515110156126f85760405162461bcd60e51b8152602060048201526024808201527f5769746e65745265717565737442797465636f6465733a206d697373696e67206044820152636172677360e01b6064820152608401610268565b6001016121f0565b5081601381111561271357612713613816565b604051630160730f60e01b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__91630160730f9161274b91908c90600401614889565b602060405180830381865af4158015612768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061278c91906148a8565b975060008173__$6fdcaaf223938e26cbe304f958c2f40bbf$__63b6349ebd90918a8873__$6fdcaaf223938e26cbe304f958c2f40bbf$__631c02d22b90916040518263ffffffff1660e01b81526004016127e791906142ce565b600060405180830381865af4158015612804573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261282c919081019061465e565b604051631c02d22b60e01b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__90631c02d22b90612863908c906004016142ce565b600060405180830381865af4158015612880573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128a8919081019061465e565b8e6040518663ffffffff1660e01b81526004016128c9959493929190614961565b600060405180830381865af41580156128e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261290e919081019061465e565b905061ffff815111156129755760405162461bcd60e51b815260206004820152602960248201527f5769746e65745265717565737442797465636f6465733a20746f6f20686561766044820152681e481c995c5d595cdd60ba1b6064820152608401610268565b80516020820120965086612987613007565b60008881526005919091016020526040902055806129a3613007565b600089815260069190910160205260409020906129c0908261459f565b506040518060e001604052808981526020018c81526020018881526020018460138111156129f0576129f0613816565b81526020018a61ffff1681526020018d81526020018b815250612a11613007565b600089815260049190910160209081526040909120825180519192612a3b92849290910190613514565b50602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690836013811115612a7a57612a7a613816565b0217905550608082015160038201805461ffff9092166101000262ffff001990921691909117905560a08201518051612abd91600484019160209091019061356d565b5060c091909101516005909101556040518781527fe8845fcb11242df46ec5ca06bf7d381c3c6e9cc4f110abacffc933558e8dd67d9060200160405180910390a150505050505b5095945050505050565b6060612b198261302b565b600401805480602002602001604051908101604052809291908181526020018280548015610a7757602002820191906000526020600020905b815481526020019060010190808311612b525750505050509050919050565b600080612b7c613007565b60008481526003919091016020526040902054610100900460ff166004811115612ba857612ba8613816565b03612bc957604051633552703b60e21b815260048101839052602401610268565b612bd1613007565b600092835260030160205250604090205460ff1690565b60606000612bf4613007565b600084815260209190915260409020612c0b613007565b6000858152602091909152604090206001015481548290612c2b9061427d565b80601f0160208091040260200160405190810160405280929190818152602001828054612c579061427d565b8015612ca45780601f10612c7957610100808354040283529160200191612ca4565b820191906000526020600020905b815481529060010190602001808311612c8757829003601f168201915b5050505050915091509150915091565b604080518082019091526000815260606020820152612cd1613007565b6002016000612cdf8461302b565b6005015481526020810191909152604090810160002081518083019092528054829060ff16600b811115612d1557612d15613816565b600b811115612d2657612d26613816565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015611ad95760008481526020902060408051808201909152600284029091018054829060ff166009811115612d8957612d89613816565b6009811115612d9a57612d9a613816565b8152602001600182018054612dae9061427d565b80601f0160208091040260200160405190810160405280929190818152602001828054612dda9061427d565b8015612e275780601f10612dfc57610100808354040283529160200191612e27565b820191906000526020600020905b815481529060010190602001808311612e0a57829003601f168201915b50505050508152505081526020019060010190612d4f565b612e476130f3565b600080516020614b6683398151915280546001600160a01b0319166001600160a01b038316908117909155612e7a611168565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60606000612ebf846109d7565b805160405163acbade1f60e01b81526001600160401b039091166004820152600560f91b602482015290915073__$6fdcaaf223938e26cbe304f958c2f40bbf$__9063acbade1f90604401600060405180830381865af4158015612f27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f4f919081019061465e565b81612f62611bd2368790038701876146cb565b6040516316c0d2a160e11b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__91632d81a54291612f98919060040161471e565b600060405180830381865af4158015612fb5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fdd919081019061465e565b604051602001612fef93929190614aa3565b60405160208183030381529060405291505092915050565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427def90565b6000613035613007565b6000928352600401602052506040902090565b6060600061305583613481565b6001600160401b0381111561306c5761306c6138e7565b6040519080825280601f01601f191660200182016040528015613096576020820181803683370190505b50905060005b81518110156130ec578381602081106130b7576130b7614267565b1a60f81b8282815181106130cd576130cd614267565b60200101906001600160f81b031916908160001a90535060010161309c565b5092915050565b336130fc611168565b6001600160a01b031614610f685760405163118cdaa760e01b8152336004820152602401610268565b600080516020614b6683398151915280546001600160a01b0319169055600061314c611168565b9050806001600160a01b0316826001600160a01b0316146131c257600080516020614b4683398151915280546001600160a01b0319166001600160a01b0384811691821790925560405190918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35b5050565b60005b815181101561325557826001018282815181106131e8576131e8614267565b60209081029190910181015182546001818101855560009485529290932081516002909402018054919390929091839160ff199091169083600981111561323157613231613816565b02179055506020820151600182019061324a908261459f565b5050506001016131c9565b505050565b600060038251101561326e57506000919050565b8151600090600119015b808210156133c857601760fa1b6001600160f81b0319168483815181106132a1576132a1614267565b01602001516001600160f81b0319161480156132ed5750601760fa1b6001600160f81b0319168483600201815181106132dc576132dc614267565b01602001516001600160f81b031916145b801561332a5750600360fc1b6001600160f81b03191684836001018151811061331857613318614267565b01602001516001600160f81b03191610155b80156133675750603960f81b6001600160f81b03191684836001018151811061335557613355614267565b01602001516001600160f81b03191611155b156133bd576000600360fc1b60f81c85846001018151811061338b5761338b614267565b602001015160f81c60f81b60f81c0360010190508360ff168160ff1611156133b1578093505b60038301925050613278565b600190910190613278565b5050919050565b805160209091012090565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040518060a00160405280836000015160ff168152602001603360ff16815260200183602001516001600160401b031681526020018360200151606461344b9190614ae6565b6001600160401b03168152602001836000015160ff1684602001516134709190614b11565b6001600160401b0316905292915050565b60005b6020811015610c415781816020811061349f5761349f614267565b1a60f81b6001600160f81b03191615610c4157600101613484565b828054828255906000526020600020906002028101928215613504579160200282015b828111156135045782516134f490839060026135b4565b50916020019190600201906134dd565b506135109291506135f9565b5090565b828054828255906000526020600020908101928215613561579160200282015b828111156135615782518051613551918491602090910190613616565b5091602001919060010190613534565b5061351092915061365c565b8280548282559060005260206000209081019282156135a8579160200282015b828111156135a857825182559160200191906001019061358d565b50613510929150613679565b82600281019282156135ed579160200282015b828111156135ed57825182906135dd908261459f565b50916020019190600101906135c7565b5061351092915061368e565b8082111561351057600061360d82826136ab565b506002016135f9565b8280548282559060005260206000209081019282156135ed579160200282015b828111156135ed578251829061364c908261459f565b5091602001919060010190613636565b8082111561351057600061367082826136c7565b5060010161365c565b5b80821115613510576000815560010161367a565b808211156135105760006136a282826136e5565b5060010161368e565b5060006136b882826136e5565b50610f689060010160006136e5565b508054600082559060005260206000209081019061101a919061368e565b5080546136f19061427d565b6000825580601f10613701575050565b601f01602090049060005260206000209081019061101a9190613679565b60008060006060848603121561373457600080fd5b505081359360208301359350604090920135919050565b60008151808452602080850194506020840160005b8381101561377c57815187529582019590820190600101613760565b509495945050505050565b602081526000611b28602083018461374b565b6000602082840312156137ac57600080fd5b5035919050565b60005b838110156137ce5781810151838201526020016137b6565b50506000910152565b600081518084526137ef8160208601602086016137b3565b601f01601f19169290920160200192915050565b602081526000611b2860208301846137d7565b634e487b7160e01b600052602160045260246000fd5b600c811061383c5761383c613816565b9052565b600a811061383c5761383c613816565b6000602080835260608301613868828501865161382c565b81850151604080604087015282825180855260808801915060808160051b8901019450858401935060005b818110156138d957607f1989870301835284516138b1878251613840565b8701518688018590526138c6878601826137d7565b9650509386019391860191600101613893565b509398975050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561391f5761391f6138e7565b60405290565b604051601f8201601f191681016001600160401b038111828210171561394d5761394d6138e7565b604052919050565b60006001600160401b0382111561396e5761396e6138e7565b50601f01601f191660200190565b600082601f83011261398d57600080fd5b81356139a061399b82613955565b613925565b8181528460208386010111156139b557600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156139e457600080fd5b81356001600160401b038111156139fa57600080fd5b613a068482850161397c565b949350505050565b6014811061383c5761383c613816565b60208101611b2b8284613a0e565b6001600160a01b038116811461101a57600080fd5b600060208284031215613a5357600080fd5b8135610f3a81613a2c565b60006001600160401b03821115613a7757613a776138e7565b5060051b60200190565b60006020808385031215613a9457600080fd5b82356001600160401b0380821115613aab57600080fd5b81850191506040808388031215613ac157600080fd5b613ac96138fd565b8335600c8110613ad857600080fd5b81528385013583811115613aeb57600080fd5b80850194505087601f850112613b0057600080fd5b8335613b0e61399b82613a5e565b81815260059190911b8501860190868101908a831115613b2d57600080fd5b8787015b83811015613bae57803587811115613b495760008081fd5b8801808d03601f1901871315613b5f5760008081fd5b613b676138fd565b8a820135600a8110613b795760008081fd5b81528188013589811115613b8d5760008081fd5b613b9b8f8d8386010161397c565b828d015250845250918801918801613b31565b509683019690965250979650505050505050565b6005811061383c5761383c613816565b600082825180855260208086019550808260051b8401018186016000805b85811015613c4a57868403601f19018a5282518460408101845b6002811015613c35578782038352613c238285516137d7565b93890193928901929150600101613c0a565b509b87019b9550505091840191600101613bf0565b509198975050505050505050565b6020815260ff825116602082015260006020830151613c7a6040840182613bc2565b506040830151613c8d6060840182613a0e565b50606083015160e06080840152613ca86101008401826137d7565b90506080840151601f19808584030160a0860152613cc683836137d7565b925060a08601519150808584030160c0860152613ce38383613bd2565b925060c08601519150808584030160e086015250613d0182826137d7565b95945050505050565b60008083601f840112613d1c57600080fd5b5081356001600160401b03811115613d3357600080fd5b602083019150836020828501011115613d4b57600080fd5b9250929050565b600082601f830112613d6357600080fd5b81356020613d7361399b83613a5e565b82815260059290921b84018101918181019086841115613d9257600080fd5b8286015b84811015613e305780356001600160401b0380821115613db65760008081fd5b818901915089603f830112613dcb5760008081fd5b613dd36138fd565b80606084018c811115613de65760008081fd5b8885015b81811015613e1e57803585811115613e025760008081fd5b613e108f8c838a010161397c565b855250928901928901613dea565b50508652505050918301918301613d96565b509695505050505050565b60008060008060008060008060a0898b031215613e5757600080fd5b883560058110613e6657600080fd5b975060208901356001600160401b0380821115613e8257600080fd5b613e8e8c838d01613d0a565b909950975060408b0135915080821115613ea757600080fd5b613eb38c838d01613d0a565b909750955060608b0135915080821115613ecc57600080fd5b613ed88c838d01613d52565b945060808b0135915080821115613eee57600080fd5b50613efb8b828c01613d0a565b999c989b5096995094979396929594505050565b60008060208385031215613f2257600080fd5b82356001600160401b03811115613f3857600080fd5b613f4485828601613d0a565b90969095509350505050565b60006040828403121561116257600080fd5b600080600060608486031215613f7757600080fd5b83356001600160401b03811115613f8d57600080fd5b613f9986828701613d0a565b9094509250613fad90508560208601613f50565b90509250925092565b61ffff8116811461101a57600080fd5b8035610c4181613fb6565b600082601f830112613fe257600080fd5b81356020613ff261399b83613a5e565b82815260059290921b8401810191818101908684111561401157600080fd5b8286015b84811015613e305780356001600160401b038082111561403457600080fd5b818901915089603f83011261404857600080fd5b8582013561405861399b82613a5e565b81815260059190911b830160400190878101908c83111561407857600080fd5b604085015b838110156140b15780358581111561409457600080fd5b6140a38f6040838a010161397c565b84525091890191890161407d565b50875250505092840192508301614015565b600080600080600060a086880312156140db57600080fd5b85356001600160401b03808211156140f257600080fd5b818801915088601f83011261410657600080fd5b8135602061411661399b83613a5e565b82815260059290921b8401810191818101908c84111561413557600080fd5b948201945b838610156141535785358252948201949082019061413a565b9950508901359650506040880135945061416f60608901613fc6565b9350608088013591508082111561418557600080fd5b5061419288828901613fd1565b9150509295509295909350565b6040815260006141b260408301856137d7565b90508260208301529392505050565b600080606083850312156141d457600080fd5b823591506141e58460208501613f50565b90509250929050565b600083516142008184602088016137b3565b6101d160f51b908301908152835161421f8160028401602088016137b3565b01600201949350505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115611b2b57611b2b61422b565b81810381811115611b2b57611b2b61422b565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061429157607f821691505b60208210810361116257634e487b7160e01b600052602260045260246000fd5b6000602082840312156142c357600080fd5b8151610f3a81613a2c565b60006020808352606083016142e6828501865161382c565b81850151604080604087015282825180855260808801915060808160051b8901019450858401935060005b818110156138d957607f19898703018352845161432f878251613840565b870151868801859052614344878601826137d7565b9650509386019391860191600101614311565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600082825180855260208086019550808260051b8401018186016000805b85811015613c4a57868403601f19018a5282518460408101845b60028110156143e35787820383526143d18285516137d7565b938901939289019291506001016143b8565b509b87019b955050509184019160010161439e565b614402818a613bc2565b60a06020820152600061441960a08301898b614357565b828103604084015261442c81888a614357565b905082810360608401526144408187614380565b90508281036080840152614455818587614357565b9b9a5050505050505050505050565b60006020828403121561447657600080fd5b5051919050565b60e08152600061449160e083018c8e614357565b82810360208401526144a3818c6137d7565b905082810360408401526144b8818a8c614357565b905082810360608401526144cc81896137d7565b905082810360808401526144e08188613bd2565b905082810360a08401526144f481876137d7565b905082810360c0840152614509818587614357565b9d9c50505050505050505050505050565b602081526000613a06602083018486614357565b60006020828403121561454057600080fd5b815160148110610f3a57600080fd5b601f821115613255576000816000526020600020601f850160051c810160208610156145785750805b601f850160051c820191505b8181101561459757828155600101614584565b505050505050565b81516001600160401b038111156145b8576145b86138e7565b6145cc816145c6845461427d565b8461454f565b602080601f83116001811461460157600084156145e95750858301515b600019600386901b1c1916600185901b178555614597565b600085815260208120601f198616915b8281101561463057888601518255948401946001909101908401614611565b508582101561464e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561467057600080fd5b81516001600160401b0381111561468657600080fd5b8201601f8101841361469757600080fd5b80516146a561399b82613955565b8181528560208385010111156146ba57600080fd5b613d018260208301602086016137b3565b6000604082840312156146dd57600080fd5b6146e56138fd565b823560ff811681146146f657600080fd5b815260208301356001600160401b038116811461471257600080fd5b60208201529392505050565b600060a08201905060ff835116825260ff602084015116602083015260408301516001600160401b038082166040850152806060860151166060850152806080860151166080850152505092915050565b60008551614781818460208a016137b3565b8201848682376000908501908152835161479f8183602088016137b3565b019695505050505050565b8183823760009101908152919050565b60a0815260006147cd60a083018861374b565b6020878185015286604085015261ffff86166060850152838203608085015281855180845282840191506005838260051b8601018489016000805b8581101561487557601f198985038101885283518051808752908a01908a87019080891b88018c01865b8281101561485e57858a830301845261484c8286516137d7565b948e0194938e01939150600101614832565b509a8c019a97505050938901935050600101614808565b50919e9d5050505050505050505050505050565b604081016148978285613a0e565b61ffff831660208301529392505050565b6000602082840312156148ba57600080fd5b8151610f3a81613fb6565b6000828251808552602080860195506005818360051b8501018287016000805b8681101561495257601f1988850381018c5283518051808752908801908887019080891b88018a01865b8281101561493b57858a83030184526149298286516137d7565b948c0194938c0193915060010161490f565b509e8a019e975050509387019350506001016148e5565b50919998505050505050505050565b600060a080830160a0845280895180835260c0925060c08601915060c08160051b8701016020808d0160005b84811015614a475760bf198a8503018652815160e060ff8251168652848201516149b986880182613bc2565b506040808301516149cc82890182613a0e565b505060608083015182828901526149e5838901826137d7565b9250505060808083015187830382890152614a0083826137d7565b92505050898201518682038b880152614a198282614380565b91505088820151915085810389870152614a3381836137d7565b97850197955050509082019060010161498d565b505087820390880152614a5a818c6148c5565b9450505050508281036040840152614a7281876137d7565b90508281036060840152614a8681866137d7565b915050614a99608083018461ffff169052565b9695505050505050565b60008451614ab58184602089016137b3565b845190830190614ac98183602089016137b3565b8451910190614adc8183602088016137b3565b0195945050505050565b6001600160401b03818116838216028082169190828114614b0957614b0961422b565b505092915050565b60006001600160401b0380841680614b3957634e487b7160e01b600052601260045260246000fd5b9216919091049291505056fe673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427ded673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427deea2646970667358221220e8f4139142506b9fb7f52bdff818eb710f627675154c47cab0010b333a5ef03664736f6c63430008190033673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427ded",
  "deployedBytecode": "0x6080604052600436106102135760003560e01c80639f34df1911610118578063b2299677116100a0578063d5f394881161006f578063d5f39488146107c4578063db4c6b21146107f8578063e30c397814610818578063f2fde38b14610843578063f4f07e991461086357610271565b8063b2299677146106ea578063b4ab01a51461071e578063bff852fa14610750578063c0a673611461079657610271565b8063a47bd1a4116100e7578063a47bd1a414610609578063a4a7cecd14610629578063a83e942c14610649578063a9e954b914610669578063adb7c3f71461069d57610271565b80639f34df1914610589578063a0490fa0146105a9578063a09948b0146105c9578063a0e55336146105e957610271565b80636b58960a1161019b57806379ba50971161016a57806379ba5097146104f25780637f412e23146105075780638da5cb5b146105275780639dd487571461053c5780639eb3ab1f1461056957610271565b80636b58960a1461046a5780636ea3ebe41461048a578063715018a6146104aa57806376b78a06146104bf57610271565b80634c729104116101e25780634c729104146103605780635001f3b51461038d57806352d1902d146103d45780635479d9401461041657806354fd4d501461045557610271565b806321ead36f146102b05780632ebf5d5c146102e65780633679f86414610313578063439fab911461034057610271565b366102715760405162461bcd60e51b8152602060048201526024808201527f5769746e65745265717565737442797465636f6465733a206e6f207472616e736044820152636665727360e01b60648201526084015b60405180910390fd5b34801561027d57600080fd5b506102ae6040518060400160405280600f81526020016e1b9bdd081a5b5c1b195b595b9d1959608a1b815250610883565b005b3480156102bc57600080fd5b506102d06102cb36600461371f565b6108ef565b6040516102dd9190613787565b60405180910390f35b3480156102f257600080fd5b5061030661030136600461379a565b6109d7565b6040516102dd9190613803565b34801561031f57600080fd5b5061033361032e36600461379a565b610a83565b6040516102dd9190613850565b34801561034c57600080fd5b506102ae61035b3660046139d2565b610c46565b34801561036c57600080fd5b5061038061037b36600461379a565b610e98565b6040516102dd9190613a1e565b34801561039957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102dd565b3480156103e057600080fd5b506104087f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016102dd565b34801561042257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405190151581526020016102dd565b34801561046157600080fd5b50610306610eb0565b34801561047657600080fd5b50610445610485366004613a41565b610ee0565b34801561049657600080fd5b506104086104a536600461379a565b610f41565b3480156104b657600080fd5b506102ae610f56565b3480156104cb57600080fd5b506104df6104da36600461379a565b610f6a565b60405161ffff90911681526020016102dd565b3480156104fe57600080fd5b506102ae610f88565b34801561051357600080fd5b50610408610522366004613a81565b61101d565b34801561053357600080fd5b506103bc611168565b34801561054857600080fd5b5061055c61055736600461379a565b611184565b6040516102dd9190613c58565b34801561057557600080fd5b50610408610584366004613e3b565b611569565b34801561059557600080fd5b506103336105a436600461379a565b61194e565b3480156105b557600080fd5b506104086105c4366004613f0f565b611ae7565b3480156105d557600080fd5b506103066105e4366004613f62565b611b31565b3480156105f557600080fd5b5061038061060436600461379a565b611c7d565b34801561061557600080fd5b50610408610624366004613f0f565b611cfa565b34801561063557600080fd5b506104086106443660046140c3565b611d49565b34801561065557600080fd5b506102d061066436600461379a565b612b0e565b34801561067557600080fd5b507f00000000000000000000000000000000000000000000000000000000000000003f610408565b3480156106a957600080fd5b506106d17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160e01b031990911681526020016102dd565b3480156106f657600080fd5b507f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427df754610408565b34801561072a57600080fd5b5061073e61073936600461379a565b612b71565b60405160ff90911681526020016102dd565b34801561075c57600080fd5b5060408051808201909152601e81527f5769746e65745265717565737442797465636f6465734e6f53686132353600006020820152610306565b3480156107a257600080fd5b506107b66107b136600461379a565b612be8565b6040516102dd92919061419f565b3480156107d057600080fd5b506103bc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561080457600080fd5b5061033361081336600461379a565b612cb4565b34801561082457600080fd5b50600080516020614b66833981519152546001600160a01b03166103bc565b34801561084f57600080fd5b506102ae61085e366004613a41565b612e3f565b34801561086f57600080fd5b5061030661087e3660046141c1565b612eb2565b60408051808201909152601e81527f5769746e65745265717565737442797465636f6465734e6f53686132353600006020820152816040516020016108c99291906141ee565b60408051601f198184030181529082905262461bcd60e51b825261026891600401613803565b606060006108fb613007565b6000868152602091909152604090206001810154909150808510156109ce57806109258587614241565b1115610938576109358582614254565b93505b836001600160401b03811115610950576109506138e7565b604051908082528060200260200182016040528015610979578160200160208202803683370190505b50925060005b83518110156109cc576002830160006109988884614241565b8152602001908152602001600020548482815181106109b9576109b9614267565b602090810291909101015260010161097f565b505b50509392505050565b60606109e1613007565b60008381526006919091016020526040902080546109fe9061427d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2a9061427d565b8015610a775780601f10610a4c57610100808354040283529160200191610a77565b820191906000526020600020905b815481529060010190602001808311610a5a57829003601f168201915b50505050509050919050565b604080518082019091526000815260606020820152610aa0613007565b600083815260029190910160205260409081902081518083019092528054829060ff16600b811115610ad457610ad4613816565b600b811115610ae557610ae5613816565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015610bfe5760008481526020902060408051808201909152600284029091018054829060ff166009811115610b4857610b48613816565b6009811115610b5957610b59613816565b8152602001600182018054610b6d9061427d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b999061427d565b8015610be65780601f10610bbb57610100808354040283529160200191610be6565b820191906000526020600020905b815481529060010190602001808311610bc957829003601f168201915b50505050508152505081526020019060010190610b0e565b505050915250508051909150600b811115610c1b57610c1b613816565b60ff16600003610c415760405163b020432960e01b815260048101839052602401610268565b919050565b600080516020614b46833981519152546001600160a01b031680610ca75781806020019051810190610c7891906142b1565b600080516020614b4683398151915280546001600160a01b0319166001600160a01b0383161790559050610d0d565b336001600160a01b03821614610d0d5760405162461bcd60e51b815260206004820152602560248201527f5769746e65745265717565737442797465636f6465733a206e6f74207468652060448201526437bbb732b960d91b6064820152608401610268565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dec546001600160a01b031615610df3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dec546001600160a01b031603610df35760405162461bcd60e51b815260206004820152602b60248201527f5769746e65745265717565737442797465636f6465733a20616c72656164792060448201526a1a5b9a5d1a585b1a5e995960aa1b6064820152608401610268565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dec80546001600160a01b0319167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038181169283179093553f9183167fe73e754121f0bad1327816970101955bfffdf53d270ac509d777c25be070d7f6610e7f610eb0565b604051610e8c9190613803565b60405180910390a45050565b6000610ea38261302b565b6003015460ff1692915050565b6060610edb7f0000000000000000000000000000000000000000000000000000000000000000613048565b905090565b600080516020614b46833981519152546000906001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000008015610f3a5750826001600160a01b0316816001600160a01b0316145b9392505050565b6000610f4c8261302b565b6004015492915050565b610f5e6130f3565b610f686000613125565b565b6000610f758261302b565b60030154610100900461ffff1692915050565b3380610fa9600080516020614b66833981519152546001600160a01b031690565b6001600160a01b0316146110115760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610268565b61101a81613125565b50565b6000816040516020016110309190613850565b6040516020818303038152906040528051906020012090506000611052613007565b600083815260029190910160205260409020805490915060ff16600b81111561107d5761107d613816565b60ff1615801561108f57506001810154155b156111625760405163daf4b0ef60e01b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__9063daf4b0ef906110cb9086906004016142ce565b60006040518083038186803b1580156110e357600080fd5b505af41580156110f7573d6000803e3d6000fd5b50508451835490925083915060ff1916600183600b81111561111b5761111b613816565b021790555061112e8184602001516131c6565b6040518281527feb8b5415ec9648a9403c5cce90965dfa18af4388f474323741018a06e231be829060200160405180910390a15b50919050565b600080516020614b46833981519152546001600160a01b031690565b6111c56040805160e0810190915260008082526020820190815260200160008152602001606081526020016060815260200160608152602001606081525090565b6111cd613007565b60008381526003919091016020908152604091829020825160e08101909352805460ff8082168552919284019161010090910416600481111561121257611212613816565b600481111561122357611223613816565b8152815460209091019062010000900460ff16601381111561124757611247613816565b601381111561125857611258613816565b815260200160018201805461126c9061427d565b80601f01602080910402602001604051908101604052809291908181526020018280546112989061427d565b80156112e55780601f106112ba576101008083540402835291602001916112e5565b820191906000526020600020905b8154815290600101906020018083116112c857829003601f168201915b505050505081526020016002820180546112fe9061427d565b80601f016020809104026020016040519081016040528092919081815260200182805461132a9061427d565b80156113775780601f1061134c57610100808354040283529160200191611377565b820191906000526020600020905b81548152906001019060200180831161135a57829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b8282101561148357600084815260208120604080518082019091529160028086029092019190835b828210156114705783820180546113e39061427d565b80601f016020809104026020016040519081016040528092919081815260200182805461140f9061427d565b801561145c5780601f106114315761010080835404028352916020019161145c565b820191906000526020600020905b81548152906001019060200180831161143f57829003601f168201915b5050505050815260200190600101906113cd565b50505050815260200190600101906113a5565b50505050815260200160048201805461149b9061427d565b80601f01602080910402602001604051908101604052809291908181526020018280546114c79061427d565b80156115145780601f106114e957610100808354040283529160200191611514565b820191906000526020600020905b8154815290600101906020018083116114f757829003601f168201915b50505050508152505090506000600481111561153257611532613816565b8160200151600481111561154857611548613816565b03610c4157604051633552703b60e21b815260048101839052602401610268565b600088600481111561157d5761157d613816565b604051631746472760e01b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__916317464727916115c191908c908c908c908c908c908c908c906004016143f8565b602060405180830381865af41580156115de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116029190614464565b9050600061160e613007565b60008381526003919091016020526040902054610100900460ff16600481111561163a5761163a613816565b03611942576040518060e001604052806116cf8a8a604051806040016040528060018152602001600160fd1b8152508b8b604051806040016040528060018152602001600160fd1b8152508c604051806040016040528060018152602001600160fd1b8152508d8d6040516020016116bb9a9998979695949392919061447d565b60405160208183030381529060405261325a565b60ff1681526020018a60048111156116e9576116e9613816565b815260200173__$6fdcaaf223938e26cbe304f958c2f40bbf$__63f3106f7886866040518363ffffffff1660e01b815260040161172792919061451a565b602060405180830381865af4158015611744573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611768919061452e565b601381111561177957611779613816565b815260200189898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8a0181900481028201810190925288815291810191908990899081908401838280828437600092019190915250505090825250602080820187905260408051601f870183900483028101830182528681529201919086908690819084018382808284376000920191909152505050915250611838613007565b6000838152600391909101602090815260409091208251815460ff90911660ff19821681178355928401519192839161ffff19161761010083600481111561188257611882613816565b021790555060408201518154829062ff00001916620100008360138111156118ac576118ac613816565b0217905550606082015160018201906118c5908261459f565b50608082015160028201906118da908261459f565b5060a082015180516118f69160038401916020909101906134ba565b5060c0820151600482019061190b908261459f565b50506040518281527fd4d6341509dbdeb3a349aa77cc95076376f8e1c84fd3d27e0081424b01909272915060200160405180910390a15b98975050505050505050565b60408051808201909152600081526060602082015261196b613007565b60020160006119798461302b565b6001015481526020810191909152604090810160002081518083019092528054829060ff16600b8111156119af576119af613816565b600b8111156119c0576119c0613816565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015611ad95760008481526020902060408051808201909152600284029091018054829060ff166009811115611a2357611a23613816565b6009811115611a3457611a34613816565b8152602001600182018054611a489061427d565b80601f0160208091040260200160405190810160405280929190818152602001828054611a749061427d565b8015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b505050505081525050815260200190600101906119e9565b505050915250909392505050565b6000611b2883838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506133cf92505050565b90505b92915050565b60405163acbade1f60e01b81526001600160401b0383166004820152600560f91b602482015260609073__$6fdcaaf223938e26cbe304f958c2f40bbf$__9063acbade1f90604401600060405180830381865af4158015611b96573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611bbe919081019061465e565b8484611bd7611bd2368790038701876146cb565b6133da565b6040516316c0d2a160e11b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__91632d81a54291611c0d919060040161471e565b600060405180830381865af4158015611c2a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c52919081019061465e565b604051602001611c65949392919061476f565b60405160208183030381529060405290509392505050565b600080611c88613007565b60008481526003919091016020526040902054610100900460ff166004811115611cb457611cb4613816565b03611cd557604051633552703b60e21b815260048101839052602401610268565b611cdd613007565b600092835260030160205250604090205462010000900460ff1690565b6000611d04613007565b60010160008484604051602001611d1c9291906147aa565b60405160208183030381529060405280519060200120815260200190815260200160002054905092915050565b6000808686868686604051602001611d659594939291906147ba565b604051602081830303815290604052805190602001209050611d85613007565b600082815260059190910160205260408120549250611da2613007565b6000838152600591909101602052604090205403612b04578651600003611e195760405162461bcd60e51b815260206004820152602560248201527f5769746e65745265717565737442797465636f6465733a206e6f2072657472696044820152646576616c7360d81b6064820152608401610268565b8251875114611e785760405162461bcd60e51b815260206004820152602560248201527f5769746e65745265717565737442797465636f6465733a2061726773206d69736044820152640dac2e8c6d60db1b6064820152608401610268565b6000611e82613007565b600088815260029190910160205260409081902081518083019092528054829060ff16600b811115611eb657611eb6613816565b600b811115611ec757611ec7613816565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015611fe05760008481526020902060408051808201909152600284029091018054829060ff166009811115611f2a57611f2a613816565b6009811115611f3b57611f3b613816565b8152602001600182018054611f4f9061427d565b80601f0160208091040260200160405190810160405280929190818152602001828054611f7b9061427d565b8015611fc85780601f10611f9d57610100808354040283529160200191611fc8565b820191906000526020600020905b815481529060010190602001808311611fab57829003601f168201915b50505050508152505081526020019060010190611ef0565b505050508152505090506000611ff4613007565b600088815260029190910160205260409081902081518083019092528054829060ff16600b81111561202857612028613816565b600b81111561203957612039613816565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b828210156121525760008481526020902060408051808201909152600284029091018054829060ff16600981111561209c5761209c613816565b60098111156120ad576120ad613816565b81526020016001820180546120c19061427d565b80601f01602080910402602001604051908101604052809291908181526020018280546120ed9061427d565b801561213a5780601f1061210f5761010080835404028352916020019161213a565b820191906000526020600020905b81548152906001019060200180831161211d57829003601f168201915b50505050508152505081526020019060010190612062565b505050508152505090506000808a516001600160401b03811115612178576121786138e7565b6040519080825280602002602001820160405280156121ea57816020015b6121d76040805160e0810190915260008082526020820190815260200160008152602001606081526020016060815260200160608152602001606081525090565b8152602001906001900390816121965790505b50905060005b815181101561270057612201613007565b60030160008d838151811061221857612218614267565b6020908102919091018101518252818101929092526040908101600020815160e08101909252805460ff8082168452929391929184019161010090910416600481111561226757612267613816565b600481111561227857612278613816565b8152815460209091019062010000900460ff16601381111561229c5761229c613816565b60138111156122ad576122ad613816565b81526020016001820180546122c19061427d565b80601f01602080910402602001604051908101604052809291908181526020018280546122ed9061427d565b801561233a5780601f1061230f5761010080835404028352916020019161233a565b820191906000526020600020905b81548152906001019060200180831161231d57829003601f168201915b505050505081526020016002820180546123539061427d565b80601f016020809104026020016040519081016040528092919081815260200182805461237f9061427d565b80156123cc5780601f106123a1576101008083540402835291602001916123cc565b820191906000526020600020905b8154815290600101906020018083116123af57829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b828210156124d857600084815260208120604080518082019091529160028086029092019190835b828210156124c55783820180546124389061427d565b80601f01602080910402602001604051908101604052809291908181526020018280546124649061427d565b80156124b15780601f10612486576101008083540402835291602001916124b1565b820191906000526020600020905b81548152906001019060200180831161249457829003601f168201915b505050505081526020019060010190612422565b50505050815260200190600101906123fa565b5050505081526020016004820180546124f09061427d565b80601f016020809104026020016040519081016040528092919081815260200182805461251c9061427d565b80156125695780601f1061253e57610100808354040283529160200191612569565b820191906000526020600020905b81548152906001019060200180831161254c57829003601f168201915b50505050508152505082828151811061258457612584614267565b6020026020010181905250806000036125bd57816000815181106125aa576125aa614267565b6020026020010151604001519250612662565b8260138111156125cf576125cf613816565b8282815181106125e1576125e1614267565b60200260200101516040015160138111156125fe576125fe613816565b146126625760405162461bcd60e51b815260206004820152602e60248201527f5769746e65745265717565737442797465636f6465733a206d69736d6174636860448201526d696e672072657472696576616c7360901b6064820152608401610268565b81818151811061267457612674614267565b60200260200101516000015160ff1688828151811061269557612695614267565b60200260200101515110156126f85760405162461bcd60e51b8152602060048201526024808201527f5769746e65745265717565737442797465636f6465733a206d697373696e67206044820152636172677360e01b6064820152608401610268565b6001016121f0565b5081601381111561271357612713613816565b604051630160730f60e01b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__91630160730f9161274b91908c90600401614889565b602060405180830381865af4158015612768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061278c91906148a8565b975060008173__$6fdcaaf223938e26cbe304f958c2f40bbf$__63b6349ebd90918a8873__$6fdcaaf223938e26cbe304f958c2f40bbf$__631c02d22b90916040518263ffffffff1660e01b81526004016127e791906142ce565b600060405180830381865af4158015612804573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261282c919081019061465e565b604051631c02d22b60e01b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__90631c02d22b90612863908c906004016142ce565b600060405180830381865af4158015612880573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128a8919081019061465e565b8e6040518663ffffffff1660e01b81526004016128c9959493929190614961565b600060405180830381865af41580156128e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261290e919081019061465e565b905061ffff815111156129755760405162461bcd60e51b815260206004820152602960248201527f5769746e65745265717565737442797465636f6465733a20746f6f20686561766044820152681e481c995c5d595cdd60ba1b6064820152608401610268565b80516020820120965086612987613007565b60008881526005919091016020526040902055806129a3613007565b600089815260069190910160205260409020906129c0908261459f565b506040518060e001604052808981526020018c81526020018881526020018460138111156129f0576129f0613816565b81526020018a61ffff1681526020018d81526020018b815250612a11613007565b600089815260049190910160209081526040909120825180519192612a3b92849290910190613514565b50602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690836013811115612a7a57612a7a613816565b0217905550608082015160038201805461ffff9092166101000262ffff001990921691909117905560a08201518051612abd91600484019160209091019061356d565b5060c091909101516005909101556040518781527fe8845fcb11242df46ec5ca06bf7d381c3c6e9cc4f110abacffc933558e8dd67d9060200160405180910390a150505050505b5095945050505050565b6060612b198261302b565b600401805480602002602001604051908101604052809291908181526020018280548015610a7757602002820191906000526020600020905b815481526020019060010190808311612b525750505050509050919050565b600080612b7c613007565b60008481526003919091016020526040902054610100900460ff166004811115612ba857612ba8613816565b03612bc957604051633552703b60e21b815260048101839052602401610268565b612bd1613007565b600092835260030160205250604090205460ff1690565b60606000612bf4613007565b600084815260209190915260409020612c0b613007565b6000858152602091909152604090206001015481548290612c2b9061427d565b80601f0160208091040260200160405190810160405280929190818152602001828054612c579061427d565b8015612ca45780601f10612c7957610100808354040283529160200191612ca4565b820191906000526020600020905b815481529060010190602001808311612c8757829003601f168201915b5050505050915091509150915091565b604080518082019091526000815260606020820152612cd1613007565b6002016000612cdf8461302b565b6005015481526020810191909152604090810160002081518083019092528054829060ff16600b811115612d1557612d15613816565b600b811115612d2657612d26613816565b815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015611ad95760008481526020902060408051808201909152600284029091018054829060ff166009811115612d8957612d89613816565b6009811115612d9a57612d9a613816565b8152602001600182018054612dae9061427d565b80601f0160208091040260200160405190810160405280929190818152602001828054612dda9061427d565b8015612e275780601f10612dfc57610100808354040283529160200191612e27565b820191906000526020600020905b815481529060010190602001808311612e0a57829003601f168201915b50505050508152505081526020019060010190612d4f565b612e476130f3565b600080516020614b6683398151915280546001600160a01b0319166001600160a01b038316908117909155612e7a611168565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60606000612ebf846109d7565b805160405163acbade1f60e01b81526001600160401b039091166004820152600560f91b602482015290915073__$6fdcaaf223938e26cbe304f958c2f40bbf$__9063acbade1f90604401600060405180830381865af4158015612f27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f4f919081019061465e565b81612f62611bd2368790038701876146cb565b6040516316c0d2a160e11b815273__$6fdcaaf223938e26cbe304f958c2f40bbf$__91632d81a54291612f98919060040161471e565b600060405180830381865af4158015612fb5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fdd919081019061465e565b604051602001612fef93929190614aa3565b60405160208183030381529060405291505092915050565b7f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427def90565b6000613035613007565b6000928352600401602052506040902090565b6060600061305583613481565b6001600160401b0381111561306c5761306c6138e7565b6040519080825280601f01601f191660200182016040528015613096576020820181803683370190505b50905060005b81518110156130ec578381602081106130b7576130b7614267565b1a60f81b8282815181106130cd576130cd614267565b60200101906001600160f81b031916908160001a90535060010161309c565b5092915050565b336130fc611168565b6001600160a01b031614610f685760405163118cdaa760e01b8152336004820152602401610268565b600080516020614b6683398151915280546001600160a01b0319169055600061314c611168565b9050806001600160a01b0316826001600160a01b0316146131c257600080516020614b4683398151915280546001600160a01b0319166001600160a01b0384811691821790925560405190918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35b5050565b60005b815181101561325557826001018282815181106131e8576131e8614267565b60209081029190910181015182546001818101855560009485529290932081516002909402018054919390929091839160ff199091169083600981111561323157613231613816565b02179055506020820151600182019061324a908261459f565b5050506001016131c9565b505050565b600060038251101561326e57506000919050565b8151600090600119015b808210156133c857601760fa1b6001600160f81b0319168483815181106132a1576132a1614267565b01602001516001600160f81b0319161480156132ed5750601760fa1b6001600160f81b0319168483600201815181106132dc576132dc614267565b01602001516001600160f81b031916145b801561332a5750600360fc1b6001600160f81b03191684836001018151811061331857613318614267565b01602001516001600160f81b03191610155b80156133675750603960f81b6001600160f81b03191684836001018151811061335557613355614267565b01602001516001600160f81b03191611155b156133bd576000600360fc1b60f81c85846001018151811061338b5761338b614267565b602001015160f81c60f81b60f81c0360010190508360ff168160ff1611156133b1578093505b60038301925050613278565b600190910190613278565b5050919050565b805160209091012090565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040518060a00160405280836000015160ff168152602001603360ff16815260200183602001516001600160401b031681526020018360200151606461344b9190614ae6565b6001600160401b03168152602001836000015160ff1684602001516134709190614b11565b6001600160401b0316905292915050565b60005b6020811015610c415781816020811061349f5761349f614267565b1a60f81b6001600160f81b03191615610c4157600101613484565b828054828255906000526020600020906002028101928215613504579160200282015b828111156135045782516134f490839060026135b4565b50916020019190600201906134dd565b506135109291506135f9565b5090565b828054828255906000526020600020908101928215613561579160200282015b828111156135615782518051613551918491602090910190613616565b5091602001919060010190613534565b5061351092915061365c565b8280548282559060005260206000209081019282156135a8579160200282015b828111156135a857825182559160200191906001019061358d565b50613510929150613679565b82600281019282156135ed579160200282015b828111156135ed57825182906135dd908261459f565b50916020019190600101906135c7565b5061351092915061368e565b8082111561351057600061360d82826136ab565b506002016135f9565b8280548282559060005260206000209081019282156135ed579160200282015b828111156135ed578251829061364c908261459f565b5091602001919060010190613636565b8082111561351057600061367082826136c7565b5060010161365c565b5b80821115613510576000815560010161367a565b808211156135105760006136a282826136e5565b5060010161368e565b5060006136b882826136e5565b50610f689060010160006136e5565b508054600082559060005260206000209081019061101a919061368e565b5080546136f19061427d565b6000825580601f10613701575050565b601f01602090049060005260206000209081019061101a9190613679565b60008060006060848603121561373457600080fd5b505081359360208301359350604090920135919050565b60008151808452602080850194506020840160005b8381101561377c57815187529582019590820190600101613760565b509495945050505050565b602081526000611b28602083018461374b565b6000602082840312156137ac57600080fd5b5035919050565b60005b838110156137ce5781810151838201526020016137b6565b50506000910152565b600081518084526137ef8160208601602086016137b3565b601f01601f19169290920160200192915050565b602081526000611b2860208301846137d7565b634e487b7160e01b600052602160045260246000fd5b600c811061383c5761383c613816565b9052565b600a811061383c5761383c613816565b6000602080835260608301613868828501865161382c565b81850151604080604087015282825180855260808801915060808160051b8901019450858401935060005b818110156138d957607f1989870301835284516138b1878251613840565b8701518688018590526138c6878601826137d7565b9650509386019391860191600101613893565b509398975050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561391f5761391f6138e7565b60405290565b604051601f8201601f191681016001600160401b038111828210171561394d5761394d6138e7565b604052919050565b60006001600160401b0382111561396e5761396e6138e7565b50601f01601f191660200190565b600082601f83011261398d57600080fd5b81356139a061399b82613955565b613925565b8181528460208386010111156139b557600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156139e457600080fd5b81356001600160401b038111156139fa57600080fd5b613a068482850161397c565b949350505050565b6014811061383c5761383c613816565b60208101611b2b8284613a0e565b6001600160a01b038116811461101a57600080fd5b600060208284031215613a5357600080fd5b8135610f3a81613a2c565b60006001600160401b03821115613a7757613a776138e7565b5060051b60200190565b60006020808385031215613a9457600080fd5b82356001600160401b0380821115613aab57600080fd5b81850191506040808388031215613ac157600080fd5b613ac96138fd565b8335600c8110613ad857600080fd5b81528385013583811115613aeb57600080fd5b80850194505087601f850112613b0057600080fd5b8335613b0e61399b82613a5e565b81815260059190911b8501860190868101908a831115613b2d57600080fd5b8787015b83811015613bae57803587811115613b495760008081fd5b8801808d03601f1901871315613b5f5760008081fd5b613b676138fd565b8a820135600a8110613b795760008081fd5b81528188013589811115613b8d5760008081fd5b613b9b8f8d8386010161397c565b828d015250845250918801918801613b31565b509683019690965250979650505050505050565b6005811061383c5761383c613816565b600082825180855260208086019550808260051b8401018186016000805b85811015613c4a57868403601f19018a5282518460408101845b6002811015613c35578782038352613c238285516137d7565b93890193928901929150600101613c0a565b509b87019b9550505091840191600101613bf0565b509198975050505050505050565b6020815260ff825116602082015260006020830151613c7a6040840182613bc2565b506040830151613c8d6060840182613a0e565b50606083015160e06080840152613ca86101008401826137d7565b90506080840151601f19808584030160a0860152613cc683836137d7565b925060a08601519150808584030160c0860152613ce38383613bd2565b925060c08601519150808584030160e086015250613d0182826137d7565b95945050505050565b60008083601f840112613d1c57600080fd5b5081356001600160401b03811115613d3357600080fd5b602083019150836020828501011115613d4b57600080fd5b9250929050565b600082601f830112613d6357600080fd5b81356020613d7361399b83613a5e565b82815260059290921b84018101918181019086841115613d9257600080fd5b8286015b84811015613e305780356001600160401b0380821115613db65760008081fd5b818901915089603f830112613dcb5760008081fd5b613dd36138fd565b80606084018c811115613de65760008081fd5b8885015b81811015613e1e57803585811115613e025760008081fd5b613e108f8c838a010161397c565b855250928901928901613dea565b50508652505050918301918301613d96565b509695505050505050565b60008060008060008060008060a0898b031215613e5757600080fd5b883560058110613e6657600080fd5b975060208901356001600160401b0380821115613e8257600080fd5b613e8e8c838d01613d0a565b909950975060408b0135915080821115613ea757600080fd5b613eb38c838d01613d0a565b909750955060608b0135915080821115613ecc57600080fd5b613ed88c838d01613d52565b945060808b0135915080821115613eee57600080fd5b50613efb8b828c01613d0a565b999c989b5096995094979396929594505050565b60008060208385031215613f2257600080fd5b82356001600160401b03811115613f3857600080fd5b613f4485828601613d0a565b90969095509350505050565b60006040828403121561116257600080fd5b600080600060608486031215613f7757600080fd5b83356001600160401b03811115613f8d57600080fd5b613f9986828701613d0a565b9094509250613fad90508560208601613f50565b90509250925092565b61ffff8116811461101a57600080fd5b8035610c4181613fb6565b600082601f830112613fe257600080fd5b81356020613ff261399b83613a5e565b82815260059290921b8401810191818101908684111561401157600080fd5b8286015b84811015613e305780356001600160401b038082111561403457600080fd5b818901915089603f83011261404857600080fd5b8582013561405861399b82613a5e565b81815260059190911b830160400190878101908c83111561407857600080fd5b604085015b838110156140b15780358581111561409457600080fd5b6140a38f6040838a010161397c565b84525091890191890161407d565b50875250505092840192508301614015565b600080600080600060a086880312156140db57600080fd5b85356001600160401b03808211156140f257600080fd5b818801915088601f83011261410657600080fd5b8135602061411661399b83613a5e565b82815260059290921b8401810191818101908c84111561413557600080fd5b948201945b838610156141535785358252948201949082019061413a565b9950508901359650506040880135945061416f60608901613fc6565b9350608088013591508082111561418557600080fd5b5061419288828901613fd1565b9150509295509295909350565b6040815260006141b260408301856137d7565b90508260208301529392505050565b600080606083850312156141d457600080fd5b823591506141e58460208501613f50565b90509250929050565b600083516142008184602088016137b3565b6101d160f51b908301908152835161421f8160028401602088016137b3565b01600201949350505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115611b2b57611b2b61422b565b81810381811115611b2b57611b2b61422b565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061429157607f821691505b60208210810361116257634e487b7160e01b600052602260045260246000fd5b6000602082840312156142c357600080fd5b8151610f3a81613a2c565b60006020808352606083016142e6828501865161382c565b81850151604080604087015282825180855260808801915060808160051b8901019450858401935060005b818110156138d957607f19898703018352845161432f878251613840565b870151868801859052614344878601826137d7565b9650509386019391860191600101614311565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600082825180855260208086019550808260051b8401018186016000805b85811015613c4a57868403601f19018a5282518460408101845b60028110156143e35787820383526143d18285516137d7565b938901939289019291506001016143b8565b509b87019b955050509184019160010161439e565b614402818a613bc2565b60a06020820152600061441960a08301898b614357565b828103604084015261442c81888a614357565b905082810360608401526144408187614380565b90508281036080840152614455818587614357565b9b9a5050505050505050505050565b60006020828403121561447657600080fd5b5051919050565b60e08152600061449160e083018c8e614357565b82810360208401526144a3818c6137d7565b905082810360408401526144b8818a8c614357565b905082810360608401526144cc81896137d7565b905082810360808401526144e08188613bd2565b905082810360a08401526144f481876137d7565b905082810360c0840152614509818587614357565b9d9c50505050505050505050505050565b602081526000613a06602083018486614357565b60006020828403121561454057600080fd5b815160148110610f3a57600080fd5b601f821115613255576000816000526020600020601f850160051c810160208610156145785750805b601f850160051c820191505b8181101561459757828155600101614584565b505050505050565b81516001600160401b038111156145b8576145b86138e7565b6145cc816145c6845461427d565b8461454f565b602080601f83116001811461460157600084156145e95750858301515b600019600386901b1c1916600185901b178555614597565b600085815260208120601f198616915b8281101561463057888601518255948401946001909101908401614611565b508582101561464e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561467057600080fd5b81516001600160401b0381111561468657600080fd5b8201601f8101841361469757600080fd5b80516146a561399b82613955565b8181528560208385010111156146ba57600080fd5b613d018260208301602086016137b3565b6000604082840312156146dd57600080fd5b6146e56138fd565b823560ff811681146146f657600080fd5b815260208301356001600160401b038116811461471257600080fd5b60208201529392505050565b600060a08201905060ff835116825260ff602084015116602083015260408301516001600160401b038082166040850152806060860151166060850152806080860151166080850152505092915050565b60008551614781818460208a016137b3565b8201848682376000908501908152835161479f8183602088016137b3565b019695505050505050565b8183823760009101908152919050565b60a0815260006147cd60a083018861374b565b6020878185015286604085015261ffff86166060850152838203608085015281855180845282840191506005838260051b8601018489016000805b8581101561487557601f198985038101885283518051808752908a01908a87019080891b88018c01865b8281101561485e57858a830301845261484c8286516137d7565b948e0194938e01939150600101614832565b509a8c019a97505050938901935050600101614808565b50919e9d5050505050505050505050505050565b604081016148978285613a0e565b61ffff831660208301529392505050565b6000602082840312156148ba57600080fd5b8151610f3a81613fb6565b6000828251808552602080860195506005818360051b8501018287016000805b8681101561495257601f1988850381018c5283518051808752908801908887019080891b88018a01865b8281101561493b57858a83030184526149298286516137d7565b948c0194938c0193915060010161490f565b509e8a019e975050509387019350506001016148e5565b50919998505050505050505050565b600060a080830160a0845280895180835260c0925060c08601915060c08160051b8701016020808d0160005b84811015614a475760bf198a8503018652815160e060ff8251168652848201516149b986880182613bc2565b506040808301516149cc82890182613a0e565b505060608083015182828901526149e5838901826137d7565b9250505060808083015187830382890152614a0083826137d7565b92505050898201518682038b880152614a198282614380565b91505088820151915085810389870152614a3381836137d7565b97850197955050509082019060010161498d565b505087820390880152614a5a818c6148c5565b9450505050508281036040840152614a7281876137d7565b90508281036060840152614a8681866137d7565b915050614a99608083018461ffff169052565b9695505050505050565b60008451614ab58184602089016137b3565b845190830190614ac98183602089016137b3565b8451910190614adc8183602088016137b3565b0195945050505050565b6001600160401b03818116838216028082169190828114614b0957614b0961422b565b505092915050565b60006001600160401b0380841680614b3957634e487b7160e01b600052601260045260246000fd5b9216919091049291505056fe673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427ded673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427deea2646970667358221220e8f4139142506b9fb7f52bdff818eb710f627675154c47cab0010b333a5ef03664736f6c63430008190033",
  "linkReferences": {
    "contracts/libs/WitnetEncodingLib.sol": {
      "WitnetEncodingLib": [
        {
          "length": 20,
          "start": 4920
        },
        {
          "length": 20,
          "start": 6177
        },
        {
          "length": 20,
          "start": 6533
        },
        {
          "length": 20,
          "start": 7665
        },
        {
          "length": 20,
          "start": 7803
        },
        {
          "length": 20,
          "start": 10679
        },
        {
          "length": 20,
          "start": 10792
        },
        {
          "length": 20,
          "start": 10822
        },
        {
          "length": 20,
          "start": 10960
        },
        {
          "length": 20,
          "start": 12674
        },
        {
          "length": 20,
          "start": 12806
        }
      ]
    }
  },
  "deployedLinkReferences": {
    "contracts/libs/WitnetEncodingLib.sol": {
      "WitnetEncodingLib": [
        {
          "length": 20,
          "start": 4259
        },
        {
          "length": 20,
          "start": 5516
        },
        {
          "length": 20,
          "start": 5872
        },
        {
          "length": 20,
          "start": 7004
        },
        {
          "length": 20,
          "start": 7142
        },
        {
          "length": 20,
          "start": 10018
        },
        {
          "length": 20,
          "start": 10131
        },
        {
          "length": 20,
          "start": 10161
        },
        {
          "length": 20,
          "start": 10299
        },
        {
          "length": 20,
          "start": 12013
        },
        {
          "length": 20,
          "start": 12145
        }
      ]
    }
  }
}
