{
  "contractName": "WitnetRandomnessV2",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract WitnetOracle",
          "name": "_witnet",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_operator",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "EmptyBuffer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "range",
          "type": "uint256"
        }
      ],
      "name": "IndexOutOfBounds",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "length",
          "type": "uint256"
        }
      ],
      "name": "InvalidLengthEncoding",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "OwnableInvalidOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "OwnableUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "read",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "expected",
          "type": "uint256"
        }
      ],
      "name": "UnexpectedMajorType",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "unexpected",
          "type": "uint256"
        }
      ],
      "name": "UnsupportedMajorType",
      "type": "error"
    },
    {
      "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": false,
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmTxGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmRandomizeFee",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "witnetQueryId",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "committeeSize",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "witnessingFeeNanoWit",
              "type": "uint64"
            }
          ],
          "indexed": false,
          "internalType": "struct WitnetV2.RadonSLA",
          "name": "witnetQuerySLA",
          "type": "tuple"
        }
      ],
      "name": "Randomizing",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmReward",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "committeeSize",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "witnessingFeeNanoWit",
              "type": "uint64"
            }
          ],
          "indexed": false,
          "internalType": "struct WitnetV2.RadonSLA",
          "name": "witnetSLA",
          "type": "tuple"
        }
      ],
      "name": "WitnetQuery",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        }
      ],
      "name": "WitnetQueryResponse",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmCallbackGas",
          "type": "uint256"
        }
      ],
      "name": "WitnetQueryResponseDelivered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "resultCborBytes",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmCallbackActualGas",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "evmCallbackRevertReason",
          "type": "string"
        }
      ],
      "name": "WitnetQueryResponseDeliveryFailed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmReward",
          "type": "uint256"
        }
      ],
      "name": "WitnetQueryRewardUpgraded",
      "type": "event"
    },
    {
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "witnetRadHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    },
    {
      "inputs": [],
      "name": "class",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "specs",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "witnet",
      "outputs": [
        {
          "internalType": "contract WitnetOracle",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_evmGasPrice",
          "type": "uint256"
        }
      ],
      "name": "estimateRandomizeFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "fetchRandomnessAfter",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "fetchRandomnessAfterProof",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "_witnetResultRandomness",
          "type": "bytes32"
        },
        {
          "internalType": "uint64",
          "name": "_witnetResultTimestamp",
          "type": "uint64"
        },
        {
          "internalType": "bytes32",
          "name": "_witnetResultTallyHash",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_witnetResultFinalityBlock",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getLastRandomizeBlock",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getRandomizeData",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_prevRandomizeBlock",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_nextRandomizeBlock",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getRandomizeNextBlock",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getRandomizePrevBlock",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getRandomizeStatus",
      "outputs": [
        {
          "internalType": "enum WitnetV2.ResponseStatus",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "isRandomized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_range",
          "type": "uint32"
        },
        {
          "internalType": "uint256",
          "name": "_nonce",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "random",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "randomize",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_evmRandomizeFee",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "witnetQuerySLA",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "committeeSize",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "witnessingFeeNanoWit",
              "type": "uint64"
            }
          ],
          "internalType": "struct WitnetV2.RadonSLA",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "acceptOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "baseFeeOverheadPercentage",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "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": [
        {
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "_baseFeeOverheadPercentage",
          "type": "uint16"
        }
      ],
      "name": "settleBaseFeeOverheadPercentage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "committeeSize",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "witnessingFeeNanoWit",
              "type": "uint64"
            }
          ],
          "internalType": "struct WitnetV2.RadonSLA",
          "name": "_witnetQuerySLA",
          "type": "tuple"
        }
      ],
      "name": "settleWitnetQuerySLA",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract WitnetOracle\",\"name\":\"_witnet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EmptyBuffer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"range\",\"type\":\"uint256\"}],\"name\":\"IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidLengthEncoding\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"read\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"}],\"name\":\"UnexpectedMajorType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"unexpected\",\"type\":\"uint256\"}],\"name\":\"UnsupportedMajorType\",\"type\":\"error\"},{\"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\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmTxGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmRandomizeFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"witnetQueryId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"committeeSize\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"witnessingFeeNanoWit\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct WitnetV2.RadonSLA\",\"name\":\"witnetQuerySLA\",\"type\":\"tuple\"}],\"name\":\"Randomizing\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmReward\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"committeeSize\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"witnessingFeeNanoWit\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct WitnetV2.RadonSLA\",\"name\":\"witnetSLA\",\"type\":\"tuple\"}],\"name\":\"WitnetQuery\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"}],\"name\":\"WitnetQueryResponse\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmCallbackGas\",\"type\":\"uint256\"}],\"name\":\"WitnetQueryResponseDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmCallbackActualGas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"evmCallbackRevertReason\",\"type\":\"string\"}],\"name\":\"WitnetQueryResponseDeliveryFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmReward\",\"type\":\"uint256\"}],\"name\":\"WitnetQueryRewardUpgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseFeeOverheadPercentage\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"class\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_evmGasPrice\",\"type\":\"uint256\"}],\"name\":\"estimateRandomizeFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"fetchRandomnessAfter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"fetchRandomnessAfterProof\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_witnetResultRandomness\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_witnetResultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_witnetResultTallyHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_witnetResultFinalityBlock\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastRandomizeBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getRandomizeData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_prevRandomizeBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nextRandomizeBlock\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getRandomizeNextBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getRandomizePrevBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getRandomizeStatus\",\"outputs\":[{\"internalType\":\"enum WitnetV2.ResponseStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"isRandomized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[{\"internalType\":\"uint32\",\"name\":\"_range\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"random\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_evmRandomizeFee\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_baseFeeOverheadPercentage\",\"type\":\"uint16\"}],\"name\":\"settleBaseFeeOverheadPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"committeeSize\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"witnessingFeeNanoWit\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetV2.RadonSLA\",\"name\":\"_witnetQuerySLA\",\"type\":\"tuple\"}],\"name\":\"settleWitnetQuerySLA\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"specs\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"witnet\",\"outputs\":[{\"internalType\":\"contract WitnetOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"witnetQuerySLA\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"committeeSize\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"witnessingFeeNanoWit\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetV2.RadonSLA\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"witnetRadHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"The Witnet Foundation.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"fetchRandomnessAfter(uint256)\":{\"details\":\"Reverts if:i.   no `randomize()` was requested on neither the given block, nor afterwards.ii.  the first non-errored `randomize()` request found on or after the given block is not solved yet.iii. all `randomize()` requests that took place on or after the given block were solved with errors.\",\"params\":{\"_blockNumber\":\"Block number from which the search will start\"}},\"fetchRandomnessAfterProof(uint256)\":{\"details\":\"Reverts if:i.   no `randomize()` was requested on neither the given block, nor afterwards.ii.  the first non-errored `randomize()` request found on or after the given block is not solved yet.iii. all `randomize()` requests that took place on or after the given block were solved with errors.\",\"params\":{\"_blockNumber\":\"Block number from which the search will start.\"},\"returns\":{\"_witnetResultFinalityBlock\":\"EVM block number from which the provided randomness can be considered to be final.\",\"_witnetResultRandomness\":\"Random value provided by the Witnet blockchain and used for solving randomness after given block.\",\"_witnetResultTallyHash\":\"Hash of the witnessing commit/reveal act that took place on the Witnet blockchain.\",\"_witnetResultTimestamp\":\"Timestamp at which the randomness value was generated by the Witnet blockchain.\"}},\"getRandomizeData(uint256)\":{\"details\":\"Returns zero values if no randomize request was actually posted on the given block.\",\"returns\":{\"_nextRandomizeBlock\":\"Block number in which a randomize request got posted just after this one, 0 if none.\",\"_prevRandomizeBlock\":\"Block number in which a randomize request got posted just before this one. 0 if none.\",\"_witnetQueryId\":\"Identifier of the underlying Witnet query created on the given block number. \"}},\"getRandomizeNextBlock(uint256)\":{\"params\":{\"_blockNumber\":\"Block number from which the search will start.\"},\"returns\":{\"_0\":\"Number of the first block found after the given one, or `0` otherwise.\"}},\"getRandomizePrevBlock(uint256)\":{\"params\":{\"_blockNumber\":\"Block number from which the search will start. Cannot be zero.\"},\"returns\":{\"_0\":\"First block found before the given one, or `0` otherwise.\"}},\"getRandomizeStatus(uint256)\":{\"details\":\"Possible values:- 0 -> Void: no randomize request was actually posted on or after the given block number.- 1 -> Awaiting: a randomize request was found but it's not yet solved by the Witnet blockchain.- 2 -> Ready: a successfull randomize value was reported and ready to be read.- 3 -> Error: all randomize requests after the given block were solved with errors.- 4 -> Finalizing: a randomize resolution has been reported from the Witnet blockchain, but it's not yet final.  \"},\"random(uint32,uint256,uint256)\":{\"details\":\"Fails under same conditions as `getRandomnessAfter(uint256)` does.\",\"params\":{\"_blockNumber\":\"Block number from which the search for the first randomize request solved aftewards will start.\",\"_nonce\":\"Nonce value enabling multiple random numbers from the same randomness value.\",\"_range\":\"Range within which the uniformly-distributed random number will be generated.\"}},\"randomize()\":{\"details\":\"Only one randomness request per block will be actually posted to the Witnet Oracle. \",\"returns\":{\"_evmRandomizeFee\":\"Funds actually paid as randomize fee.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"}},\"stateVariables\":{\"witnetRadHash\":{\"details\":\"Can be used to track all randomness requests solved so far on the Witnet Oracle blockchain.\"}},\"title\":\"WitnetRandomnessV2: Unmalleable and provably-fair randomness generation based on the Witnet Oracle v2.*.\",\"version\":1},\"userdoc\":{\"events\":{\"WitnetQuery(uint256,uint256,(uint8,uint64))\":{\"notice\":\"Emitted every time a new query containing some verified data request is posted to the WRB.\"},\"WitnetQueryResponse(uint256,uint256)\":{\"notice\":\"Emitted when a query with no callback gets reported into the WRB.\"},\"WitnetQueryResponseDelivered(uint256,uint256,uint256)\":{\"notice\":\"Emitted when a query with a callback gets successfully reported into the WRB.\"},\"WitnetQueryResponseDeliveryFailed(uint256,bytes,uint256,uint256,string)\":{\"notice\":\"Emitted when a query with a callback cannot get reported into the WRB.\"},\"WitnetQueryRewardUpgraded(uint256,uint256)\":{\"notice\":\"Emitted when the reward of some not-yet reported query is upgraded.\"}},\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"=============================================================================================================== --- 'IWitnetRandomnessAdmin' implementation -------------------------------------------------------------------\"},\"estimateRandomizeFee(uint256)\":{\"notice\":\"Returns amount of wei required to be paid as a fee when requesting randomization with a  transaction gas price as the one given.\"},\"fetchRandomnessAfter(uint256)\":{\"notice\":\"Retrieves the result of keccak256-hashing the given block number with the randomness value generated by the Witnet Oracle blockchain in response to the first non-errored randomize request solved after such block number.\"},\"fetchRandomnessAfterProof(uint256)\":{\"notice\":\"Retrieves the actual random value, unique hash and timestamp of the witnessing commit/reveal act that tookplace in the Witnet Oracle blockchain in response to the first non-errored randomize requestsolved after the given block number.\"},\"getLastRandomizeBlock()\":{\"notice\":\"Returns last block number on which a randomize was requested.\"},\"getRandomizeData(uint256)\":{\"notice\":\"Retrieves metadata related to the randomize request that got posted to the Witnet Oracle contract on the given block number.\"},\"getRandomizeNextBlock(uint256)\":{\"notice\":\"Returns the number of the next block in which a randomize request was posted after the given one. \"},\"getRandomizePrevBlock(uint256)\":{\"notice\":\"Returns the number of the previous block in which a randomize request was posted before the given one.\"},\"getRandomizeStatus(uint256)\":{\"notice\":\"Returns status of the first non-errored randomize request posted on or after the given block number.\"},\"isRandomized(uint256)\":{\"notice\":\"Returns `true` only if a successfull resolution from the Witnet blockchain is found for the first non-errored randomize request posted on or after the given block number.\"},\"random(uint32,uint256,uint256)\":{\"notice\":\"Generates a pseudo-random number uniformly distributed within the range [0 .. _range), by using the given `nonce` and the randomness returned by `getRandomnessAfter(blockNumber)`. \"},\"randomize()\":{\"notice\":\"Requests the Witnet oracle to generate an EVM-agnostic and trustless source of randomness. \"},\"witnetQuerySLA()\":{\"notice\":\"Returns the SLA parameters required for the Witnet Oracle blockchain to fulfill when solving randomness requests:- number of witnessing nodes contributing to randomness generation- reward in $nanoWIT received by every contributing node in the Witnet blockchain\"},\"witnetRadHash()\":{\"notice\":\"Unique identifier of the RNG data request used on the Witnet Oracle blockchain for solving randomness.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/apps/WitnetRandomnessV2.sol\":\"WitnetRandomnessV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"project:/contracts/WitnetOracle.sol\":{\"keccak256\":\"0x84ef8d2ebcba273e4bc23a5ee414a1213df55d1b4e496197a146031fea3a4874\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4a6e31964ed08c4c9dfe5279b4ffe9eeba6e759f15901e080e174e98e96a7f5\",\"dweb:/ipfs/QmTghzVFf2EHnfnHejgFGRBjanXYcstK9ftVaYmHWJfk8w\"]},\"project:/contracts/WitnetRandomness.sol\":{\"keccak256\":\"0xa18727bf1e426ea2cd9c51e29f20090d2e305bd4548225b612deac8a175eb290\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://358755b23533fd4e59c26de21a5996a494867ff9324f5a8969674cc50f0de371\",\"dweb:/ipfs/QmSbLdscuJTortmR4LoCriKbGTSepUgMuxptN9xCsFuFJ1\"]},\"project:/contracts/WitnetRequestBytecodes.sol\":{\"keccak256\":\"0x2a79d919dd79c0e3f857e6bee08368ad0b463188aced4a52de29270ed0f5f3d2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://290d6013ee9f75fedbbb7726527a637ea2ae7a5da0ad118ecc43b298846f0bb0\",\"dweb:/ipfs/QmU8AZtPyctrrvxdmH297p595ZMS6DgcD6djSFKNxAqYMs\"]},\"project:/contracts/WitnetRequestFactory.sol\":{\"keccak256\":\"0x3c66f27d7c1db0e662c37d98005c4cbd871ceb75e97079d7bf673fb75d59c858\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52adb318b870d0825718125e94fdbdd0e968ced09926420e2543b0ca4c6eb579\",\"dweb:/ipfs/QmYack87Q2UTfQb8KLLEPFBrMJgN2o6PaPqPNSc95McPVH\"]},\"project:/contracts/apps/UsingWitnet.sol\":{\"keccak256\":\"0x3fe6f2f1162bd1c128fb6aad2db81eaa1fdf04b5d15a5eeadf3e44bc81e2d4ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://927de4c99298ede8a240305bfd8e9daa5c79a32ed68cef19ece9b7f5bb37860b\",\"dweb:/ipfs/QmeZEbXpCTHegD6H7cVDipyXLYHUE4e3C66XojzYk8CpE4\"]},\"project:/contracts/apps/WitnetRandomnessV2.sol\":{\"keccak256\":\"0x37d7fd285315e04e985c4292b48f7fc76d7f32b3394385c99428d8ac80ede389\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2ed10cbe60c7b3c68e5d6f01b02d10d8724863194c77fb293f74cd673cc0e64\",\"dweb:/ipfs/QmfTeQaZm6Fcn9pEfKjxdcrQWg9infgKiaXxwfzYRapb8N\"]},\"project:/contracts/interfaces/IWitnetOracle.sol\":{\"keccak256\":\"0x5dbb04fce5e05675325232a735c46617378982b48dac2138aca0c6cc95e6e4d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7447a70455478239500e16aebe5dce6676dc86307d22f662761d8e9f7c5d1276\",\"dweb:/ipfs/QmVkvA4Mt6G1JXxE8ebxKGAjT1WvNbp5QMKg9sUKdrJjhv\"]},\"project:/contracts/interfaces/IWitnetOracleEvents.sol\":{\"keccak256\":\"0x0442f474f253dc1f6bd6a4f153c3adb2abe5f6f0f24c76d1baf666185e61e659\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://535e8efcfc5693669d9bd2b6f62e6fc65aca19b7de355a27152e4362b410540d\",\"dweb:/ipfs/QmVZRXgku1cZewhoucebaiBKAyUjF2dmEzYrzGvjPzbwN9\"]},\"project:/contracts/interfaces/IWitnetRandomness.sol\":{\"keccak256\":\"0xe1dece4459bee43e03cbc83e3feb455de406e633c778ac70e3da5d0c65402d68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d79acbdbddc0882e6067d4722184423102b78fa1ca9fd94e4d0b9c6dd9f4485\",\"dweb:/ipfs/QmVs5it4bV2cqZPfdCejmHh3SybxciuQoKE8pswUWqPc1R\"]},\"project:/contracts/interfaces/IWitnetRandomnessAdmin.sol\":{\"keccak256\":\"0x496cd3d89fb8bb44dc627da202372fab60a5422b12d00fe97582a8fa1e6fd856\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99f15e8dc494e45e3a9540f3c8ca1d996faed9ae1de3d931d5e7acd87ca15adc\",\"dweb:/ipfs/QmYEQx7KtDRiUzUDfLRm1WnguF6LkiYtLVq6nkRg9CraS4\"]},\"project:/contracts/interfaces/IWitnetRandomnessEvents.sol\":{\"keccak256\":\"0x3d5510777da725c0772a04bc40a967c07713139bc50bb732462baccc1acfb0eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://481f334e116fa761e2d9fdc668cf9278c8d192f0b0511066637dab6011fac908\",\"dweb:/ipfs/QmS1Vh6Xab5oBmTxLempvGvpAsVfEQthbrg1aWXe2SqRRa\"]},\"project:/contracts/interfaces/IWitnetRequestBytecodes.sol\":{\"keccak256\":\"0x8da168bee9a78442216965976b1f29087f760f37dcb09337283242599ed1cbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e120623262ee0559913bdae56c0a7921147dfe08ada7ea81061b14e2fc38c5e1\",\"dweb:/ipfs/Qmbxe8XRrH6ZjJHiR6YYzcZV1jnSWwo9iBYz5r6GJ6To5G\"]},\"project:/contracts/interfaces/IWitnetRequestFactory.sol\":{\"keccak256\":\"0x3b19ec4a976745ba2646e7e1886d647ef30ad678460a712c93bbfb4405b57f1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa759ae15b7d4da622a81d50933474910959ac490d8b63ea2e7ed8608859a9c9\",\"dweb:/ipfs/QmRckCu7eBBP5fn9ff6djs7VbdhFc7sxYb2yqDr4go66jV\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x65a87375dd79d63a83fb454b7199b6c999bd59c50b3b59d521c5c4d45a7d3cc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca865b681d810c2fc5c3672ea6343c3bdf6fd71764ab824d25994744dc85866b\",\"dweb:/ipfs/QmPGcP3xGTNZfsQ9GSKdujNLRVs8dWDdubyUko1rbQqJNv\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0xa14570492eb5a313ddbacae0185c850ec99c67211eb33989a5e21d31bf06a150\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e83c11edb49cab6a767c0b685825bc22ece0d3d2897e0d54fe1923df5cc76ba5\",\"dweb:/ipfs/QmdLDgCc3tnKbgRrXwfNzsg6uUDirNmjvBB8V3iMmnD69a\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xb346547ff731163beea2c657c52675cdf7936691d566a76a045577cf9c34ade0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d4b5b6424a033584b41f1204d635db98fda9ca9bd2a614c9d82539a3e4e6529\",\"dweb:/ipfs/QmW6Qy3wWpzHSECYaCPaf9LWGfPqWDKVoP2kPSNNQu7LMQ\"]},\"project:/contracts/libs/WitnetV2.sol\":{\"keccak256\":\"0xb276a6da373bfbe9cd942dd7e59979cda898215d1e36ab3df95a6d6cc6ff770f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc4890876b9bc64f501ccdd48408bb63724865cb2ce8d2057f6b318540adce7c\",\"dweb:/ipfs/QmPMHPdbCsKBavhiLcaDgQ9EjNSvwwzv8TKffotcCv1ctP\"]},\"project:/contracts/patterns/Ownable.sol\":{\"keccak256\":\"0x494bda32f9a218d9c33ea82112129c0933ab52f57eabfbf0d14a8742a3370800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c4cf04ebb052fed9d15cf93ff4523955ee311aa4425ee85f0e80b4489c94e76\",\"dweb:/ipfs/QmfMf4WD7woTaQSTbJxxoan2aXSeY7ovY5NoipSBw5rMPK\"]},\"project:/contracts/patterns/Ownable2Step.sol\":{\"keccak256\":\"0x7033d8133957a291cf9b8be30bfc4b95e6414a20995911d1b5df8ea149580604\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e20a079adc224113306392d27e0cf202c6c4a7678c4705fd3bbbca99c1e9b816\",\"dweb:/ipfs/QmWrFv2SbSokhrWhwL94sW5x1HyT7rX5f4Scowe4bWHHqu\"]}},\"version\":1}",
  "bytecode": "0x60c060405234801561001057600080fd5b5060405161301138038061301183398101604081905261002f916106de565b81816001600160a01b03811661006057604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610069816105b3565b5063baeca88b60e01b6001600160e01b031916816001600160a01b031663adb7c3f76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100de9190610718565b6001600160e01b031916146101435760405162461bcd60e51b815260206004820152602560248201527f5573696e675769746e65743a20756e636f6d706c69616e74205769746e65744f6044820152647261636c6560d81b6064820152608401610057565b6001600160a01b0390811660805260408051808201909152600a8152630bebc20060209091015260028054640bebc2000a6001600160481b03199091161790556003805461ffff19166021179055610257908316158061021e575063baeca88b60e01b6001600160e01b031916836001600160a01b031663adb7c3f76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102129190610718565b6001600160e01b031916145b60408051808201909152601881527f756e636f6d706c69616e74205769746e65744f7261636c65000000000000000060208201526105cf565b60006102616105e1565b6001600160a01b0316637b1039996040518163ffffffff1660e01b8152600401602060405180830381865afa15801561029e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c29190610749565b60408051600180825281830190925291925060009190602080830190803683375050604080516000808252602082019092529293506001600160a01b03851692639eb3ab1f925060029161032c565b6103196106a2565b8152602001906001900390816103115790505b506040518363ffffffff1660e01b815260040161034a9291906107e2565b6020604051808303816000875af1158015610369573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038d91906108c5565b816000815181106103a0576103a06108de565b60200260200101818152505060606000836001600160a01b0316637f412e2360405180604001604052806002600b8111156103dd576103dd61077c565b8152602001858152506040518263ffffffff1660e01b815260040161040291906108f4565b6020604051808303816000875af1158015610421573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044591906108c5565b90506000846001600160a01b0316637f412e236040518060400160405280600b808111156104755761047561077c565b8152602001868152506040518263ffffffff1660e01b815260040161049a91906108f4565b6020604051808303816000875af11580156104b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104dd91906108c5565b9050846001600160a01b031663a4a7cecd858484602089516001600160401b0381111561050c5761050c610766565b60405190808252806020026020018201604052801561053f57816020015b606081526020019060019003908161052a5790505b506040518663ffffffff1660e01b815260040161056095949392919061099b565b6020604051808303816000875af115801561057f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a391906108c5565b60a05250610ae095505050505050565b600180546001600160a01b03191690556105cc816105f1565b50565b816105dd576105dd81610641565b5050565b60006105ec60805190565b905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820190915260128152712bb4ba3732ba2930b73237b6b732b9b9ab1960711b60208201528160405160200161067c929190610a90565b60408051601f198184030181529082905262461bcd60e51b825261005791600401610acd565b60405180604001604052806002905b60608152602001906001900390816106b15790505090565b6001600160a01b03811681146105cc57600080fd5b600080604083850312156106f157600080fd5b82516106fc816106c9565b602084015190925061070d816106c9565b809150509250929050565b60006020828403121561072a57600080fd5b81516001600160e01b03198116811461074257600080fd5b9392505050565b60006020828403121561075b57600080fd5b8151610742816106c9565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60005b838110156107ad578181015183820152602001610795565b50506000910152565b600081518084526107ce816020860160208601610792565b601f01601f19169290920160200192915050565b6000600584106107f4576107f461077c565b838252602060a08184015260008060a0850152604060c06040860152600060c086015260e0850160e0606087015280875180835261010092508288019150828160051b890101925085890160005b8281101561089b5789850360ff19018452815185878101895b60028110156108865788820383526108748285516107b6565b938c0193928c0192915060010161085b565b50965050509287019290870190600101610842565b50505050858103608087015260018152600160ff1b60208201526040810198975050505050505050565b6000602082840312156108d757600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006020808352606083018451600c81106109115761091161077c565b828501528482015160408086018190528151928390526080600584901b8701810193928501929087019060005b8181101561098d57888603607f1901835284518051600a81106109635761096361077c565b875287015187870185905261097a858801826107b6565b965050938601939186019160010161093e565b509398975050505050505050565b60a0808252865190820181905260009060209060c0840190828a01845b828110156109d4578151845292840192908401906001016109b8565b505050878285015286604085015261ffff86166060850152838103608085015280855180835283830191506005848260051b85010185890160005b84811015610a7d57601f198784038101875282518051808652908a01908a86019080881b87018c0160005b82811015610a665785898303018452610a548286516107b6565b948e0194938e01939150600101610a3a565b50998c019996505050928901925050600101610a0f565b50909d9c50505050505050505050505050565b60008351610aa2818460208801610792565b6101d160f51b9083019081528351610ac1816002840160208801610792565b01600201949350505050565b60208152600061074260208301846107b6565b60805160a0516124d4610b3d600039600081816102d20152610a84015260008181610288015281816107dc0152818161088301528181610a5401528181610c7701528181610e2e01528181611255015261130901526124d46000f3fe60806040526004361061014f5760003560e01c80639bc86fec116100b6578063c0248bf11161006f578063c0248bf11461051f578063d2bc459b1461053f578063de0958ac1461055f578063e30c39781461057f578063eb92b29b14610594578063f2fde38b146105b75761018c565b80639bc86fec14610411578063a3252f6814610441578063a60ee2681461047c578063adb7c3f71461049c578063b8d38c96146104be578063bff852fa146104de5761018c565b806376fa9d201161010857806376fa9d201461031f57806379ba50971461034c57806382b1c174146103615780638da5cb5b146103815780638f2616841461039f5780639353badd146103b45761018c565b806317f45487146101f757806324cbbfc11461024457806346d1d21a14610279578063613e9978146102c0578063699b328a14610302578063715018a61461030a5761018c565b3661018c5761018a604051806040016040528060158152602001741b9bc81d1c985b9cd9995c9cc81858d8d95c1d1959605a1b8152506105d7565b005b61018a61019d60003560f81c610641565b6101ae60ff60003560f01c16610641565b6101bf60ff60003560e81c16610641565b6101d060ff60003560e01c16610641565b6040516020016101e39493929190611dd8565b6040516020818303038152906040526105d7565b34801561020357600080fd5b50610217610212366004611e57565b610733565b604080519485526001600160401b0390931660208501529183015260608201526080015b60405180910390f35b34801561025057600080fd5b5061026461025f366004611e82565b6109e6565b60405163ffffffff909116815260200161023b565b34801561028557600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161023b565b3480156102cc57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161023b565b6102f4610a3b565b34801561031657600080fd5b5061018a610bec565b34801561032b57600080fd5b5061033f61033a366004611e57565b610c00565b60405161023b9190611ecd565b34801561035857600080fd5b5061018a610d53565b34801561036d57600080fd5b506102f461037c366004611e57565b610d5b565b34801561038d57600080fd5b506000546001600160a01b03166102a8565b3480156103ab57600080fd5b506102f4610d96565b3480156103c057600080fd5b5060408051808201825260008082526020918201528151808301835260025460ff81168083526001600160401b0361010090920482169284019283528451908152915116918101919091520161023b565b34801561041d57600080fd5b5061043161042c366004611e57565b610da6565b604051901515815260200161023b565b34801561044d57600080fd5b5061046161045c366004611e57565b610dcb565b6040805193845260208401929092529082015260600161023b565b34801561048857600080fd5b506102f4610497366004611e57565b610e03565b3480156104a857600080fd5b5060405163124f910d60e01b815260200161023b565b3480156104ca57600080fd5b5061018a6104d9366004611ef5565b610ec9565b3480156104ea57600080fd5b5060408051808201825260128152712bb4ba3732ba2930b73237b6b732b9b9ab1960711b6020820152905161023b9190611f19565b34801561052b57600080fd5b506102f461053a366004611e57565b610ee9565b34801561054b57600080fd5b5061018a61055a366004611f4c565b610f37565b34801561056b57600080fd5b506102f461057a366004611e57565b610f86565b34801561058b57600080fd5b506102a8610fdf565b3480156105a057600080fd5b5060035460405161ffff909116815260200161023b565b3480156105c357600080fd5b5061018a6105d2366004611f73565b610ff3565b6040805180820190915260128152712bb4ba3732ba2930b73237b6b732b9b9ab1960711b602082015281604051602001610612929190611f90565b60408051601f198184030181529082905262461bcd60e51b825261063891600401611f19565b60405180910390fd5b60408051600280825281830190925260609160009190602082018180368337019050509050600061067360108561200f565b61067e906030612031565b9050600061068d60108661204a565b610698906030612031565b905060398260ff1611156106b4576106b1600783612031565b91505b60398160ff1611156106ce576106cb600782612031565b90505b8160f81b836000815181106106e5576106e561206c565b60200101906001600160f81b031916908160001a9053508060f81b836001815181106107135761071361206c565b60200101906001600160f81b031916908160001a90535091949350505050565b600080600080610741611007565b6000868152600191909101602052604081205490036107665761076385610f86565b94505b6000610770611007565b600101600087815260200190815260200160002090506000816000015490506107c381600014156040518060400160405280600e81526020016d1b9bdd081c985b991bdb5a5e995960921b81525061102b565b60405163234fe6e360e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063234fe6e390602401602060405180830381865afa15801561082b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084f9190612082565b9050600281600581111561086557610865611eb7565b0361093d57604051637b0c90d960e11b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f61921b290602401600060405180830381865afa1580156108d2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108fa919081019061215d565b9050806040015163ffffffff1696508060600151955080602001516001600160401b03169450610935610930826080015161103d565b61105b565b9750506109db565b600381600581111561095157610951611eb7565b036109a957600283015460408051808201909152601081526f6661756c74792072616e646f6d697a6560801b602082015261098f908215159061102b565b61099881610733565b9750975097509750505050506109df565b6109db6040518060400160405280601181526020017070656e64696e672072616e646f6d697a6560781b8152506105d7565b5050505b9193509193565b6000610a2c8484336109f786610d5b565b604080516001600160a01b03909316602084015282015260600160405160208183030381529060405280519060200120611090565b90505b9392505050565b905090565b600043610a46611007565b541015610ba95734905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633dc2b7a2837f000000000000000000000000000000000000000000000000000000000000000060026040518463ffffffff1660e01b8152600401610ac292919061220c565b60206040518083038185885af1158015610ae0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b059190612236565b90506000610b11611007565b436000908152600191909101602052604081208381559150610b31611007565b5460018301819055905043610b44611007565b6000838152600191909101602052604090206002015543610b63611007565b556040517f8cb766b09215126141c41df86fd488fe4745f22f3c995c3ad9aaf4c07195b94690610b9d9043903a908890889060029061224f565b60405180910390a15050505b34811015610be957336108fc610bbf833461228f565b6040518115909202916000818181858888f19350505050158015610be7573d6000803e3d6000fd5b505b90565b610bf46110ef565b610bfe600061111c565b565b6000610c0a611007565b600083815260019190910160205260408120549003610c2f57610c2c82610f86565b91505b6000610c39611007565b600084815260019190910160205260408120549150819003610c5e5750600092915050565b60405163234fe6e360e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063234fe6e390602401602060405180830381865afa158015610cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cea9190612082565b90506003816005811115610d0057610d00611eb7565b03610a2f576000610d0f611007565b6000868152600191909101602052604090206002015490508015610d3f57610d3681610c00565b95945050505050565b506003949350505050565b505b5050919050565b610bfe611135565b600081610d67836111b0565b604080516020810193909352820152606001604051602081830303815290604052805190602001209050919050565b6000610da0611007565b54919050565b60006002610db383610c00565b6005811115610dc457610dc4611eb7565b1492915050565b600080600080610dd9611007565b60009586526001908101602052604090952080549581015460029091015495969095945092505050565b604051630f7b104360e31b815260048101829052602260248201526000906064906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637bd8821890604401602060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e999190612236565b600354610eab9061ffff1660646122a2565b61ffff16610eb991906122bd565b610ec391906122d4565b92915050565b610ed16110ef565b6003805461ffff191661ffff92909216919091179055565b6000808211610efa57610efa6122e8565b6000610f04611007565b549050808311610ec357610f3283610f1a611007565b60008481526001918201602052604090200154611414565b610a2f565b610f3f6110ef565b610f74610f4b82611447565b6040518060400160405280600b81526020016a696e76616c696420534c4160a81b81525061102b565b806002610f81828261230d565b505050565b6000610f90611007565b600083815260019190910160205260408120549003610fc057610fbb82610fb5611007565b546114a0565b610ec3565b610fc8611007565b600092835260010160205250604090206002015490565b6000610a366001546001600160a01b031690565b610ffb6110ef565b611004816114ef565b50565b7f643778935c57df947f6944f6a5242a3e91445f6337f4b2ec670c8642153b614f90565b8161103957611039816105d7565b5050565b611045611d4c565b600061105083611521565b9050610a2f81611546565b600081806000015161107f5760405162461bcd60e51b81526004016106389061235f565b610a2f61108b8461157a565b6115ab565b6000806001600160e01b0383856040516020016110b7929190918252602082015260400190565b60408051601f19818403018152919052805160209091012016905060e06110e463ffffffff8716836122bd565b901c95945050505050565b6000546001600160a01b03163314610bfe5760405163118cdaa760e01b8152336004820152602401610638565b600180546001600160a01b0319169055611004816115b8565b338061113f610fdf565b6001600160a01b0316146111a75760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610638565b6110048161111c565b60006111ba611007565b6000838152600191909101602052604081205490036111df576111dc82610f86565b91505b60006111e9611007565b6001016000848152602001908152602001600020905060008160000154905061123c81600014156040518060400160405280600e81526020016d1b9bdd081c985b991bdb5a5e995960921b81525061102b565b60405163234fe6e360e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063234fe6e390602401602060405180830381865afa1580156112a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c89190612082565b905060028160058111156112de576112de611eb7565b0361137d576040516311a7b16760e31b815260048101839052610d3690610930906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638d3d8b3890602401600060405180830381865afa158015611350573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261137891908101906123b1565b61103d565b600381600581111561139157611391611eb7565b036113e257600283015460408051808201909152601081526f6661756c74792072616e646f6d697a6560801b60208201526113cf908215159061102b565b6113d8816111b0565b9695505050505050565b610d4a6040518060400160405280601181526020017070656e64696e672072616e646f6d697a6560781b8152506105d7565b600081831161144157610f3283611429611007565b60008581526001918201602052604090200154611414565b50919050565b60008061145a60408401602085016123ed565b6001600160401b031611801561147f5750600061147a602084018461240a565b60ff16115b8015610ec35750607f611495602084018461240a565b60ff16111592915050565b6000818310156114ce57610f32836114b6611007565b600085815260019182016020526040902001546114a0565b6114d6611007565b6000928352600101602052506040902060020154919050565b6114f76110ef565b6001600160a01b0381166111a757604051631e4fbdf760e01b815260006004820152602401610638565b611529611d6d565b6040805180820190915282815260006020820152610a2f81611608565b61154e611d4c565b5060a0810151604080518082019091526001600160401b03909116602714158152602081019190915290565b606081806000015161159e5760405162461bcd60e51b81526004016106389061235f565b610a2f8360200151611728565b6000610ec3826020611871565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611610611d6d565b8151518290600003611635576040516309036d4760e21b815260040160405180910390fd5b600060ff816001600160401b038160015b80156116b857611655896118e9565b95508161166181612427565b6007600589901c169650601f8816955092505060051985016116b057602089015161168c8a8661194b565b9350808a6020015161169e919061228f565b6116a89084612440565b925050611646565b506000611646565b600760ff861611156116e25760405163bd2ac87960e01b815260ff86166004820152602401610638565b506040805160c08101825298895260ff95861660208a015293851693880193909352921660608601526001600160401b0390811660808601521660a08401525090919050565b60608160028060ff16826040015160ff161461176857604080830151905161800560e51b815260ff91821660048201529082166024820152604401610638565b61177a8460000151856060015161194b565b6001600160401b03166080850181905263fffffffe19016118505760006117a985600001518660400151611a13565b905063ffffffff8082161015610d4a5784516117ce9063ffffffff80841690611ac016565b6040516020016117de9190612453565b604051602081830303815290604052935061180185600001518660400151611a13565b905063ffffffff8082161015610d4a57845184906118289063ffffffff80851690611ac016565b60405160200161183992919061246f565b604051602081830303815290604052935050610d4c565b6080840151845161186a9163ffffffff90811690611ac016565b9250610d4c565b600060208260ff161115611887576118876122e8565b60008260ff1684511161189b5783516118a0565b8260ff165b905060005b818110156118e157806008028582815181106118c3576118c361206c565b01602001516001600160f81b031916901c92909217916001016118a5565b505092915050565b6000816020015182600001515180821115611921576040516363a056dd60e01b81526004810183905260248101829052604401610638565b835160208501805180830160010151955090819061193e82612427565b8152505050505050919050565b600060188260ff161015611963575060ff8116610ec3565b8160ff1660180361198157611977836118e9565b60ff169050610ec3565b8160ff166019036119a05761199583611b80565b61ffff169050610ec3565b8160ff16601a036119c1576119b483611bec565b63ffffffff169050610ec3565b8160ff16601b036119dc576119d583611c4b565b9050610ec3565b8160ff16601f036119f557506001600160401b03610ec3565b604051636d785b1360e01b815260ff83166004820152602401610638565b600080611a1f846118e9565b90508060ff1660ff03611a3c576001600160401b03915050610ec3565b611a498482601f1661194b565b91506001600160401b0380831610611a7f57604051636d785b1360e01b81526001600160401b0383166004820152602401610638565b60ff83166007600583901c1614611ab95760405161800560e51b81526007600583901c16600482015260ff84166024820152604401610638565b5092915050565b6060818360200151611ad29190612440565b83515180821115611b00576040516363a056dd60e01b81526004810183905260248101829052604401610638565b836001600160401b03811115611b1857611b18611fcd565b6040519080825280601f01601f191660200182016040528015611b42576020820181803683370190505b50925083156118e1578451602080870151908183018101908601611b6781838a611caa565b611b7389896001611cf0565b5050505050505092915050565b600081602001516002611b939190612440565b82515180821115611bc1576040516363a056dd60e01b81526004810183905260248101829052604401610638565b8351602085018051600281840181015196509091611bdf8284612440565b9052509395945050505050565b600081602001516004611bff9190612440565b82515180821115611c2d576040516363a056dd60e01b81526004810183905260248101829052604401610638565b8351602085018051600481840181015196509091611bdf8284612440565b600081602001516008611c5e9190612440565b82515180821115611c8c576040516363a056dd60e01b81526004810183905260248101829052604401610638565b8351602085018051600881840181015196509091611bdf8284612440565b5b60208110611cca578151835260209283019290910190601f1901611cab565b8015610f81578151835160208390036101000a6000190180199092169116178352505050565b60008284600001515180821115611d24576040516363a056dd60e01b81526004810183905260248101829052604401610638565b8315611d3c576020860151611d399086612440565b94505b5050505060209190910181905290565b6040518060400160405280600015158152602001611d68611d6d565b905290565b604080516101008101909152606060c08201908152600060e08301528190815260006020820181905260408201819052606082018190526080820181905260a09091015290565b60005b83811015611dcf578181015183820152602001611db7565b50506000910152565b720dcdee840d2dae0d8cadacadce8cac8744060f606b1b815260008551611e06816013850160208a01611db4565b855190830190611e1d816013840160208a01611db4565b8551910190611e33816013840160208901611db4565b8451910190611e49816013840160208801611db4565b016013019695505050505050565b600060208284031215611e6957600080fd5b5035919050565b63ffffffff8116811461100457600080fd5b600080600060608486031215611e9757600080fd5b8335611ea281611e70565b95602085013595506040909401359392505050565b634e487b7160e01b600052602160045260246000fd5b6020810160068310611eef57634e487b7160e01b600052602160045260246000fd5b91905290565b600060208284031215611f0757600080fd5b813561ffff81168114610a2f57600080fd5b6020815260008251806020840152611f38816040850160208701611db4565b601f01601f19169190910160400192915050565b60006040828403121561144157600080fd5b6001600160a01b038116811461100457600080fd5b600060208284031215611f8557600080fd5b8135610a2f81611f5e565b60008351611fa2818460208801611db4565b6101d160f51b9083019081528351611fc1816002840160208801611db4565b01600201949350505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff83168061202257612022611fe3565b8060ff84160491505092915050565b60ff8181168382160190811115610ec357610ec3611ff9565b600060ff83168061205d5761205d611fe3565b8060ff84160691505092915050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561209457600080fd5b815160068110610a2f57600080fd5b60405160a081016001600160401b03811182821017156120c5576120c5611fcd565b60405290565b6001600160401b038116811461100457600080fd5b600082601f8301126120f157600080fd5b81516001600160401b038082111561210b5761210b611fcd565b604051601f8301601f19908116603f0116810190828211818310171561213357612133611fcd565b8160405283815286602085880101111561214c57600080fd5b6113d8846020830160208901611db4565b60006020828403121561216f57600080fd5b81516001600160401b038082111561218657600080fd5b9083019060a0828603121561219a57600080fd5b6121a26120a3565b82516121ad81611f5e565b815260208301516121bd816120cb565b602082015260408301516121d081611e70565b6040820152606083810151908201526080830151828111156121f157600080fd5b6121fd878286016120e0565b60808301525095945050505050565b82815260608101610a2f60208301845460ff8116825260081c6001600160401b0316602090910152565b60006020828403121561224857600080fd5b5051919050565b600060c0820190508682528560208301528460408301528360608301526113d860808301845460ff8116825260081c6001600160401b0316602090910152565b81810381811115610ec357610ec3611ff9565b61ffff818116838216019080821115611ab957611ab9611ff9565b8082028115828204841417610ec357610ec3611ff9565b6000826122e3576122e3611fe3565b500490565b634e487b7160e01b600052600160045260246000fd5b60ff8116811461100457600080fd5b8135612318816122fe565b60ff8116905081548160ff1982161783556020840135612337816120cb565b68ffffffffffffffff008160081b168368ffffffffffffffffff198416171784555050505050565b60208082526032908201527f5769746e65743a20747269656420746f206465636f64652076616c756520667260408201527137b69032b93937b932b2103932b9bab63a1760711b606082015260800190565b6000602082840312156123c357600080fd5b81516001600160401b038111156123d957600080fd5b6123e5848285016120e0565b949350505050565b6000602082840312156123ff57600080fd5b8135610a2f816120cb565b60006020828403121561241c57600080fd5b8135610a2f816122fe565b60006001820161243957612439611ff9565b5060010190565b80820180821115610ec357610ec3611ff9565b60008251612465818460208701611db4565b9190910192915050565b60008351612481818460208801611db4565b835190830190612495818360208801611db4565b0194935050505056fea26469706673582212202db0dbe1ece94f16ab504e23033aebe417a0bf76baf403517b4064b2c275b1aa64736f6c63430008190033",
  "deployedBytecode": "0x60806040526004361061014f5760003560e01c80639bc86fec116100b6578063c0248bf11161006f578063c0248bf11461051f578063d2bc459b1461053f578063de0958ac1461055f578063e30c39781461057f578063eb92b29b14610594578063f2fde38b146105b75761018c565b80639bc86fec14610411578063a3252f6814610441578063a60ee2681461047c578063adb7c3f71461049c578063b8d38c96146104be578063bff852fa146104de5761018c565b806376fa9d201161010857806376fa9d201461031f57806379ba50971461034c57806382b1c174146103615780638da5cb5b146103815780638f2616841461039f5780639353badd146103b45761018c565b806317f45487146101f757806324cbbfc11461024457806346d1d21a14610279578063613e9978146102c0578063699b328a14610302578063715018a61461030a5761018c565b3661018c5761018a604051806040016040528060158152602001741b9bc81d1c985b9cd9995c9cc81858d8d95c1d1959605a1b8152506105d7565b005b61018a61019d60003560f81c610641565b6101ae60ff60003560f01c16610641565b6101bf60ff60003560e81c16610641565b6101d060ff60003560e01c16610641565b6040516020016101e39493929190611dd8565b6040516020818303038152906040526105d7565b34801561020357600080fd5b50610217610212366004611e57565b610733565b604080519485526001600160401b0390931660208501529183015260608201526080015b60405180910390f35b34801561025057600080fd5b5061026461025f366004611e82565b6109e6565b60405163ffffffff909116815260200161023b565b34801561028557600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161023b565b3480156102cc57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161023b565b6102f4610a3b565b34801561031657600080fd5b5061018a610bec565b34801561032b57600080fd5b5061033f61033a366004611e57565b610c00565b60405161023b9190611ecd565b34801561035857600080fd5b5061018a610d53565b34801561036d57600080fd5b506102f461037c366004611e57565b610d5b565b34801561038d57600080fd5b506000546001600160a01b03166102a8565b3480156103ab57600080fd5b506102f4610d96565b3480156103c057600080fd5b5060408051808201825260008082526020918201528151808301835260025460ff81168083526001600160401b0361010090920482169284019283528451908152915116918101919091520161023b565b34801561041d57600080fd5b5061043161042c366004611e57565b610da6565b604051901515815260200161023b565b34801561044d57600080fd5b5061046161045c366004611e57565b610dcb565b6040805193845260208401929092529082015260600161023b565b34801561048857600080fd5b506102f4610497366004611e57565b610e03565b3480156104a857600080fd5b5060405163124f910d60e01b815260200161023b565b3480156104ca57600080fd5b5061018a6104d9366004611ef5565b610ec9565b3480156104ea57600080fd5b5060408051808201825260128152712bb4ba3732ba2930b73237b6b732b9b9ab1960711b6020820152905161023b9190611f19565b34801561052b57600080fd5b506102f461053a366004611e57565b610ee9565b34801561054b57600080fd5b5061018a61055a366004611f4c565b610f37565b34801561056b57600080fd5b506102f461057a366004611e57565b610f86565b34801561058b57600080fd5b506102a8610fdf565b3480156105a057600080fd5b5060035460405161ffff909116815260200161023b565b3480156105c357600080fd5b5061018a6105d2366004611f73565b610ff3565b6040805180820190915260128152712bb4ba3732ba2930b73237b6b732b9b9ab1960711b602082015281604051602001610612929190611f90565b60408051601f198184030181529082905262461bcd60e51b825261063891600401611f19565b60405180910390fd5b60408051600280825281830190925260609160009190602082018180368337019050509050600061067360108561200f565b61067e906030612031565b9050600061068d60108661204a565b610698906030612031565b905060398260ff1611156106b4576106b1600783612031565b91505b60398160ff1611156106ce576106cb600782612031565b90505b8160f81b836000815181106106e5576106e561206c565b60200101906001600160f81b031916908160001a9053508060f81b836001815181106107135761071361206c565b60200101906001600160f81b031916908160001a90535091949350505050565b600080600080610741611007565b6000868152600191909101602052604081205490036107665761076385610f86565b94505b6000610770611007565b600101600087815260200190815260200160002090506000816000015490506107c381600014156040518060400160405280600e81526020016d1b9bdd081c985b991bdb5a5e995960921b81525061102b565b60405163234fe6e360e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063234fe6e390602401602060405180830381865afa15801561082b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084f9190612082565b9050600281600581111561086557610865611eb7565b0361093d57604051637b0c90d960e11b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f61921b290602401600060405180830381865afa1580156108d2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108fa919081019061215d565b9050806040015163ffffffff1696508060600151955080602001516001600160401b03169450610935610930826080015161103d565b61105b565b9750506109db565b600381600581111561095157610951611eb7565b036109a957600283015460408051808201909152601081526f6661756c74792072616e646f6d697a6560801b602082015261098f908215159061102b565b61099881610733565b9750975097509750505050506109df565b6109db6040518060400160405280601181526020017070656e64696e672072616e646f6d697a6560781b8152506105d7565b5050505b9193509193565b6000610a2c8484336109f786610d5b565b604080516001600160a01b03909316602084015282015260600160405160208183030381529060405280519060200120611090565b90505b9392505050565b905090565b600043610a46611007565b541015610ba95734905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633dc2b7a2837f000000000000000000000000000000000000000000000000000000000000000060026040518463ffffffff1660e01b8152600401610ac292919061220c565b60206040518083038185885af1158015610ae0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b059190612236565b90506000610b11611007565b436000908152600191909101602052604081208381559150610b31611007565b5460018301819055905043610b44611007565b6000838152600191909101602052604090206002015543610b63611007565b556040517f8cb766b09215126141c41df86fd488fe4745f22f3c995c3ad9aaf4c07195b94690610b9d9043903a908890889060029061224f565b60405180910390a15050505b34811015610be957336108fc610bbf833461228f565b6040518115909202916000818181858888f19350505050158015610be7573d6000803e3d6000fd5b505b90565b610bf46110ef565b610bfe600061111c565b565b6000610c0a611007565b600083815260019190910160205260408120549003610c2f57610c2c82610f86565b91505b6000610c39611007565b600084815260019190910160205260408120549150819003610c5e5750600092915050565b60405163234fe6e360e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063234fe6e390602401602060405180830381865afa158015610cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cea9190612082565b90506003816005811115610d0057610d00611eb7565b03610a2f576000610d0f611007565b6000868152600191909101602052604090206002015490508015610d3f57610d3681610c00565b95945050505050565b506003949350505050565b505b5050919050565b610bfe611135565b600081610d67836111b0565b604080516020810193909352820152606001604051602081830303815290604052805190602001209050919050565b6000610da0611007565b54919050565b60006002610db383610c00565b6005811115610dc457610dc4611eb7565b1492915050565b600080600080610dd9611007565b60009586526001908101602052604090952080549581015460029091015495969095945092505050565b604051630f7b104360e31b815260048101829052602260248201526000906064906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637bd8821890604401602060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e999190612236565b600354610eab9061ffff1660646122a2565b61ffff16610eb991906122bd565b610ec391906122d4565b92915050565b610ed16110ef565b6003805461ffff191661ffff92909216919091179055565b6000808211610efa57610efa6122e8565b6000610f04611007565b549050808311610ec357610f3283610f1a611007565b60008481526001918201602052604090200154611414565b610a2f565b610f3f6110ef565b610f74610f4b82611447565b6040518060400160405280600b81526020016a696e76616c696420534c4160a81b81525061102b565b806002610f81828261230d565b505050565b6000610f90611007565b600083815260019190910160205260408120549003610fc057610fbb82610fb5611007565b546114a0565b610ec3565b610fc8611007565b600092835260010160205250604090206002015490565b6000610a366001546001600160a01b031690565b610ffb6110ef565b611004816114ef565b50565b7f643778935c57df947f6944f6a5242a3e91445f6337f4b2ec670c8642153b614f90565b8161103957611039816105d7565b5050565b611045611d4c565b600061105083611521565b9050610a2f81611546565b600081806000015161107f5760405162461bcd60e51b81526004016106389061235f565b610a2f61108b8461157a565b6115ab565b6000806001600160e01b0383856040516020016110b7929190918252602082015260400190565b60408051601f19818403018152919052805160209091012016905060e06110e463ffffffff8716836122bd565b901c95945050505050565b6000546001600160a01b03163314610bfe5760405163118cdaa760e01b8152336004820152602401610638565b600180546001600160a01b0319169055611004816115b8565b338061113f610fdf565b6001600160a01b0316146111a75760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610638565b6110048161111c565b60006111ba611007565b6000838152600191909101602052604081205490036111df576111dc82610f86565b91505b60006111e9611007565b6001016000848152602001908152602001600020905060008160000154905061123c81600014156040518060400160405280600e81526020016d1b9bdd081c985b991bdb5a5e995960921b81525061102b565b60405163234fe6e360e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063234fe6e390602401602060405180830381865afa1580156112a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c89190612082565b905060028160058111156112de576112de611eb7565b0361137d576040516311a7b16760e31b815260048101839052610d3690610930906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638d3d8b3890602401600060405180830381865afa158015611350573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261137891908101906123b1565b61103d565b600381600581111561139157611391611eb7565b036113e257600283015460408051808201909152601081526f6661756c74792072616e646f6d697a6560801b60208201526113cf908215159061102b565b6113d8816111b0565b9695505050505050565b610d4a6040518060400160405280601181526020017070656e64696e672072616e646f6d697a6560781b8152506105d7565b600081831161144157610f3283611429611007565b60008581526001918201602052604090200154611414565b50919050565b60008061145a60408401602085016123ed565b6001600160401b031611801561147f5750600061147a602084018461240a565b60ff16115b8015610ec35750607f611495602084018461240a565b60ff16111592915050565b6000818310156114ce57610f32836114b6611007565b600085815260019182016020526040902001546114a0565b6114d6611007565b6000928352600101602052506040902060020154919050565b6114f76110ef565b6001600160a01b0381166111a757604051631e4fbdf760e01b815260006004820152602401610638565b611529611d6d565b6040805180820190915282815260006020820152610a2f81611608565b61154e611d4c565b5060a0810151604080518082019091526001600160401b03909116602714158152602081019190915290565b606081806000015161159e5760405162461bcd60e51b81526004016106389061235f565b610a2f8360200151611728565b6000610ec3826020611871565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611610611d6d565b8151518290600003611635576040516309036d4760e21b815260040160405180910390fd5b600060ff816001600160401b038160015b80156116b857611655896118e9565b95508161166181612427565b6007600589901c169650601f8816955092505060051985016116b057602089015161168c8a8661194b565b9350808a6020015161169e919061228f565b6116a89084612440565b925050611646565b506000611646565b600760ff861611156116e25760405163bd2ac87960e01b815260ff86166004820152602401610638565b506040805160c08101825298895260ff95861660208a015293851693880193909352921660608601526001600160401b0390811660808601521660a08401525090919050565b60608160028060ff16826040015160ff161461176857604080830151905161800560e51b815260ff91821660048201529082166024820152604401610638565b61177a8460000151856060015161194b565b6001600160401b03166080850181905263fffffffe19016118505760006117a985600001518660400151611a13565b905063ffffffff8082161015610d4a5784516117ce9063ffffffff80841690611ac016565b6040516020016117de9190612453565b604051602081830303815290604052935061180185600001518660400151611a13565b905063ffffffff8082161015610d4a57845184906118289063ffffffff80851690611ac016565b60405160200161183992919061246f565b604051602081830303815290604052935050610d4c565b6080840151845161186a9163ffffffff90811690611ac016565b9250610d4c565b600060208260ff161115611887576118876122e8565b60008260ff1684511161189b5783516118a0565b8260ff165b905060005b818110156118e157806008028582815181106118c3576118c361206c565b01602001516001600160f81b031916901c92909217916001016118a5565b505092915050565b6000816020015182600001515180821115611921576040516363a056dd60e01b81526004810183905260248101829052604401610638565b835160208501805180830160010151955090819061193e82612427565b8152505050505050919050565b600060188260ff161015611963575060ff8116610ec3565b8160ff1660180361198157611977836118e9565b60ff169050610ec3565b8160ff166019036119a05761199583611b80565b61ffff169050610ec3565b8160ff16601a036119c1576119b483611bec565b63ffffffff169050610ec3565b8160ff16601b036119dc576119d583611c4b565b9050610ec3565b8160ff16601f036119f557506001600160401b03610ec3565b604051636d785b1360e01b815260ff83166004820152602401610638565b600080611a1f846118e9565b90508060ff1660ff03611a3c576001600160401b03915050610ec3565b611a498482601f1661194b565b91506001600160401b0380831610611a7f57604051636d785b1360e01b81526001600160401b0383166004820152602401610638565b60ff83166007600583901c1614611ab95760405161800560e51b81526007600583901c16600482015260ff84166024820152604401610638565b5092915050565b6060818360200151611ad29190612440565b83515180821115611b00576040516363a056dd60e01b81526004810183905260248101829052604401610638565b836001600160401b03811115611b1857611b18611fcd565b6040519080825280601f01601f191660200182016040528015611b42576020820181803683370190505b50925083156118e1578451602080870151908183018101908601611b6781838a611caa565b611b7389896001611cf0565b5050505050505092915050565b600081602001516002611b939190612440565b82515180821115611bc1576040516363a056dd60e01b81526004810183905260248101829052604401610638565b8351602085018051600281840181015196509091611bdf8284612440565b9052509395945050505050565b600081602001516004611bff9190612440565b82515180821115611c2d576040516363a056dd60e01b81526004810183905260248101829052604401610638565b8351602085018051600481840181015196509091611bdf8284612440565b600081602001516008611c5e9190612440565b82515180821115611c8c576040516363a056dd60e01b81526004810183905260248101829052604401610638565b8351602085018051600881840181015196509091611bdf8284612440565b5b60208110611cca578151835260209283019290910190601f1901611cab565b8015610f81578151835160208390036101000a6000190180199092169116178352505050565b60008284600001515180821115611d24576040516363a056dd60e01b81526004810183905260248101829052604401610638565b8315611d3c576020860151611d399086612440565b94505b5050505060209190910181905290565b6040518060400160405280600015158152602001611d68611d6d565b905290565b604080516101008101909152606060c08201908152600060e08301528190815260006020820181905260408201819052606082018190526080820181905260a09091015290565b60005b83811015611dcf578181015183820152602001611db7565b50506000910152565b720dcdee840d2dae0d8cadacadce8cac8744060f606b1b815260008551611e06816013850160208a01611db4565b855190830190611e1d816013840160208a01611db4565b8551910190611e33816013840160208901611db4565b8451910190611e49816013840160208801611db4565b016013019695505050505050565b600060208284031215611e6957600080fd5b5035919050565b63ffffffff8116811461100457600080fd5b600080600060608486031215611e9757600080fd5b8335611ea281611e70565b95602085013595506040909401359392505050565b634e487b7160e01b600052602160045260246000fd5b6020810160068310611eef57634e487b7160e01b600052602160045260246000fd5b91905290565b600060208284031215611f0757600080fd5b813561ffff81168114610a2f57600080fd5b6020815260008251806020840152611f38816040850160208701611db4565b601f01601f19169190910160400192915050565b60006040828403121561144157600080fd5b6001600160a01b038116811461100457600080fd5b600060208284031215611f8557600080fd5b8135610a2f81611f5e565b60008351611fa2818460208801611db4565b6101d160f51b9083019081528351611fc1816002840160208801611db4565b01600201949350505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff83168061202257612022611fe3565b8060ff84160491505092915050565b60ff8181168382160190811115610ec357610ec3611ff9565b600060ff83168061205d5761205d611fe3565b8060ff84160691505092915050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561209457600080fd5b815160068110610a2f57600080fd5b60405160a081016001600160401b03811182821017156120c5576120c5611fcd565b60405290565b6001600160401b038116811461100457600080fd5b600082601f8301126120f157600080fd5b81516001600160401b038082111561210b5761210b611fcd565b604051601f8301601f19908116603f0116810190828211818310171561213357612133611fcd565b8160405283815286602085880101111561214c57600080fd5b6113d8846020830160208901611db4565b60006020828403121561216f57600080fd5b81516001600160401b038082111561218657600080fd5b9083019060a0828603121561219a57600080fd5b6121a26120a3565b82516121ad81611f5e565b815260208301516121bd816120cb565b602082015260408301516121d081611e70565b6040820152606083810151908201526080830151828111156121f157600080fd5b6121fd878286016120e0565b60808301525095945050505050565b82815260608101610a2f60208301845460ff8116825260081c6001600160401b0316602090910152565b60006020828403121561224857600080fd5b5051919050565b600060c0820190508682528560208301528460408301528360608301526113d860808301845460ff8116825260081c6001600160401b0316602090910152565b81810381811115610ec357610ec3611ff9565b61ffff818116838216019080821115611ab957611ab9611ff9565b8082028115828204841417610ec357610ec3611ff9565b6000826122e3576122e3611fe3565b500490565b634e487b7160e01b600052600160045260246000fd5b60ff8116811461100457600080fd5b8135612318816122fe565b60ff8116905081548160ff1982161783556020840135612337816120cb565b68ffffffffffffffff008160081b168368ffffffffffffffffff198416171784555050505050565b60208082526032908201527f5769746e65743a20747269656420746f206465636f64652076616c756520667260408201527137b69032b93937b932b2103932b9bab63a1760711b606082015260800190565b6000602082840312156123c357600080fd5b81516001600160401b038111156123d957600080fd5b6123e5848285016120e0565b949350505050565b6000602082840312156123ff57600080fd5b8135610a2f816120cb565b60006020828403121561241c57600080fd5b8135610a2f816122fe565b60006001820161243957612439611ff9565b5060010190565b80820180821115610ec357610ec3611ff9565b60008251612465818460208701611db4565b9190910192915050565b60008351612481818460208801611db4565b835190830190612495818360208801611db4565b0194935050505056fea26469706673582212202db0dbe1ece94f16ab504e23033aebe417a0bf76baf403517b4064b2c275b1aa64736f6c63430008190033",
  "immutableReferences": {
    "1016": [
      {
        "length": 32,
        "start": 648
      },
      {
        "length": 32,
        "start": 2012
      },
      {
        "length": 32,
        "start": 2179
      },
      {
        "length": 32,
        "start": 2644
      },
      {
        "length": 32,
        "start": 3191
      },
      {
        "length": 32,
        "start": 3630
      },
      {
        "length": 32,
        "start": 4693
      },
      {
        "length": 32,
        "start": 4873
      }
    ],
    "2037": [
      {
        "length": 32,
        "start": 722
      },
      {
        "length": 32,
        "start": 2692
      }
    ]
  },
  "generatedSources": [
    {
      "ast": {
        "nativeSrc": "0:9594:84",
        "nodeType": "YulBlock",
        "src": "0:9594:84",
        "statements": [
          {
            "nativeSrc": "6:3:84",
            "nodeType": "YulBlock",
            "src": "6:3:84",
            "statements": []
          },
          {
            "body": {
              "nativeSrc": "73:86:84",
              "nodeType": "YulBlock",
              "src": "73:86:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "137:16:84",
                    "nodeType": "YulBlock",
                    "src": "137:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "146:1:84",
                              "nodeType": "YulLiteral",
                              "src": "146:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "149:1:84",
                              "nodeType": "YulLiteral",
                              "src": "149:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "139:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "139:6:84"
                          },
                          "nativeSrc": "139:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "139:12:84"
                        },
                        "nativeSrc": "139:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "139:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "96:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "96:5:84"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "107:5:84",
                                "nodeType": "YulIdentifier",
                                "src": "107:5:84"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nativeSrc": "122:3:84",
                                        "nodeType": "YulLiteral",
                                        "src": "122:3:84",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "127:1:84",
                                        "nodeType": "YulLiteral",
                                        "src": "127:1:84",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nativeSrc": "118:3:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "118:3:84"
                                    },
                                    "nativeSrc": "118:11:84",
                                    "nodeType": "YulFunctionCall",
                                    "src": "118:11:84"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "131:1:84",
                                    "nodeType": "YulLiteral",
                                    "src": "131:1:84",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nativeSrc": "114:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "114:3:84"
                                },
                                "nativeSrc": "114:19:84",
                                "nodeType": "YulFunctionCall",
                                "src": "114:19:84"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "103:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "103:3:84"
                            },
                            "nativeSrc": "103:31:84",
                            "nodeType": "YulFunctionCall",
                            "src": "103:31:84"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "93:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "93:2:84"
                        },
                        "nativeSrc": "93:42:84",
                        "nodeType": "YulFunctionCall",
                        "src": "93:42:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "86:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "86:6:84"
                    },
                    "nativeSrc": "86:50:84",
                    "nodeType": "YulFunctionCall",
                    "src": "86:50:84"
                  },
                  "nativeSrc": "83:70:84",
                  "nodeType": "YulIf",
                  "src": "83:70:84"
                }
              ]
            },
            "name": "validator_revert_contract_WitnetOracle",
            "nativeSrc": "14:145:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "62:5:84",
                "nodeType": "YulTypedName",
                "src": "62:5:84",
                "type": ""
              }
            ],
            "src": "14:145:84"
          },
          {
            "body": {
              "nativeSrc": "282:315:84",
              "nodeType": "YulBlock",
              "src": "282:315:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "328:16:84",
                    "nodeType": "YulBlock",
                    "src": "328:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "337:1:84",
                              "nodeType": "YulLiteral",
                              "src": "337:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "340:1:84",
                              "nodeType": "YulLiteral",
                              "src": "340:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "330:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "330:6:84"
                          },
                          "nativeSrc": "330:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "330:12:84"
                        },
                        "nativeSrc": "330:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "330:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "303:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "303:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "312:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "312:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "299:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "299:3:84"
                        },
                        "nativeSrc": "299:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "299:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "324:2:84",
                        "nodeType": "YulLiteral",
                        "src": "324:2:84",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "295:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "295:3:84"
                    },
                    "nativeSrc": "295:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "295:32:84"
                  },
                  "nativeSrc": "292:52:84",
                  "nodeType": "YulIf",
                  "src": "292:52:84"
                },
                {
                  "nativeSrc": "353:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "353:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "372:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "372:9:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "366:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "366:5:84"
                    },
                    "nativeSrc": "366:16:84",
                    "nodeType": "YulFunctionCall",
                    "src": "366:16:84"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "357:5:84",
                      "nodeType": "YulTypedName",
                      "src": "357:5:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "430:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "430:5:84"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_contract_WitnetOracle",
                      "nativeSrc": "391:38:84",
                      "nodeType": "YulIdentifier",
                      "src": "391:38:84"
                    },
                    "nativeSrc": "391:45:84",
                    "nodeType": "YulFunctionCall",
                    "src": "391:45:84"
                  },
                  "nativeSrc": "391:45:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "391:45:84"
                },
                {
                  "nativeSrc": "445:15:84",
                  "nodeType": "YulAssignment",
                  "src": "445:15:84",
                  "value": {
                    "name": "value",
                    "nativeSrc": "455:5:84",
                    "nodeType": "YulIdentifier",
                    "src": "455:5:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "445:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "445:6:84"
                    }
                  ]
                },
                {
                  "nativeSrc": "469:40:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "469:40:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "494:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "494:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "505:2:84",
                            "nodeType": "YulLiteral",
                            "src": "505:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "490:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "490:3:84"
                        },
                        "nativeSrc": "490:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "490:18:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "484:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "484:5:84"
                    },
                    "nativeSrc": "484:25:84",
                    "nodeType": "YulFunctionCall",
                    "src": "484:25:84"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "473:7:84",
                      "nodeType": "YulTypedName",
                      "src": "473:7:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "557:7:84",
                        "nodeType": "YulIdentifier",
                        "src": "557:7:84"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_contract_WitnetOracle",
                      "nativeSrc": "518:38:84",
                      "nodeType": "YulIdentifier",
                      "src": "518:38:84"
                    },
                    "nativeSrc": "518:47:84",
                    "nodeType": "YulFunctionCall",
                    "src": "518:47:84"
                  },
                  "nativeSrc": "518:47:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "518:47:84"
                },
                {
                  "nativeSrc": "574:17:84",
                  "nodeType": "YulAssignment",
                  "src": "574:17:84",
                  "value": {
                    "name": "value_1",
                    "nativeSrc": "584:7:84",
                    "nodeType": "YulIdentifier",
                    "src": "584:7:84"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "574:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "574:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_contract$_WitnetOracle_$749t_address_fromMemory",
            "nativeSrc": "164:433:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "240:9:84",
                "nodeType": "YulTypedName",
                "src": "240:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "251:7:84",
                "nodeType": "YulTypedName",
                "src": "251:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "263:6:84",
                "nodeType": "YulTypedName",
                "src": "263:6:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "271:6:84",
                "nodeType": "YulTypedName",
                "src": "271:6:84",
                "type": ""
              }
            ],
            "src": "164:433:84"
          },
          {
            "body": {
              "nativeSrc": "703:102:84",
              "nodeType": "YulBlock",
              "src": "703:102:84",
              "statements": [
                {
                  "nativeSrc": "713:26:84",
                  "nodeType": "YulAssignment",
                  "src": "713:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "725:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "725:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "736:2:84",
                        "nodeType": "YulLiteral",
                        "src": "736:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "721:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "721:3:84"
                    },
                    "nativeSrc": "721:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "721:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "713:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "713:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "755:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "755:9:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "770:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "770:6:84"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "786:3:84",
                                    "nodeType": "YulLiteral",
                                    "src": "786:3:84",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "791:1:84",
                                    "nodeType": "YulLiteral",
                                    "src": "791:1:84",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "782:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "782:3:84"
                                },
                                "nativeSrc": "782:11:84",
                                "nodeType": "YulFunctionCall",
                                "src": "782:11:84"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "795:1:84",
                                "nodeType": "YulLiteral",
                                "src": "795:1:84",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "778:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "778:3:84"
                            },
                            "nativeSrc": "778:19:84",
                            "nodeType": "YulFunctionCall",
                            "src": "778:19:84"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "766:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "766:3:84"
                        },
                        "nativeSrc": "766:32:84",
                        "nodeType": "YulFunctionCall",
                        "src": "766:32:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "748:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "748:6:84"
                    },
                    "nativeSrc": "748:51:84",
                    "nodeType": "YulFunctionCall",
                    "src": "748:51:84"
                  },
                  "nativeSrc": "748:51:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "748:51:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nativeSrc": "602:203:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "672:9:84",
                "nodeType": "YulTypedName",
                "src": "672:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "683:6:84",
                "nodeType": "YulTypedName",
                "src": "683:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "694:4:84",
                "nodeType": "YulTypedName",
                "src": "694:4:84",
                "type": ""
              }
            ],
            "src": "602:203:84"
          },
          {
            "body": {
              "nativeSrc": "890:210:84",
              "nodeType": "YulBlock",
              "src": "890:210:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "936:16:84",
                    "nodeType": "YulBlock",
                    "src": "936:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "945:1:84",
                              "nodeType": "YulLiteral",
                              "src": "945:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "948:1:84",
                              "nodeType": "YulLiteral",
                              "src": "948:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "938:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "938:6:84"
                          },
                          "nativeSrc": "938:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "938:12:84"
                        },
                        "nativeSrc": "938:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "938:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "911:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "911:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "920:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "920:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "907:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "907:3:84"
                        },
                        "nativeSrc": "907:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "907:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "932:2:84",
                        "nodeType": "YulLiteral",
                        "src": "932:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "903:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "903:3:84"
                    },
                    "nativeSrc": "903:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "903:32:84"
                  },
                  "nativeSrc": "900:52:84",
                  "nodeType": "YulIf",
                  "src": "900:52:84"
                },
                {
                  "nativeSrc": "961:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "961:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "980:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "980:9:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "974:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "974:5:84"
                    },
                    "nativeSrc": "974:16:84",
                    "nodeType": "YulFunctionCall",
                    "src": "974:16:84"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "965:5:84",
                      "nodeType": "YulTypedName",
                      "src": "965:5:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "1054:16:84",
                    "nodeType": "YulBlock",
                    "src": "1054:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "1063:1:84",
                              "nodeType": "YulLiteral",
                              "src": "1063:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "1066:1:84",
                              "nodeType": "YulLiteral",
                              "src": "1066:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "1056:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "1056:6:84"
                          },
                          "nativeSrc": "1056:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "1056:12:84"
                        },
                        "nativeSrc": "1056:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "1056:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "1012:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "1012:5:84"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "1023:5:84",
                                "nodeType": "YulIdentifier",
                                "src": "1023:5:84"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1034:3:84",
                                    "nodeType": "YulLiteral",
                                    "src": "1034:3:84",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1039:10:84",
                                    "nodeType": "YulLiteral",
                                    "src": "1039:10:84",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "1030:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "1030:3:84"
                                },
                                "nativeSrc": "1030:20:84",
                                "nodeType": "YulFunctionCall",
                                "src": "1030:20:84"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "1019:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "1019:3:84"
                            },
                            "nativeSrc": "1019:32:84",
                            "nodeType": "YulFunctionCall",
                            "src": "1019:32:84"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "1009:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "1009:2:84"
                        },
                        "nativeSrc": "1009:43:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1009:43:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "1002:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1002:6:84"
                    },
                    "nativeSrc": "1002:51:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1002:51:84"
                  },
                  "nativeSrc": "999:71:84",
                  "nodeType": "YulIf",
                  "src": "999:71:84"
                },
                {
                  "nativeSrc": "1079:15:84",
                  "nodeType": "YulAssignment",
                  "src": "1079:15:84",
                  "value": {
                    "name": "value",
                    "nativeSrc": "1089:5:84",
                    "nodeType": "YulIdentifier",
                    "src": "1089:5:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "1079:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1079:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4_fromMemory",
            "nativeSrc": "810:290:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "856:9:84",
                "nodeType": "YulTypedName",
                "src": "856:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "867:7:84",
                "nodeType": "YulTypedName",
                "src": "867:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "879:6:84",
                "nodeType": "YulTypedName",
                "src": "879:6:84",
                "type": ""
              }
            ],
            "src": "810:290:84"
          },
          {
            "body": {
              "nativeSrc": "1279:227:84",
              "nodeType": "YulBlock",
              "src": "1279:227:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1296:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "1296:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1307:2:84",
                        "nodeType": "YulLiteral",
                        "src": "1307:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1289:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1289:6:84"
                    },
                    "nativeSrc": "1289:21:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1289:21:84"
                  },
                  "nativeSrc": "1289:21:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1289:21:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "1330:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "1330:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1341:2:84",
                            "nodeType": "YulLiteral",
                            "src": "1341:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1326:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1326:3:84"
                        },
                        "nativeSrc": "1326:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1326:18:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1346:2:84",
                        "nodeType": "YulLiteral",
                        "src": "1346:2:84",
                        "type": "",
                        "value": "37"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1319:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1319:6:84"
                    },
                    "nativeSrc": "1319:30:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1319:30:84"
                  },
                  "nativeSrc": "1319:30:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1319:30:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "1369:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "1369:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1380:2:84",
                            "nodeType": "YulLiteral",
                            "src": "1380:2:84",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1365:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1365:3:84"
                        },
                        "nativeSrc": "1365:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1365:18:84"
                      },
                      {
                        "hexValue": "5573696e675769746e65743a20756e636f6d706c69616e74205769746e65744f",
                        "kind": "string",
                        "nativeSrc": "1385:34:84",
                        "nodeType": "YulLiteral",
                        "src": "1385:34:84",
                        "type": "",
                        "value": "UsingWitnet: uncompliant WitnetO"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1358:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1358:6:84"
                    },
                    "nativeSrc": "1358:62:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1358:62:84"
                  },
                  "nativeSrc": "1358:62:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1358:62:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "1440:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "1440:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1451:2:84",
                            "nodeType": "YulLiteral",
                            "src": "1451:2:84",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1436:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1436:3:84"
                        },
                        "nativeSrc": "1436:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1436:18:84"
                      },
                      {
                        "hexValue": "7261636c65",
                        "kind": "string",
                        "nativeSrc": "1456:7:84",
                        "nodeType": "YulLiteral",
                        "src": "1456:7:84",
                        "type": "",
                        "value": "racle"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1429:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1429:6:84"
                    },
                    "nativeSrc": "1429:35:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1429:35:84"
                  },
                  "nativeSrc": "1429:35:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1429:35:84"
                },
                {
                  "nativeSrc": "1473:27:84",
                  "nodeType": "YulAssignment",
                  "src": "1473:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1485:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "1485:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1496:3:84",
                        "nodeType": "YulLiteral",
                        "src": "1496:3:84",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "1481:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "1481:3:84"
                    },
                    "nativeSrc": "1481:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1481:19:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "1473:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "1473:4:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_57d830abe71d02a02e5da4295b2a41f780665da6ca2ca2ca1e1e440e807c06d7__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "1105:401:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "1256:9:84",
                "nodeType": "YulTypedName",
                "src": "1256:9:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "1270:4:84",
                "nodeType": "YulTypedName",
                "src": "1270:4:84",
                "type": ""
              }
            ],
            "src": "1105:401:84"
          },
          {
            "body": {
              "nativeSrc": "1622:184:84",
              "nodeType": "YulBlock",
              "src": "1622:184:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "1668:16:84",
                    "nodeType": "YulBlock",
                    "src": "1668:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "1677:1:84",
                              "nodeType": "YulLiteral",
                              "src": "1677:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "1680:1:84",
                              "nodeType": "YulLiteral",
                              "src": "1680:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "1670:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "1670:6:84"
                          },
                          "nativeSrc": "1670:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "1670:12:84"
                        },
                        "nativeSrc": "1670:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "1670:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "1643:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "1643:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "1652:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "1652:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "1639:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1639:3:84"
                        },
                        "nativeSrc": "1639:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1639:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1664:2:84",
                        "nodeType": "YulLiteral",
                        "src": "1664:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "1635:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "1635:3:84"
                    },
                    "nativeSrc": "1635:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1635:32:84"
                  },
                  "nativeSrc": "1632:52:84",
                  "nodeType": "YulIf",
                  "src": "1632:52:84"
                },
                {
                  "nativeSrc": "1693:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "1693:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1712:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "1712:9:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "1706:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "1706:5:84"
                    },
                    "nativeSrc": "1706:16:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1706:16:84"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "1697:5:84",
                      "nodeType": "YulTypedName",
                      "src": "1697:5:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "1770:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "1770:5:84"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_contract_WitnetOracle",
                      "nativeSrc": "1731:38:84",
                      "nodeType": "YulIdentifier",
                      "src": "1731:38:84"
                    },
                    "nativeSrc": "1731:45:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1731:45:84"
                  },
                  "nativeSrc": "1731:45:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1731:45:84"
                },
                {
                  "nativeSrc": "1785:15:84",
                  "nodeType": "YulAssignment",
                  "src": "1785:15:84",
                  "value": {
                    "name": "value",
                    "nativeSrc": "1795:5:84",
                    "nodeType": "YulIdentifier",
                    "src": "1795:5:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "1785:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1785:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_contract$_WitnetRequestBytecodes_$849_fromMemory",
            "nativeSrc": "1511:295:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "1588:9:84",
                "nodeType": "YulTypedName",
                "src": "1588:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "1599:7:84",
                "nodeType": "YulTypedName",
                "src": "1599:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "1611:6:84",
                "nodeType": "YulTypedName",
                "src": "1611:6:84",
                "type": ""
              }
            ],
            "src": "1511:295:84"
          },
          {
            "body": {
              "nativeSrc": "1843:95:84",
              "nodeType": "YulBlock",
              "src": "1843:95:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "1860:1:84",
                        "nodeType": "YulLiteral",
                        "src": "1860:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "1867:3:84",
                            "nodeType": "YulLiteral",
                            "src": "1867:3:84",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1872:10:84",
                            "nodeType": "YulLiteral",
                            "src": "1872:10:84",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "1863:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1863:3:84"
                        },
                        "nativeSrc": "1863:20:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1863:20:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1853:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1853:6:84"
                    },
                    "nativeSrc": "1853:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1853:31:84"
                  },
                  "nativeSrc": "1853:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1853:31:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "1900:1:84",
                        "nodeType": "YulLiteral",
                        "src": "1900:1:84",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1903:4:84",
                        "nodeType": "YulLiteral",
                        "src": "1903:4:84",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1893:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1893:6:84"
                    },
                    "nativeSrc": "1893:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1893:15:84"
                  },
                  "nativeSrc": "1893:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1893:15:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "1924:1:84",
                        "nodeType": "YulLiteral",
                        "src": "1924:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1927:4:84",
                        "nodeType": "YulLiteral",
                        "src": "1927:4:84",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "1917:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1917:6:84"
                    },
                    "nativeSrc": "1917:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1917:15:84"
                  },
                  "nativeSrc": "1917:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1917:15:84"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nativeSrc": "1811:127:84",
            "nodeType": "YulFunctionDefinition",
            "src": "1811:127:84"
          },
          {
            "body": {
              "nativeSrc": "1975:95:84",
              "nodeType": "YulBlock",
              "src": "1975:95:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "1992:1:84",
                        "nodeType": "YulLiteral",
                        "src": "1992:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "1999:3:84",
                            "nodeType": "YulLiteral",
                            "src": "1999:3:84",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2004:10:84",
                            "nodeType": "YulLiteral",
                            "src": "2004:10:84",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "1995:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1995:3:84"
                        },
                        "nativeSrc": "1995:20:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1995:20:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1985:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1985:6:84"
                    },
                    "nativeSrc": "1985:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1985:31:84"
                  },
                  "nativeSrc": "1985:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1985:31:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "2032:1:84",
                        "nodeType": "YulLiteral",
                        "src": "2032:1:84",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2035:4:84",
                        "nodeType": "YulLiteral",
                        "src": "2035:4:84",
                        "type": "",
                        "value": "0x21"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2025:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "2025:6:84"
                    },
                    "nativeSrc": "2025:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2025:15:84"
                  },
                  "nativeSrc": "2025:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "2025:15:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "2056:1:84",
                        "nodeType": "YulLiteral",
                        "src": "2056:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2059:4:84",
                        "nodeType": "YulLiteral",
                        "src": "2059:4:84",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "2049:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "2049:6:84"
                    },
                    "nativeSrc": "2049:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2049:15:84"
                  },
                  "nativeSrc": "2049:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "2049:15:84"
                }
              ]
            },
            "name": "panic_error_0x21",
            "nativeSrc": "1943:127:84",
            "nodeType": "YulFunctionDefinition",
            "src": "1943:127:84"
          },
          {
            "body": {
              "nativeSrc": "2141:184:84",
              "nodeType": "YulBlock",
              "src": "2141:184:84",
              "statements": [
                {
                  "nativeSrc": "2151:10:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "2151:10:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "2160:1:84",
                    "nodeType": "YulLiteral",
                    "src": "2160:1:84",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nativeSrc": "2155:1:84",
                      "nodeType": "YulTypedName",
                      "src": "2155:1:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "2220:63:84",
                    "nodeType": "YulBlock",
                    "src": "2220:63:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "dst",
                                  "nativeSrc": "2245:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "2245:3:84"
                                },
                                {
                                  "name": "i",
                                  "nativeSrc": "2250:1:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "2250:1:84"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "2241:3:84",
                                "nodeType": "YulIdentifier",
                                "src": "2241:3:84"
                              },
                              "nativeSrc": "2241:11:84",
                              "nodeType": "YulFunctionCall",
                              "src": "2241:11:84"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "src",
                                      "nativeSrc": "2264:3:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "2264:3:84"
                                    },
                                    {
                                      "name": "i",
                                      "nativeSrc": "2269:1:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "2269:1:84"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nativeSrc": "2260:3:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "2260:3:84"
                                  },
                                  "nativeSrc": "2260:11:84",
                                  "nodeType": "YulFunctionCall",
                                  "src": "2260:11:84"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nativeSrc": "2254:5:84",
                                "nodeType": "YulIdentifier",
                                "src": "2254:5:84"
                              },
                              "nativeSrc": "2254:18:84",
                              "nodeType": "YulFunctionCall",
                              "src": "2254:18:84"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "2234:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "2234:6:84"
                          },
                          "nativeSrc": "2234:39:84",
                          "nodeType": "YulFunctionCall",
                          "src": "2234:39:84"
                        },
                        "nativeSrc": "2234:39:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "2234:39:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nativeSrc": "2181:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "2181:1:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "2184:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "2184:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "2178:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "2178:2:84"
                    },
                    "nativeSrc": "2178:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2178:13:84"
                  },
                  "nativeSrc": "2170:113:84",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "2192:19:84",
                    "nodeType": "YulBlock",
                    "src": "2192:19:84",
                    "statements": [
                      {
                        "nativeSrc": "2194:15:84",
                        "nodeType": "YulAssignment",
                        "src": "2194:15:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nativeSrc": "2203:1:84",
                              "nodeType": "YulIdentifier",
                              "src": "2203:1:84"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "2206:2:84",
                              "nodeType": "YulLiteral",
                              "src": "2206:2:84",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "2199:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "2199:3:84"
                          },
                          "nativeSrc": "2199:10:84",
                          "nodeType": "YulFunctionCall",
                          "src": "2199:10:84"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nativeSrc": "2194:1:84",
                            "nodeType": "YulIdentifier",
                            "src": "2194:1:84"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "2174:3:84",
                    "nodeType": "YulBlock",
                    "src": "2174:3:84",
                    "statements": []
                  },
                  "src": "2170:113:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dst",
                            "nativeSrc": "2303:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "2303:3:84"
                          },
                          {
                            "name": "length",
                            "nativeSrc": "2308:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "2308:6:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2299:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "2299:3:84"
                        },
                        "nativeSrc": "2299:16:84",
                        "nodeType": "YulFunctionCall",
                        "src": "2299:16:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2317:1:84",
                        "nodeType": "YulLiteral",
                        "src": "2317:1:84",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2292:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "2292:6:84"
                    },
                    "nativeSrc": "2292:27:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2292:27:84"
                  },
                  "nativeSrc": "2292:27:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "2292:27:84"
                }
              ]
            },
            "name": "copy_memory_to_memory_with_cleanup",
            "nativeSrc": "2075:250:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "src",
                "nativeSrc": "2119:3:84",
                "nodeType": "YulTypedName",
                "src": "2119:3:84",
                "type": ""
              },
              {
                "name": "dst",
                "nativeSrc": "2124:3:84",
                "nodeType": "YulTypedName",
                "src": "2124:3:84",
                "type": ""
              },
              {
                "name": "length",
                "nativeSrc": "2129:6:84",
                "nodeType": "YulTypedName",
                "src": "2129:6:84",
                "type": ""
              }
            ],
            "src": "2075:250:84"
          },
          {
            "body": {
              "nativeSrc": "2380:221:84",
              "nodeType": "YulBlock",
              "src": "2380:221:84",
              "statements": [
                {
                  "nativeSrc": "2390:26:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "2390:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "2410:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "2410:5:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "2404:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "2404:5:84"
                    },
                    "nativeSrc": "2404:12:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2404:12:84"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "2394:6:84",
                      "nodeType": "YulTypedName",
                      "src": "2394:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "2432:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "2432:3:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "2437:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "2437:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2425:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "2425:6:84"
                    },
                    "nativeSrc": "2425:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2425:19:84"
                  },
                  "nativeSrc": "2425:19:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "2425:19:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "2492:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "2492:5:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2499:4:84",
                            "nodeType": "YulLiteral",
                            "src": "2499:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2488:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "2488:3:84"
                        },
                        "nativeSrc": "2488:16:84",
                        "nodeType": "YulFunctionCall",
                        "src": "2488:16:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "2510:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "2510:3:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2515:4:84",
                            "nodeType": "YulLiteral",
                            "src": "2515:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2506:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "2506:3:84"
                        },
                        "nativeSrc": "2506:14:84",
                        "nodeType": "YulFunctionCall",
                        "src": "2506:14:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "2522:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "2522:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nativeSrc": "2453:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "2453:34:84"
                    },
                    "nativeSrc": "2453:76:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2453:76:84"
                  },
                  "nativeSrc": "2453:76:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "2453:76:84"
                },
                {
                  "nativeSrc": "2538:57:84",
                  "nodeType": "YulAssignment",
                  "src": "2538:57:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "2553:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "2553:3:84"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nativeSrc": "2566:6:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "2566:6:84"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "2574:2:84",
                                    "nodeType": "YulLiteral",
                                    "src": "2574:2:84",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "2562:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "2562:3:84"
                                },
                                "nativeSrc": "2562:15:84",
                                "nodeType": "YulFunctionCall",
                                "src": "2562:15:84"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "2583:2:84",
                                    "nodeType": "YulLiteral",
                                    "src": "2583:2:84",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "2579:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "2579:3:84"
                                },
                                "nativeSrc": "2579:7:84",
                                "nodeType": "YulFunctionCall",
                                "src": "2579:7:84"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "2558:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "2558:3:84"
                            },
                            "nativeSrc": "2558:29:84",
                            "nodeType": "YulFunctionCall",
                            "src": "2558:29:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2549:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "2549:3:84"
                        },
                        "nativeSrc": "2549:39:84",
                        "nodeType": "YulFunctionCall",
                        "src": "2549:39:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2590:4:84",
                        "nodeType": "YulLiteral",
                        "src": "2590:4:84",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "2545:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "2545:3:84"
                    },
                    "nativeSrc": "2545:50:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2545:50:84"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "2538:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "2538:3:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string",
            "nativeSrc": "2330:271:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "2357:5:84",
                "nodeType": "YulTypedName",
                "src": "2357:5:84",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "2364:3:84",
                "nodeType": "YulTypedName",
                "src": "2364:3:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "2372:3:84",
                "nodeType": "YulTypedName",
                "src": "2372:3:84",
                "type": ""
              }
            ],
            "src": "2330:271:84"
          },
          {
            "body": {
              "nativeSrc": "2661:102:84",
              "nodeType": "YulBlock",
              "src": "2661:102:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "2678:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "2678:3:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2683:1:84",
                        "nodeType": "YulLiteral",
                        "src": "2683:1:84",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2671:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "2671:6:84"
                    },
                    "nativeSrc": "2671:14:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2671:14:84"
                  },
                  "nativeSrc": "2671:14:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "2671:14:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "2705:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "2705:3:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2710:4:84",
                            "nodeType": "YulLiteral",
                            "src": "2710:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2701:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "2701:3:84"
                        },
                        "nativeSrc": "2701:14:84",
                        "nodeType": "YulFunctionCall",
                        "src": "2701:14:84"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "2721:3:84",
                            "nodeType": "YulLiteral",
                            "src": "2721:3:84",
                            "type": "",
                            "value": "255"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2726:1:84",
                            "nodeType": "YulLiteral",
                            "src": "2726:1:84",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "2717:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "2717:3:84"
                        },
                        "nativeSrc": "2717:11:84",
                        "nodeType": "YulFunctionCall",
                        "src": "2717:11:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2694:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "2694:6:84"
                    },
                    "nativeSrc": "2694:35:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2694:35:84"
                  },
                  "nativeSrc": "2694:35:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "2694:35:84"
                },
                {
                  "nativeSrc": "2738:19:84",
                  "nodeType": "YulAssignment",
                  "src": "2738:19:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "2749:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "2749:3:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2754:2:84",
                        "nodeType": "YulLiteral",
                        "src": "2754:2:84",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "2745:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "2745:3:84"
                    },
                    "nativeSrc": "2745:12:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2745:12:84"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "2738:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "2738:3:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_stringliteral_56e8",
            "nativeSrc": "2606:157:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "2645:3:84",
                "nodeType": "YulTypedName",
                "src": "2645:3:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "2653:3:84",
                "nodeType": "YulTypedName",
                "src": "2653:3:84",
                "type": ""
              }
            ],
            "src": "2606:157:84"
          },
          {
            "body": {
              "nativeSrc": "3342:1513:84",
              "nodeType": "YulBlock",
              "src": "3342:1513:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "3377:22:84",
                    "nodeType": "YulBlock",
                    "src": "3377:22:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x21",
                            "nativeSrc": "3379:16:84",
                            "nodeType": "YulIdentifier",
                            "src": "3379:16:84"
                          },
                          "nativeSrc": "3379:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "3379:18:84"
                        },
                        "nativeSrc": "3379:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "3379:18:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "3365:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "3365:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3373:1:84",
                            "nodeType": "YulLiteral",
                            "src": "3373:1:84",
                            "type": "",
                            "value": "5"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "3362:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "3362:2:84"
                        },
                        "nativeSrc": "3362:13:84",
                        "nodeType": "YulFunctionCall",
                        "src": "3362:13:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "3355:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3355:6:84"
                    },
                    "nativeSrc": "3355:21:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3355:21:84"
                  },
                  "nativeSrc": "3352:47:84",
                  "nodeType": "YulIf",
                  "src": "3352:47:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3415:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "3415:9:84"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "3426:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "3426:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3408:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3408:6:84"
                    },
                    "nativeSrc": "3408:25:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3408:25:84"
                  },
                  "nativeSrc": "3408:25:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "3408:25:84"
                },
                {
                  "nativeSrc": "3442:12:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3442:12:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "3452:2:84",
                    "nodeType": "YulLiteral",
                    "src": "3452:2:84",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "3446:2:84",
                      "nodeType": "YulTypedName",
                      "src": "3446:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "3474:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "3474:9:84"
                          },
                          {
                            "name": "_1",
                            "nativeSrc": "3485:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "3485:2:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3470:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "3470:3:84"
                        },
                        "nativeSrc": "3470:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "3470:18:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3490:3:84",
                        "nodeType": "YulLiteral",
                        "src": "3490:3:84",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3463:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3463:6:84"
                    },
                    "nativeSrc": "3463:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3463:31:84"
                  },
                  "nativeSrc": "3463:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "3463:31:84"
                },
                {
                  "nativeSrc": "3503:11:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3503:11:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "3513:1:84",
                    "nodeType": "YulLiteral",
                    "src": "3513:1:84",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nativeSrc": "3507:2:84",
                      "nodeType": "YulTypedName",
                      "src": "3507:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "3534:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "3534:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3545:3:84",
                            "nodeType": "YulLiteral",
                            "src": "3545:3:84",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3530:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "3530:3:84"
                        },
                        "nativeSrc": "3530:19:84",
                        "nodeType": "YulFunctionCall",
                        "src": "3530:19:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3551:1:84",
                        "nodeType": "YulLiteral",
                        "src": "3551:1:84",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3523:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3523:6:84"
                    },
                    "nativeSrc": "3523:30:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3523:30:84"
                  },
                  "nativeSrc": "3523:30:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "3523:30:84"
                },
                {
                  "nativeSrc": "3562:12:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3562:12:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "3572:2:84",
                    "nodeType": "YulLiteral",
                    "src": "3572:2:84",
                    "type": "",
                    "value": "64"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nativeSrc": "3566:2:84",
                      "nodeType": "YulTypedName",
                      "src": "3566:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "3594:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "3594:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3605:2:84",
                            "nodeType": "YulLiteral",
                            "src": "3605:2:84",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3590:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "3590:3:84"
                        },
                        "nativeSrc": "3590:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "3590:18:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3610:3:84",
                        "nodeType": "YulLiteral",
                        "src": "3610:3:84",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3583:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3583:6:84"
                    },
                    "nativeSrc": "3583:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3583:31:84"
                  },
                  "nativeSrc": "3583:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "3583:31:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "3634:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "3634:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3645:3:84",
                            "nodeType": "YulLiteral",
                            "src": "3645:3:84",
                            "type": "",
                            "value": "192"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3630:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "3630:3:84"
                        },
                        "nativeSrc": "3630:19:84",
                        "nodeType": "YulFunctionCall",
                        "src": "3630:19:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3651:1:84",
                        "nodeType": "YulLiteral",
                        "src": "3651:1:84",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3623:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3623:6:84"
                    },
                    "nativeSrc": "3623:30:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3623:30:84"
                  },
                  "nativeSrc": "3623:30:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "3623:30:84"
                },
                {
                  "nativeSrc": "3662:38:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3662:38:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3685:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "3685:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3696:3:84",
                        "nodeType": "YulLiteral",
                        "src": "3696:3:84",
                        "type": "",
                        "value": "224"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3681:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "3681:3:84"
                    },
                    "nativeSrc": "3681:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3681:19:84"
                  },
                  "variables": [
                    {
                      "name": "updated_pos",
                      "nativeSrc": "3666:11:84",
                      "nodeType": "YulTypedName",
                      "src": "3666:11:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "3720:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "3720:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3731:2:84",
                            "nodeType": "YulLiteral",
                            "src": "3731:2:84",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3716:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "3716:3:84"
                        },
                        "nativeSrc": "3716:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "3716:18:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3736:3:84",
                        "nodeType": "YulLiteral",
                        "src": "3736:3:84",
                        "type": "",
                        "value": "224"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3709:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3709:6:84"
                    },
                    "nativeSrc": "3709:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3709:31:84"
                  },
                  "nativeSrc": "3709:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "3709:31:84"
                },
                {
                  "nativeSrc": "3749:22:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3749:22:84",
                  "value": {
                    "name": "updated_pos",
                    "nativeSrc": "3760:11:84",
                    "nodeType": "YulIdentifier",
                    "src": "3760:11:84"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nativeSrc": "3753:3:84",
                      "nodeType": "YulTypedName",
                      "src": "3753:3:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "3780:27:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3780:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "3800:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "3800:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "3794:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "3794:5:84"
                    },
                    "nativeSrc": "3794:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3794:13:84"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "3784:6:84",
                      "nodeType": "YulTypedName",
                      "src": "3784:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "updated_pos",
                        "nativeSrc": "3823:11:84",
                        "nodeType": "YulIdentifier",
                        "src": "3823:11:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "3836:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "3836:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3816:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3816:6:84"
                    },
                    "nativeSrc": "3816:27:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3816:27:84"
                  },
                  "nativeSrc": "3816:27:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "3816:27:84"
                },
                {
                  "nativeSrc": "3852:13:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3852:13:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "3862:3:84",
                    "nodeType": "YulLiteral",
                    "src": "3862:3:84",
                    "type": "",
                    "value": "256"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nativeSrc": "3856:2:84",
                      "nodeType": "YulTypedName",
                      "src": "3856:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "3874:25:84",
                  "nodeType": "YulAssignment",
                  "src": "3874:25:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3885:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "3885:9:84"
                      },
                      {
                        "name": "_4",
                        "nativeSrc": "3896:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "3896:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3881:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "3881:3:84"
                    },
                    "nativeSrc": "3881:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3881:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nativeSrc": "3874:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "3874:3:84"
                    }
                  ]
                },
                {
                  "nativeSrc": "3908:53:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3908:53:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "3930:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "3930:9:84"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "3945:1:84",
                                "nodeType": "YulLiteral",
                                "src": "3945:1:84",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "3948:6:84",
                                "nodeType": "YulIdentifier",
                                "src": "3948:6:84"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "3941:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "3941:3:84"
                            },
                            "nativeSrc": "3941:14:84",
                            "nodeType": "YulFunctionCall",
                            "src": "3941:14:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3926:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "3926:3:84"
                        },
                        "nativeSrc": "3926:30:84",
                        "nodeType": "YulFunctionCall",
                        "src": "3926:30:84"
                      },
                      {
                        "name": "_4",
                        "nativeSrc": "3958:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "3958:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3922:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "3922:3:84"
                    },
                    "nativeSrc": "3922:39:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3922:39:84"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nativeSrc": "3912:6:84",
                      "nodeType": "YulTypedName",
                      "src": "3912:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "3970:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3970:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "3988:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "3988:6:84"
                      },
                      {
                        "name": "_1",
                        "nativeSrc": "3996:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "3996:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3984:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "3984:3:84"
                    },
                    "nativeSrc": "3984:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3984:15:84"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nativeSrc": "3974:6:84",
                      "nodeType": "YulTypedName",
                      "src": "3974:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "4008:10:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4008:10:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "4017:1:84",
                    "nodeType": "YulLiteral",
                    "src": "4017:1:84",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nativeSrc": "4012:1:84",
                      "nodeType": "YulTypedName",
                      "src": "4012:1:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "4076:659:84",
                    "nodeType": "YulBlock",
                    "src": "4076:659:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "4097:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "4097:3:84"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "tail_1",
                                      "nativeSrc": "4110:6:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "4110:6:84"
                                    },
                                    {
                                      "name": "headStart",
                                      "nativeSrc": "4118:9:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "4118:9:84"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nativeSrc": "4106:3:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "4106:3:84"
                                  },
                                  "nativeSrc": "4106:22:84",
                                  "nodeType": "YulFunctionCall",
                                  "src": "4106:22:84"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "4134:3:84",
                                      "nodeType": "YulLiteral",
                                      "src": "4134:3:84",
                                      "type": "",
                                      "value": "255"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nativeSrc": "4130:3:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "4130:3:84"
                                  },
                                  "nativeSrc": "4130:8:84",
                                  "nodeType": "YulFunctionCall",
                                  "src": "4130:8:84"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "4102:3:84",
                                "nodeType": "YulIdentifier",
                                "src": "4102:3:84"
                              },
                              "nativeSrc": "4102:37:84",
                              "nodeType": "YulFunctionCall",
                              "src": "4102:37:84"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "4090:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "4090:6:84"
                          },
                          "nativeSrc": "4090:50:84",
                          "nodeType": "YulFunctionCall",
                          "src": "4090:50:84"
                        },
                        "nativeSrc": "4090:50:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "4090:50:84"
                      },
                      {
                        "nativeSrc": "4153:23:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "4153:23:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "4169:6:84",
                              "nodeType": "YulIdentifier",
                              "src": "4169:6:84"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nativeSrc": "4163:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "4163:5:84"
                          },
                          "nativeSrc": "4163:13:84",
                          "nodeType": "YulFunctionCall",
                          "src": "4163:13:84"
                        },
                        "variables": [
                          {
                            "name": "_5",
                            "nativeSrc": "4157:2:84",
                            "nodeType": "YulTypedName",
                            "src": "4157:2:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "4189:19:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "4189:19:84",
                        "value": {
                          "name": "tail_1",
                          "nativeSrc": "4202:6:84",
                          "nodeType": "YulIdentifier",
                          "src": "4202:6:84"
                        },
                        "variables": [
                          {
                            "name": "pos_1",
                            "nativeSrc": "4193:5:84",
                            "nodeType": "YulTypedName",
                            "src": "4193:5:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "4221:15:84",
                        "nodeType": "YulAssignment",
                        "src": "4221:15:84",
                        "value": {
                          "name": "tail_1",
                          "nativeSrc": "4230:6:84",
                          "nodeType": "YulIdentifier",
                          "src": "4230:6:84"
                        },
                        "variableNames": [
                          {
                            "name": "pos_1",
                            "nativeSrc": "4221:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "4221:5:84"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "4249:29:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "4249:29:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "tail_1",
                              "nativeSrc": "4267:6:84",
                              "nodeType": "YulIdentifier",
                              "src": "4267:6:84"
                            },
                            {
                              "name": "_3",
                              "nativeSrc": "4275:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "4275:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "4263:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "4263:3:84"
                          },
                          "nativeSrc": "4263:15:84",
                          "nodeType": "YulFunctionCall",
                          "src": "4263:15:84"
                        },
                        "variables": [
                          {
                            "name": "tail_2",
                            "nativeSrc": "4253:6:84",
                            "nodeType": "YulTypedName",
                            "src": "4253:6:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "4291:18:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "4291:18:84",
                        "value": {
                          "name": "_5",
                          "nativeSrc": "4307:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "4307:2:84"
                        },
                        "variables": [
                          {
                            "name": "srcPtr_1",
                            "nativeSrc": "4295:8:84",
                            "nodeType": "YulTypedName",
                            "src": "4295:8:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "4322:13:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "4322:13:84",
                        "value": {
                          "name": "_2",
                          "nativeSrc": "4333:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "4333:2:84"
                        },
                        "variables": [
                          {
                            "name": "i_1",
                            "nativeSrc": "4326:3:84",
                            "nodeType": "YulTypedName",
                            "src": "4326:3:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nativeSrc": "4405:221:84",
                          "nodeType": "YulBlock",
                          "src": "4405:221:84",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "pos_1",
                                    "nativeSrc": "4430:5:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "4430:5:84"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "name": "tail_2",
                                        "nativeSrc": "4441:6:84",
                                        "nodeType": "YulIdentifier",
                                        "src": "4441:6:84"
                                      },
                                      {
                                        "name": "tail_1",
                                        "nativeSrc": "4449:6:84",
                                        "nodeType": "YulIdentifier",
                                        "src": "4449:6:84"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nativeSrc": "4437:3:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "4437:3:84"
                                    },
                                    "nativeSrc": "4437:19:84",
                                    "nodeType": "YulFunctionCall",
                                    "src": "4437:19:84"
                                  }
                                ],
                                "functionName": {
                                  "name": "mstore",
                                  "nativeSrc": "4423:6:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "4423:6:84"
                                },
                                "nativeSrc": "4423:34:84",
                                "nodeType": "YulFunctionCall",
                                "src": "4423:34:84"
                              },
                              "nativeSrc": "4423:34:84",
                              "nodeType": "YulExpressionStatement",
                              "src": "4423:34:84"
                            },
                            {
                              "nativeSrc": "4474:52:84",
                              "nodeType": "YulAssignment",
                              "src": "4474:52:84",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "srcPtr_1",
                                        "nativeSrc": "4508:8:84",
                                        "nodeType": "YulIdentifier",
                                        "src": "4508:8:84"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nativeSrc": "4502:5:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "4502:5:84"
                                    },
                                    "nativeSrc": "4502:15:84",
                                    "nodeType": "YulFunctionCall",
                                    "src": "4502:15:84"
                                  },
                                  {
                                    "name": "tail_2",
                                    "nativeSrc": "4519:6:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "4519:6:84"
                                  }
                                ],
                                "functionName": {
                                  "name": "abi_encode_string",
                                  "nativeSrc": "4484:17:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "4484:17:84"
                                },
                                "nativeSrc": "4484:42:84",
                                "nodeType": "YulFunctionCall",
                                "src": "4484:42:84"
                              },
                              "variableNames": [
                                {
                                  "name": "tail_2",
                                  "nativeSrc": "4474:6:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "4474:6:84"
                                }
                              ]
                            },
                            {
                              "nativeSrc": "4543:29:84",
                              "nodeType": "YulAssignment",
                              "src": "4543:29:84",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "srcPtr_1",
                                    "nativeSrc": "4559:8:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "4559:8:84"
                                  },
                                  {
                                    "name": "_1",
                                    "nativeSrc": "4569:2:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "4569:2:84"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "4555:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "4555:3:84"
                                },
                                "nativeSrc": "4555:17:84",
                                "nodeType": "YulFunctionCall",
                                "src": "4555:17:84"
                              },
                              "variableNames": [
                                {
                                  "name": "srcPtr_1",
                                  "nativeSrc": "4543:8:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "4543:8:84"
                                }
                              ]
                            },
                            {
                              "nativeSrc": "4589:23:84",
                              "nodeType": "YulAssignment",
                              "src": "4589:23:84",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "pos_1",
                                    "nativeSrc": "4602:5:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "4602:5:84"
                                  },
                                  {
                                    "name": "_1",
                                    "nativeSrc": "4609:2:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "4609:2:84"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "4598:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "4598:3:84"
                                },
                                "nativeSrc": "4598:14:84",
                                "nodeType": "YulFunctionCall",
                                "src": "4598:14:84"
                              },
                              "variableNames": [
                                {
                                  "name": "pos_1",
                                  "nativeSrc": "4589:5:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "4589:5:84"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "i_1",
                              "nativeSrc": "4359:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "4359:3:84"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "4364:4:84",
                              "nodeType": "YulLiteral",
                              "src": "4364:4:84",
                              "type": "",
                              "value": "0x02"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nativeSrc": "4356:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "4356:2:84"
                          },
                          "nativeSrc": "4356:13:84",
                          "nodeType": "YulFunctionCall",
                          "src": "4356:13:84"
                        },
                        "nativeSrc": "4348:278:84",
                        "nodeType": "YulForLoop",
                        "post": {
                          "nativeSrc": "4370:22:84",
                          "nodeType": "YulBlock",
                          "src": "4370:22:84",
                          "statements": [
                            {
                              "nativeSrc": "4372:18:84",
                              "nodeType": "YulAssignment",
                              "src": "4372:18:84",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "i_1",
                                    "nativeSrc": "4383:3:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "4383:3:84"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "4388:1:84",
                                    "nodeType": "YulLiteral",
                                    "src": "4388:1:84",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "4379:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "4379:3:84"
                                },
                                "nativeSrc": "4379:11:84",
                                "nodeType": "YulFunctionCall",
                                "src": "4379:11:84"
                              },
                              "variableNames": [
                                {
                                  "name": "i_1",
                                  "nativeSrc": "4372:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "4372:3:84"
                                }
                              ]
                            }
                          ]
                        },
                        "pre": {
                          "nativeSrc": "4352:3:84",
                          "nodeType": "YulBlock",
                          "src": "4352:3:84",
                          "statements": []
                        },
                        "src": "4348:278:84"
                      },
                      {
                        "nativeSrc": "4639:16:84",
                        "nodeType": "YulAssignment",
                        "src": "4639:16:84",
                        "value": {
                          "name": "tail_2",
                          "nativeSrc": "4649:6:84",
                          "nodeType": "YulIdentifier",
                          "src": "4649:6:84"
                        },
                        "variableNames": [
                          {
                            "name": "tail_1",
                            "nativeSrc": "4639:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "4639:6:84"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "4668:25:84",
                        "nodeType": "YulAssignment",
                        "src": "4668:25:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "4682:6:84",
                              "nodeType": "YulIdentifier",
                              "src": "4682:6:84"
                            },
                            {
                              "name": "_1",
                              "nativeSrc": "4690:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "4690:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "4678:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "4678:3:84"
                          },
                          "nativeSrc": "4678:15:84",
                          "nodeType": "YulFunctionCall",
                          "src": "4678:15:84"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nativeSrc": "4668:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "4668:6:84"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "4706:19:84",
                        "nodeType": "YulAssignment",
                        "src": "4706:19:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "4717:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "4717:3:84"
                            },
                            {
                              "name": "_1",
                              "nativeSrc": "4722:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "4722:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "4713:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "4713:3:84"
                          },
                          "nativeSrc": "4713:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "4713:12:84"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nativeSrc": "4706:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "4706:3:84"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nativeSrc": "4038:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "4038:1:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "4041:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "4041:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "4035:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "4035:2:84"
                    },
                    "nativeSrc": "4035:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4035:13:84"
                  },
                  "nativeSrc": "4027:708:84",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "4049:18:84",
                    "nodeType": "YulBlock",
                    "src": "4049:18:84",
                    "statements": [
                      {
                        "nativeSrc": "4051:14:84",
                        "nodeType": "YulAssignment",
                        "src": "4051:14:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nativeSrc": "4060:1:84",
                              "nodeType": "YulIdentifier",
                              "src": "4060:1:84"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "4063:1:84",
                              "nodeType": "YulLiteral",
                              "src": "4063:1:84",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "4056:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "4056:3:84"
                          },
                          "nativeSrc": "4056:9:84",
                          "nodeType": "YulFunctionCall",
                          "src": "4056:9:84"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nativeSrc": "4051:1:84",
                            "nodeType": "YulIdentifier",
                            "src": "4051:1:84"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "4031:3:84",
                    "nodeType": "YulBlock",
                    "src": "4031:3:84",
                    "statements": []
                  },
                  "src": "4027:708:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "4755:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "4755:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4766:3:84",
                            "nodeType": "YulLiteral",
                            "src": "4766:3:84",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4751:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "4751:3:84"
                        },
                        "nativeSrc": "4751:19:84",
                        "nodeType": "YulFunctionCall",
                        "src": "4751:19:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nativeSrc": "4776:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "4776:6:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "4784:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "4784:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "4772:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "4772:3:84"
                        },
                        "nativeSrc": "4772:22:84",
                        "nodeType": "YulFunctionCall",
                        "src": "4772:22:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4744:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "4744:6:84"
                    },
                    "nativeSrc": "4744:51:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4744:51:84"
                  },
                  "nativeSrc": "4744:51:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "4744:51:84"
                },
                {
                  "nativeSrc": "4804:45:84",
                  "nodeType": "YulAssignment",
                  "src": "4804:45:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nativeSrc": "4842:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "4842:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_stringliteral_56e8",
                      "nativeSrc": "4812:29:84",
                      "nodeType": "YulIdentifier",
                      "src": "4812:29:84"
                    },
                    "nativeSrc": "4812:37:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4812:37:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "4804:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "4804:4:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_enum$_RadonDataRequestMethods_$16410_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_t_stringliteral_56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421__to_t_uint8_t_string_memory_ptr_t_string_memory_ptr_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed",
            "nativeSrc": "2768:2087:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "3303:9:84",
                "nodeType": "YulTypedName",
                "src": "3303:9:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "3314:6:84",
                "nodeType": "YulTypedName",
                "src": "3314:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "3322:6:84",
                "nodeType": "YulTypedName",
                "src": "3322:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "3333:4:84",
                "nodeType": "YulTypedName",
                "src": "3333:4:84",
                "type": ""
              }
            ],
            "src": "2768:2087:84"
          },
          {
            "body": {
              "nativeSrc": "4941:103:84",
              "nodeType": "YulBlock",
              "src": "4941:103:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "4987:16:84",
                    "nodeType": "YulBlock",
                    "src": "4987:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "4996:1:84",
                              "nodeType": "YulLiteral",
                              "src": "4996:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "4999:1:84",
                              "nodeType": "YulLiteral",
                              "src": "4999:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "4989:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "4989:6:84"
                          },
                          "nativeSrc": "4989:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "4989:12:84"
                        },
                        "nativeSrc": "4989:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "4989:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "4962:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "4962:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "4971:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "4971:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "4958:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "4958:3:84"
                        },
                        "nativeSrc": "4958:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "4958:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4983:2:84",
                        "nodeType": "YulLiteral",
                        "src": "4983:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "4954:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "4954:3:84"
                    },
                    "nativeSrc": "4954:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4954:32:84"
                  },
                  "nativeSrc": "4951:52:84",
                  "nodeType": "YulIf",
                  "src": "4951:52:84"
                },
                {
                  "nativeSrc": "5012:26:84",
                  "nodeType": "YulAssignment",
                  "src": "5012:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5028:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "5028:9:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "5022:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "5022:5:84"
                    },
                    "nativeSrc": "5022:16:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5022:16:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "5012:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "5012:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes32_fromMemory",
            "nativeSrc": "4860:184:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "4907:9:84",
                "nodeType": "YulTypedName",
                "src": "4907:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "4918:7:84",
                "nodeType": "YulTypedName",
                "src": "4918:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "4930:6:84",
                "nodeType": "YulTypedName",
                "src": "4930:6:84",
                "type": ""
              }
            ],
            "src": "4860:184:84"
          },
          {
            "body": {
              "nativeSrc": "5081:95:84",
              "nodeType": "YulBlock",
              "src": "5081:95:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "5098:1:84",
                        "nodeType": "YulLiteral",
                        "src": "5098:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "5105:3:84",
                            "nodeType": "YulLiteral",
                            "src": "5105:3:84",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5110:10:84",
                            "nodeType": "YulLiteral",
                            "src": "5110:10:84",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "5101:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "5101:3:84"
                        },
                        "nativeSrc": "5101:20:84",
                        "nodeType": "YulFunctionCall",
                        "src": "5101:20:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5091:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "5091:6:84"
                    },
                    "nativeSrc": "5091:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5091:31:84"
                  },
                  "nativeSrc": "5091:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "5091:31:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "5138:1:84",
                        "nodeType": "YulLiteral",
                        "src": "5138:1:84",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5141:4:84",
                        "nodeType": "YulLiteral",
                        "src": "5141:4:84",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5131:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "5131:6:84"
                    },
                    "nativeSrc": "5131:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5131:15:84"
                  },
                  "nativeSrc": "5131:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "5131:15:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "5162:1:84",
                        "nodeType": "YulLiteral",
                        "src": "5162:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5165:4:84",
                        "nodeType": "YulLiteral",
                        "src": "5165:4:84",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "5155:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "5155:6:84"
                    },
                    "nativeSrc": "5155:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5155:15:84"
                  },
                  "nativeSrc": "5155:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "5155:15:84"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nativeSrc": "5049:127:84",
            "nodeType": "YulFunctionDefinition",
            "src": "5049:127:84"
          },
          {
            "body": {
              "nativeSrc": "5344:1147:84",
              "nodeType": "YulBlock",
              "src": "5344:1147:84",
              "statements": [
                {
                  "nativeSrc": "5354:12:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5354:12:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "5364:2:84",
                    "nodeType": "YulLiteral",
                    "src": "5364:2:84",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "5358:2:84",
                      "nodeType": "YulTypedName",
                      "src": "5358:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5382:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "5382:9:84"
                      },
                      {
                        "name": "_1",
                        "nativeSrc": "5393:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "5393:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5375:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "5375:6:84"
                    },
                    "nativeSrc": "5375:21:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5375:21:84"
                  },
                  "nativeSrc": "5375:21:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "5375:21:84"
                },
                {
                  "nativeSrc": "5405:32:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5405:32:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5423:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "5423:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5434:2:84",
                        "nodeType": "YulLiteral",
                        "src": "5434:2:84",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5419:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "5419:3:84"
                    },
                    "nativeSrc": "5419:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5419:18:84"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nativeSrc": "5409:6:84",
                      "nodeType": "YulTypedName",
                      "src": "5409:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "5446:23:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5446:23:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "5462:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "5462:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "5456:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "5456:5:84"
                    },
                    "nativeSrc": "5456:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5456:13:84"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nativeSrc": "5450:2:84",
                      "nodeType": "YulTypedName",
                      "src": "5450:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "5500:22:84",
                    "nodeType": "YulBlock",
                    "src": "5500:22:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x21",
                            "nativeSrc": "5502:16:84",
                            "nodeType": "YulIdentifier",
                            "src": "5502:16:84"
                          },
                          "nativeSrc": "5502:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "5502:18:84"
                        },
                        "nativeSrc": "5502:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "5502:18:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nativeSrc": "5491:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "5491:2:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5495:2:84",
                            "nodeType": "YulLiteral",
                            "src": "5495:2:84",
                            "type": "",
                            "value": "12"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "5488:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "5488:2:84"
                        },
                        "nativeSrc": "5488:10:84",
                        "nodeType": "YulFunctionCall",
                        "src": "5488:10:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "5481:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "5481:6:84"
                    },
                    "nativeSrc": "5481:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5481:18:84"
                  },
                  "nativeSrc": "5478:44:84",
                  "nodeType": "YulIf",
                  "src": "5478:44:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "5542:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "5542:9:84"
                          },
                          {
                            "name": "_1",
                            "nativeSrc": "5553:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "5553:2:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5538:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "5538:3:84"
                        },
                        "nativeSrc": "5538:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "5538:18:84"
                      },
                      {
                        "name": "_2",
                        "nativeSrc": "5558:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "5558:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5531:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "5531:6:84"
                    },
                    "nativeSrc": "5531:30:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5531:30:84"
                  },
                  "nativeSrc": "5531:30:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "5531:30:84"
                },
                {
                  "nativeSrc": "5570:42:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5570:42:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "5600:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "5600:6:84"
                          },
                          {
                            "name": "_1",
                            "nativeSrc": "5608:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "5608:2:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5596:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "5596:3:84"
                        },
                        "nativeSrc": "5596:15:84",
                        "nodeType": "YulFunctionCall",
                        "src": "5596:15:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "5590:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "5590:5:84"
                    },
                    "nativeSrc": "5590:22:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5590:22:84"
                  },
                  "variables": [
                    {
                      "name": "memberValue0",
                      "nativeSrc": "5574:12:84",
                      "nodeType": "YulTypedName",
                      "src": "5574:12:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "5621:14:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5621:14:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "5631:4:84",
                    "nodeType": "YulLiteral",
                    "src": "5631:4:84",
                    "type": "",
                    "value": "0x40"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nativeSrc": "5625:2:84",
                      "nodeType": "YulTypedName",
                      "src": "5625:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "5655:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "5655:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5666:4:84",
                            "nodeType": "YulLiteral",
                            "src": "5666:4:84",
                            "type": "",
                            "value": "0x40"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5651:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "5651:3:84"
                        },
                        "nativeSrc": "5651:20:84",
                        "nodeType": "YulFunctionCall",
                        "src": "5651:20:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5673:4:84",
                        "nodeType": "YulLiteral",
                        "src": "5673:4:84",
                        "type": "",
                        "value": "0x40"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5644:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "5644:6:84"
                    },
                    "nativeSrc": "5644:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5644:34:84"
                  },
                  "nativeSrc": "5644:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "5644:34:84"
                },
                {
                  "nativeSrc": "5687:17:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5687:17:84",
                  "value": {
                    "name": "tail_1",
                    "nativeSrc": "5698:6:84",
                    "nodeType": "YulIdentifier",
                    "src": "5698:6:84"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nativeSrc": "5691:3:84",
                      "nodeType": "YulTypedName",
                      "src": "5691:3:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "5713:33:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5713:33:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "memberValue0",
                        "nativeSrc": "5733:12:84",
                        "nodeType": "YulIdentifier",
                        "src": "5733:12:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "5727:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "5727:5:84"
                    },
                    "nativeSrc": "5727:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5727:19:84"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "5717:6:84",
                      "nodeType": "YulTypedName",
                      "src": "5717:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nativeSrc": "5762:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "5762:6:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "5770:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "5770:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5755:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "5755:6:84"
                    },
                    "nativeSrc": "5755:22:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5755:22:84"
                  },
                  "nativeSrc": "5755:22:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "5755:22:84"
                },
                {
                  "nativeSrc": "5786:26:84",
                  "nodeType": "YulAssignment",
                  "src": "5786:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5797:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "5797:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5808:3:84",
                        "nodeType": "YulLiteral",
                        "src": "5808:3:84",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5793:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "5793:3:84"
                    },
                    "nativeSrc": "5793:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5793:19:84"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nativeSrc": "5786:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "5786:3:84"
                    }
                  ]
                },
                {
                  "nativeSrc": "5821:54:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5821:54:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "5843:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "5843:9:84"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "5858:1:84",
                                "nodeType": "YulLiteral",
                                "src": "5858:1:84",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "5861:6:84",
                                "nodeType": "YulIdentifier",
                                "src": "5861:6:84"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "5854:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "5854:3:84"
                            },
                            "nativeSrc": "5854:14:84",
                            "nodeType": "YulFunctionCall",
                            "src": "5854:14:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5839:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "5839:3:84"
                        },
                        "nativeSrc": "5839:30:84",
                        "nodeType": "YulFunctionCall",
                        "src": "5839:30:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5871:3:84",
                        "nodeType": "YulLiteral",
                        "src": "5871:3:84",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5835:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "5835:3:84"
                    },
                    "nativeSrc": "5835:40:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5835:40:84"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nativeSrc": "5825:6:84",
                      "nodeType": "YulTypedName",
                      "src": "5825:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "5884:35:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5884:35:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "memberValue0",
                        "nativeSrc": "5902:12:84",
                        "nodeType": "YulIdentifier",
                        "src": "5902:12:84"
                      },
                      {
                        "name": "_1",
                        "nativeSrc": "5916:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "5916:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5898:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "5898:3:84"
                    },
                    "nativeSrc": "5898:21:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5898:21:84"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nativeSrc": "5888:6:84",
                      "nodeType": "YulTypedName",
                      "src": "5888:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "5928:10:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5928:10:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "5937:1:84",
                    "nodeType": "YulLiteral",
                    "src": "5937:1:84",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nativeSrc": "5932:1:84",
                      "nodeType": "YulTypedName",
                      "src": "5932:1:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "5996:466:84",
                    "nodeType": "YulBlock",
                    "src": "5996:466:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "6017:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "6017:3:84"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "tail_2",
                                      "nativeSrc": "6030:6:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "6030:6:84"
                                    },
                                    {
                                      "name": "headStart",
                                      "nativeSrc": "6038:9:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "6038:9:84"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nativeSrc": "6026:3:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "6026:3:84"
                                  },
                                  "nativeSrc": "6026:22:84",
                                  "nodeType": "YulFunctionCall",
                                  "src": "6026:22:84"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "6054:3:84",
                                      "nodeType": "YulLiteral",
                                      "src": "6054:3:84",
                                      "type": "",
                                      "value": "127"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nativeSrc": "6050:3:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "6050:3:84"
                                  },
                                  "nativeSrc": "6050:8:84",
                                  "nodeType": "YulFunctionCall",
                                  "src": "6050:8:84"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "6022:3:84",
                                "nodeType": "YulIdentifier",
                                "src": "6022:3:84"
                              },
                              "nativeSrc": "6022:37:84",
                              "nodeType": "YulFunctionCall",
                              "src": "6022:37:84"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "6010:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "6010:6:84"
                          },
                          "nativeSrc": "6010:50:84",
                          "nodeType": "YulFunctionCall",
                          "src": "6010:50:84"
                        },
                        "nativeSrc": "6010:50:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "6010:50:84"
                      },
                      {
                        "nativeSrc": "6073:23:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "6073:23:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "6089:6:84",
                              "nodeType": "YulIdentifier",
                              "src": "6089:6:84"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nativeSrc": "6083:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "6083:5:84"
                          },
                          "nativeSrc": "6083:13:84",
                          "nodeType": "YulFunctionCall",
                          "src": "6083:13:84"
                        },
                        "variables": [
                          {
                            "name": "_4",
                            "nativeSrc": "6077:2:84",
                            "nodeType": "YulTypedName",
                            "src": "6077:2:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "6109:19:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "6109:19:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "_4",
                              "nativeSrc": "6125:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "6125:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nativeSrc": "6119:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "6119:5:84"
                          },
                          "nativeSrc": "6119:9:84",
                          "nodeType": "YulFunctionCall",
                          "src": "6119:9:84"
                        },
                        "variables": [
                          {
                            "name": "_5",
                            "nativeSrc": "6113:2:84",
                            "nodeType": "YulTypedName",
                            "src": "6113:2:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nativeSrc": "6163:22:84",
                          "nodeType": "YulBlock",
                          "src": "6163:22:84",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [],
                                "functionName": {
                                  "name": "panic_error_0x21",
                                  "nativeSrc": "6165:16:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "6165:16:84"
                                },
                                "nativeSrc": "6165:18:84",
                                "nodeType": "YulFunctionCall",
                                "src": "6165:18:84"
                              },
                              "nativeSrc": "6165:18:84",
                              "nodeType": "YulExpressionStatement",
                              "src": "6165:18:84"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_5",
                                  "nativeSrc": "6154:2:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "6154:2:84"
                                },
                                {
                                  "kind": "number",
                                  "nativeSrc": "6158:2:84",
                                  "nodeType": "YulLiteral",
                                  "src": "6158:2:84",
                                  "type": "",
                                  "value": "10"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nativeSrc": "6151:2:84",
                                "nodeType": "YulIdentifier",
                                "src": "6151:2:84"
                              },
                              "nativeSrc": "6151:10:84",
                              "nodeType": "YulFunctionCall",
                              "src": "6151:10:84"
                            }
                          ],
                          "functionName": {
                            "name": "iszero",
                            "nativeSrc": "6144:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "6144:6:84"
                          },
                          "nativeSrc": "6144:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "6144:18:84"
                        },
                        "nativeSrc": "6141:44:84",
                        "nodeType": "YulIf",
                        "src": "6141:44:84"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "tail_2",
                              "nativeSrc": "6205:6:84",
                              "nodeType": "YulIdentifier",
                              "src": "6205:6:84"
                            },
                            {
                              "name": "_5",
                              "nativeSrc": "6213:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "6213:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "6198:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "6198:6:84"
                          },
                          "nativeSrc": "6198:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "6198:18:84"
                        },
                        "nativeSrc": "6198:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "6198:18:84"
                      },
                      {
                        "nativeSrc": "6229:40:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "6229:40:84",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_4",
                                  "nativeSrc": "6261:2:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "6261:2:84"
                                },
                                {
                                  "name": "_1",
                                  "nativeSrc": "6265:2:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "6265:2:84"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "6257:3:84",
                                "nodeType": "YulIdentifier",
                                "src": "6257:3:84"
                              },
                              "nativeSrc": "6257:11:84",
                              "nodeType": "YulFunctionCall",
                              "src": "6257:11:84"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nativeSrc": "6251:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "6251:5:84"
                          },
                          "nativeSrc": "6251:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "6251:18:84"
                        },
                        "variables": [
                          {
                            "name": "memberValue0_1",
                            "nativeSrc": "6233:14:84",
                            "nodeType": "YulTypedName",
                            "src": "6233:14:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "tail_2",
                                  "nativeSrc": "6293:6:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "6293:6:84"
                                },
                                {
                                  "name": "_1",
                                  "nativeSrc": "6301:2:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "6301:2:84"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "6289:3:84",
                                "nodeType": "YulIdentifier",
                                "src": "6289:3:84"
                              },
                              "nativeSrc": "6289:15:84",
                              "nodeType": "YulFunctionCall",
                              "src": "6289:15:84"
                            },
                            {
                              "name": "_3",
                              "nativeSrc": "6306:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "6306:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "6282:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "6282:6:84"
                          },
                          "nativeSrc": "6282:27:84",
                          "nodeType": "YulFunctionCall",
                          "src": "6282:27:84"
                        },
                        "nativeSrc": "6282:27:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "6282:27:84"
                      },
                      {
                        "nativeSrc": "6322:60:84",
                        "nodeType": "YulAssignment",
                        "src": "6322:60:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "memberValue0_1",
                              "nativeSrc": "6350:14:84",
                              "nodeType": "YulIdentifier",
                              "src": "6350:14:84"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "tail_2",
                                  "nativeSrc": "6370:6:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "6370:6:84"
                                },
                                {
                                  "name": "_3",
                                  "nativeSrc": "6378:2:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "6378:2:84"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "6366:3:84",
                                "nodeType": "YulIdentifier",
                                "src": "6366:3:84"
                              },
                              "nativeSrc": "6366:15:84",
                              "nodeType": "YulFunctionCall",
                              "src": "6366:15:84"
                            }
                          ],
                          "functionName": {
                            "name": "abi_encode_string",
                            "nativeSrc": "6332:17:84",
                            "nodeType": "YulIdentifier",
                            "src": "6332:17:84"
                          },
                          "nativeSrc": "6332:50:84",
                          "nodeType": "YulFunctionCall",
                          "src": "6332:50:84"
                        },
                        "variableNames": [
                          {
                            "name": "tail_2",
                            "nativeSrc": "6322:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "6322:6:84"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "6395:25:84",
                        "nodeType": "YulAssignment",
                        "src": "6395:25:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "6409:6:84",
                              "nodeType": "YulIdentifier",
                              "src": "6409:6:84"
                            },
                            {
                              "name": "_1",
                              "nativeSrc": "6417:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "6417:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "6405:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "6405:3:84"
                          },
                          "nativeSrc": "6405:15:84",
                          "nodeType": "YulFunctionCall",
                          "src": "6405:15:84"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nativeSrc": "6395:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "6395:6:84"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "6433:19:84",
                        "nodeType": "YulAssignment",
                        "src": "6433:19:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "6444:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "6444:3:84"
                            },
                            {
                              "name": "_1",
                              "nativeSrc": "6449:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "6449:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "6440:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "6440:3:84"
                          },
                          "nativeSrc": "6440:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "6440:12:84"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nativeSrc": "6433:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "6433:3:84"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nativeSrc": "5958:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "5958:1:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "5961:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "5961:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "5955:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "5955:2:84"
                    },
                    "nativeSrc": "5955:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5955:13:84"
                  },
                  "nativeSrc": "5947:515:84",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "5969:18:84",
                    "nodeType": "YulBlock",
                    "src": "5969:18:84",
                    "statements": [
                      {
                        "nativeSrc": "5971:14:84",
                        "nodeType": "YulAssignment",
                        "src": "5971:14:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nativeSrc": "5980:1:84",
                              "nodeType": "YulIdentifier",
                              "src": "5980:1:84"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5983:1:84",
                              "nodeType": "YulLiteral",
                              "src": "5983:1:84",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "5976:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "5976:3:84"
                          },
                          "nativeSrc": "5976:9:84",
                          "nodeType": "YulFunctionCall",
                          "src": "5976:9:84"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nativeSrc": "5971:1:84",
                            "nodeType": "YulIdentifier",
                            "src": "5971:1:84"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "5951:3:84",
                    "nodeType": "YulBlock",
                    "src": "5951:3:84",
                    "statements": []
                  },
                  "src": "5947:515:84"
                },
                {
                  "nativeSrc": "6471:14:84",
                  "nodeType": "YulAssignment",
                  "src": "6471:14:84",
                  "value": {
                    "name": "tail_2",
                    "nativeSrc": "6479:6:84",
                    "nodeType": "YulIdentifier",
                    "src": "6479:6:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "6471:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "6471:4:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_struct$_RadonReducer_$16460_memory_ptr__to_t_struct$_RadonReducer_$16460_memory_ptr__fromStack_reversed",
            "nativeSrc": "5181:1310:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "5313:9:84",
                "nodeType": "YulTypedName",
                "src": "5313:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "5324:6:84",
                "nodeType": "YulTypedName",
                "src": "5324:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "5335:4:84",
                "nodeType": "YulTypedName",
                "src": "5335:4:84",
                "type": ""
              }
            ],
            "src": "5181:1310:84"
          },
          {
            "body": {
              "nativeSrc": "6887:1834:84",
              "nodeType": "YulBlock",
              "src": "6887:1834:84",
              "statements": [
                {
                  "nativeSrc": "6897:33:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "6897:33:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6915:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "6915:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "6926:3:84",
                        "nodeType": "YulLiteral",
                        "src": "6926:3:84",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "6911:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "6911:3:84"
                    },
                    "nativeSrc": "6911:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "6911:19:84"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nativeSrc": "6901:6:84",
                      "nodeType": "YulTypedName",
                      "src": "6901:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6946:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "6946:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "6957:3:84",
                        "nodeType": "YulLiteral",
                        "src": "6957:3:84",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6939:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "6939:6:84"
                    },
                    "nativeSrc": "6939:22:84",
                    "nodeType": "YulFunctionCall",
                    "src": "6939:22:84"
                  },
                  "nativeSrc": "6939:22:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "6939:22:84"
                },
                {
                  "nativeSrc": "6970:17:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "6970:17:84",
                  "value": {
                    "name": "tail_1",
                    "nativeSrc": "6981:6:84",
                    "nodeType": "YulIdentifier",
                    "src": "6981:6:84"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nativeSrc": "6974:3:84",
                      "nodeType": "YulTypedName",
                      "src": "6974:3:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "6996:27:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "6996:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "7016:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "7016:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "7010:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "7010:5:84"
                    },
                    "nativeSrc": "7010:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7010:13:84"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "7000:6:84",
                      "nodeType": "YulTypedName",
                      "src": "7000:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nativeSrc": "7039:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "7039:6:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "7047:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "7047:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7032:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7032:6:84"
                    },
                    "nativeSrc": "7032:22:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7032:22:84"
                  },
                  "nativeSrc": "7032:22:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7032:22:84"
                },
                {
                  "nativeSrc": "7063:26:84",
                  "nodeType": "YulAssignment",
                  "src": "7063:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "7074:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "7074:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7085:3:84",
                        "nodeType": "YulLiteral",
                        "src": "7085:3:84",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7070:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "7070:3:84"
                    },
                    "nativeSrc": "7070:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7070:19:84"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nativeSrc": "7063:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "7063:3:84"
                    }
                  ]
                },
                {
                  "nativeSrc": "7098:14:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7098:14:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "7108:4:84",
                    "nodeType": "YulLiteral",
                    "src": "7108:4:84",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "7102:2:84",
                      "nodeType": "YulTypedName",
                      "src": "7102:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "7121:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7121:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "7139:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "7139:6:84"
                      },
                      {
                        "name": "_1",
                        "nativeSrc": "7147:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "7147:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7135:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "7135:3:84"
                    },
                    "nativeSrc": "7135:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7135:15:84"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nativeSrc": "7125:6:84",
                      "nodeType": "YulTypedName",
                      "src": "7125:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "7159:10:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7159:10:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "7168:1:84",
                    "nodeType": "YulLiteral",
                    "src": "7168:1:84",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nativeSrc": "7163:1:84",
                      "nodeType": "YulTypedName",
                      "src": "7163:1:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "7227:120:84",
                    "nodeType": "YulBlock",
                    "src": "7227:120:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "7248:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "7248:3:84"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nativeSrc": "7259:6:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "7259:6:84"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nativeSrc": "7253:5:84",
                                "nodeType": "YulIdentifier",
                                "src": "7253:5:84"
                              },
                              "nativeSrc": "7253:13:84",
                              "nodeType": "YulFunctionCall",
                              "src": "7253:13:84"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "7241:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "7241:6:84"
                          },
                          "nativeSrc": "7241:26:84",
                          "nodeType": "YulFunctionCall",
                          "src": "7241:26:84"
                        },
                        "nativeSrc": "7241:26:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "7241:26:84"
                      },
                      {
                        "nativeSrc": "7280:19:84",
                        "nodeType": "YulAssignment",
                        "src": "7280:19:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "7291:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "7291:3:84"
                            },
                            {
                              "name": "_1",
                              "nativeSrc": "7296:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "7296:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "7287:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "7287:3:84"
                          },
                          "nativeSrc": "7287:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "7287:12:84"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nativeSrc": "7280:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "7280:3:84"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "7312:25:84",
                        "nodeType": "YulAssignment",
                        "src": "7312:25:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "7326:6:84",
                              "nodeType": "YulIdentifier",
                              "src": "7326:6:84"
                            },
                            {
                              "name": "_1",
                              "nativeSrc": "7334:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "7334:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "7322:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "7322:3:84"
                          },
                          "nativeSrc": "7322:15:84",
                          "nodeType": "YulFunctionCall",
                          "src": "7322:15:84"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nativeSrc": "7312:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "7312:6:84"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nativeSrc": "7189:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "7189:1:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "7192:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "7192:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "7186:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "7186:2:84"
                    },
                    "nativeSrc": "7186:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7186:13:84"
                  },
                  "nativeSrc": "7178:169:84",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "7200:18:84",
                    "nodeType": "YulBlock",
                    "src": "7200:18:84",
                    "statements": [
                      {
                        "nativeSrc": "7202:14:84",
                        "nodeType": "YulAssignment",
                        "src": "7202:14:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nativeSrc": "7211:1:84",
                              "nodeType": "YulIdentifier",
                              "src": "7211:1:84"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "7214:1:84",
                              "nodeType": "YulLiteral",
                              "src": "7214:1:84",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "7207:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "7207:3:84"
                          },
                          "nativeSrc": "7207:9:84",
                          "nodeType": "YulFunctionCall",
                          "src": "7207:9:84"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nativeSrc": "7202:1:84",
                            "nodeType": "YulIdentifier",
                            "src": "7202:1:84"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "7182:3:84",
                    "nodeType": "YulBlock",
                    "src": "7182:3:84",
                    "statements": []
                  },
                  "src": "7178:169:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "7367:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "7367:9:84"
                          },
                          {
                            "name": "_1",
                            "nativeSrc": "7378:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "7378:2:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7363:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7363:3:84"
                        },
                        "nativeSrc": "7363:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7363:18:84"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "7383:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "7383:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7356:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7356:6:84"
                    },
                    "nativeSrc": "7356:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7356:34:84"
                  },
                  "nativeSrc": "7356:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7356:34:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "7410:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "7410:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7421:2:84",
                            "nodeType": "YulLiteral",
                            "src": "7421:2:84",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7406:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7406:3:84"
                        },
                        "nativeSrc": "7406:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7406:18:84"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "7426:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "7426:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7399:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7399:6:84"
                    },
                    "nativeSrc": "7399:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7399:34:84"
                  },
                  "nativeSrc": "7399:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7399:34:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "7453:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "7453:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7464:2:84",
                            "nodeType": "YulLiteral",
                            "src": "7464:2:84",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7449:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7449:3:84"
                        },
                        "nativeSrc": "7449:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7449:18:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value3",
                            "nativeSrc": "7473:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "7473:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7481:6:84",
                            "nodeType": "YulLiteral",
                            "src": "7481:6:84",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "7469:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7469:3:84"
                        },
                        "nativeSrc": "7469:19:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7469:19:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7442:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7442:6:84"
                    },
                    "nativeSrc": "7442:47:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7442:47:84"
                  },
                  "nativeSrc": "7442:47:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7442:47:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "7509:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "7509:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7520:3:84",
                            "nodeType": "YulLiteral",
                            "src": "7520:3:84",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7505:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7505:3:84"
                        },
                        "nativeSrc": "7505:19:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7505:19:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "7530:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "7530:3:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "7535:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "7535:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "7526:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7526:3:84"
                        },
                        "nativeSrc": "7526:19:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7526:19:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7498:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7498:6:84"
                    },
                    "nativeSrc": "7498:48:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7498:48:84"
                  },
                  "nativeSrc": "7498:48:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7498:48:84"
                },
                {
                  "nativeSrc": "7555:16:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7555:16:84",
                  "value": {
                    "name": "pos",
                    "nativeSrc": "7568:3:84",
                    "nodeType": "YulIdentifier",
                    "src": "7568:3:84"
                  },
                  "variables": [
                    {
                      "name": "pos_1",
                      "nativeSrc": "7559:5:84",
                      "nodeType": "YulTypedName",
                      "src": "7559:5:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "7580:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7580:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nativeSrc": "7602:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "7602:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "7596:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "7596:5:84"
                    },
                    "nativeSrc": "7596:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7596:13:84"
                  },
                  "variables": [
                    {
                      "name": "length_1",
                      "nativeSrc": "7584:8:84",
                      "nodeType": "YulTypedName",
                      "src": "7584:8:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "7625:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "7625:3:84"
                      },
                      {
                        "name": "length_1",
                        "nativeSrc": "7630:8:84",
                        "nodeType": "YulIdentifier",
                        "src": "7630:8:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7618:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7618:6:84"
                    },
                    "nativeSrc": "7618:21:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7618:21:84"
                  },
                  "nativeSrc": "7618:21:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7618:21:84"
                },
                {
                  "nativeSrc": "7648:21:84",
                  "nodeType": "YulAssignment",
                  "src": "7648:21:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "7661:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "7661:3:84"
                      },
                      {
                        "name": "_1",
                        "nativeSrc": "7666:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "7666:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7657:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "7657:3:84"
                    },
                    "nativeSrc": "7657:12:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7657:12:84"
                  },
                  "variableNames": [
                    {
                      "name": "pos_1",
                      "nativeSrc": "7648:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "7648:5:84"
                    }
                  ]
                },
                {
                  "nativeSrc": "7678:11:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7678:11:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "7688:1:84",
                    "nodeType": "YulLiteral",
                    "src": "7688:1:84",
                    "type": "",
                    "value": "5"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nativeSrc": "7682:2:84",
                      "nodeType": "YulTypedName",
                      "src": "7682:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "7698:49:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7698:49:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "7720:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "7720:3:84"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "7729:1:84",
                                "nodeType": "YulLiteral",
                                "src": "7729:1:84",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "length_1",
                                "nativeSrc": "7732:8:84",
                                "nodeType": "YulIdentifier",
                                "src": "7732:8:84"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "7725:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "7725:3:84"
                            },
                            "nativeSrc": "7725:16:84",
                            "nodeType": "YulFunctionCall",
                            "src": "7725:16:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7716:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7716:3:84"
                        },
                        "nativeSrc": "7716:26:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7716:26:84"
                      },
                      {
                        "name": "_1",
                        "nativeSrc": "7744:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "7744:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7712:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "7712:3:84"
                    },
                    "nativeSrc": "7712:35:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7712:35:84"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nativeSrc": "7702:6:84",
                      "nodeType": "YulTypedName",
                      "src": "7702:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "7756:31:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7756:31:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nativeSrc": "7776:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "7776:6:84"
                      },
                      {
                        "name": "_1",
                        "nativeSrc": "7784:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "7784:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7772:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "7772:3:84"
                    },
                    "nativeSrc": "7772:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7772:15:84"
                  },
                  "variables": [
                    {
                      "name": "srcPtr_1",
                      "nativeSrc": "7760:8:84",
                      "nodeType": "YulTypedName",
                      "src": "7760:8:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "7796:12:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7796:12:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "7807:1:84",
                    "nodeType": "YulLiteral",
                    "src": "7807:1:84",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i_1",
                      "nativeSrc": "7800:3:84",
                      "nodeType": "YulTypedName",
                      "src": "7800:3:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "7874:818:84",
                    "nodeType": "YulBlock",
                    "src": "7874:818:84",
                    "statements": [
                      {
                        "nativeSrc": "7888:17:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "7888:17:84",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "7902:2:84",
                              "nodeType": "YulLiteral",
                              "src": "7902:2:84",
                              "type": "",
                              "value": "31"
                            }
                          ],
                          "functionName": {
                            "name": "not",
                            "nativeSrc": "7898:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "7898:3:84"
                          },
                          "nativeSrc": "7898:7:84",
                          "nodeType": "YulFunctionCall",
                          "src": "7898:7:84"
                        },
                        "variables": [
                          {
                            "name": "_3",
                            "nativeSrc": "7892:2:84",
                            "nodeType": "YulTypedName",
                            "src": "7892:2:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos_1",
                              "nativeSrc": "7925:5:84",
                              "nodeType": "YulIdentifier",
                              "src": "7925:5:84"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "tail_2",
                                      "nativeSrc": "7940:6:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "7940:6:84"
                                    },
                                    {
                                      "name": "pos",
                                      "nativeSrc": "7948:3:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "7948:3:84"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nativeSrc": "7936:3:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "7936:3:84"
                                  },
                                  "nativeSrc": "7936:16:84",
                                  "nodeType": "YulFunctionCall",
                                  "src": "7936:16:84"
                                },
                                {
                                  "name": "_3",
                                  "nativeSrc": "7954:2:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "7954:2:84"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "7932:3:84",
                                "nodeType": "YulIdentifier",
                                "src": "7932:3:84"
                              },
                              "nativeSrc": "7932:25:84",
                              "nodeType": "YulFunctionCall",
                              "src": "7932:25:84"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "7918:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "7918:6:84"
                          },
                          "nativeSrc": "7918:40:84",
                          "nodeType": "YulFunctionCall",
                          "src": "7918:40:84"
                        },
                        "nativeSrc": "7918:40:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "7918:40:84"
                      },
                      {
                        "nativeSrc": "7971:25:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "7971:25:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr_1",
                              "nativeSrc": "7987:8:84",
                              "nodeType": "YulIdentifier",
                              "src": "7987:8:84"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nativeSrc": "7981:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "7981:5:84"
                          },
                          "nativeSrc": "7981:15:84",
                          "nodeType": "YulFunctionCall",
                          "src": "7981:15:84"
                        },
                        "variables": [
                          {
                            "name": "_4",
                            "nativeSrc": "7975:2:84",
                            "nodeType": "YulTypedName",
                            "src": "7975:2:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "8009:19:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "8009:19:84",
                        "value": {
                          "name": "tail_2",
                          "nativeSrc": "8022:6:84",
                          "nodeType": "YulIdentifier",
                          "src": "8022:6:84"
                        },
                        "variables": [
                          {
                            "name": "pos_2",
                            "nativeSrc": "8013:5:84",
                            "nodeType": "YulTypedName",
                            "src": "8013:5:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "8041:25:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "8041:25:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "_4",
                              "nativeSrc": "8063:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "8063:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nativeSrc": "8057:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "8057:5:84"
                          },
                          "nativeSrc": "8057:9:84",
                          "nodeType": "YulFunctionCall",
                          "src": "8057:9:84"
                        },
                        "variables": [
                          {
                            "name": "length_2",
                            "nativeSrc": "8045:8:84",
                            "nodeType": "YulTypedName",
                            "src": "8045:8:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "tail_2",
                              "nativeSrc": "8086:6:84",
                              "nodeType": "YulIdentifier",
                              "src": "8086:6:84"
                            },
                            {
                              "name": "length_2",
                              "nativeSrc": "8094:8:84",
                              "nodeType": "YulIdentifier",
                              "src": "8094:8:84"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "8079:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "8079:6:84"
                          },
                          "nativeSrc": "8079:24:84",
                          "nodeType": "YulFunctionCall",
                          "src": "8079:24:84"
                        },
                        "nativeSrc": "8079:24:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "8079:24:84"
                      },
                      {
                        "nativeSrc": "8116:24:84",
                        "nodeType": "YulAssignment",
                        "src": "8116:24:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "tail_2",
                              "nativeSrc": "8129:6:84",
                              "nodeType": "YulIdentifier",
                              "src": "8129:6:84"
                            },
                            {
                              "name": "_1",
                              "nativeSrc": "8137:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "8137:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "8125:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "8125:3:84"
                          },
                          "nativeSrc": "8125:15:84",
                          "nodeType": "YulFunctionCall",
                          "src": "8125:15:84"
                        },
                        "variableNames": [
                          {
                            "name": "pos_2",
                            "nativeSrc": "8116:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "8116:5:84"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "8153:53:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "8153:53:84",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "tail_2",
                                  "nativeSrc": "8175:6:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "8175:6:84"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "_2",
                                      "nativeSrc": "8187:2:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "8187:2:84"
                                    },
                                    {
                                      "name": "length_2",
                                      "nativeSrc": "8191:8:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "8191:8:84"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "8183:3:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "8183:3:84"
                                  },
                                  "nativeSrc": "8183:17:84",
                                  "nodeType": "YulFunctionCall",
                                  "src": "8183:17:84"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "8171:3:84",
                                "nodeType": "YulIdentifier",
                                "src": "8171:3:84"
                              },
                              "nativeSrc": "8171:30:84",
                              "nodeType": "YulFunctionCall",
                              "src": "8171:30:84"
                            },
                            {
                              "name": "_1",
                              "nativeSrc": "8203:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "8203:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "8167:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "8167:3:84"
                          },
                          "nativeSrc": "8167:39:84",
                          "nodeType": "YulFunctionCall",
                          "src": "8167:39:84"
                        },
                        "variables": [
                          {
                            "name": "tail_3",
                            "nativeSrc": "8157:6:84",
                            "nodeType": "YulTypedName",
                            "src": "8157:6:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "8219:27:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "8219:27:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "_4",
                              "nativeSrc": "8239:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "8239:2:84"
                            },
                            {
                              "name": "_1",
                              "nativeSrc": "8243:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "8243:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "8235:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "8235:3:84"
                          },
                          "nativeSrc": "8235:11:84",
                          "nodeType": "YulFunctionCall",
                          "src": "8235:11:84"
                        },
                        "variables": [
                          {
                            "name": "srcPtr_2",
                            "nativeSrc": "8223:8:84",
                            "nodeType": "YulTypedName",
                            "src": "8223:8:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "8259:12:84",
                        "nodeType": "YulVariableDeclaration",
                        "src": "8259:12:84",
                        "value": {
                          "kind": "number",
                          "nativeSrc": "8270:1:84",
                          "nodeType": "YulLiteral",
                          "src": "8270:1:84",
                          "type": "",
                          "value": "0"
                        },
                        "variables": [
                          {
                            "name": "i_2",
                            "nativeSrc": "8263:3:84",
                            "nodeType": "YulTypedName",
                            "src": "8263:3:84",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nativeSrc": "8345:230:84",
                          "nodeType": "YulBlock",
                          "src": "8345:230:84",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "pos_2",
                                    "nativeSrc": "8370:5:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "8370:5:84"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "tail_3",
                                            "nativeSrc": "8385:6:84",
                                            "nodeType": "YulIdentifier",
                                            "src": "8385:6:84"
                                          },
                                          {
                                            "name": "tail_2",
                                            "nativeSrc": "8393:6:84",
                                            "nodeType": "YulIdentifier",
                                            "src": "8393:6:84"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "sub",
                                          "nativeSrc": "8381:3:84",
                                          "nodeType": "YulIdentifier",
                                          "src": "8381:3:84"
                                        },
                                        "nativeSrc": "8381:19:84",
                                        "nodeType": "YulFunctionCall",
                                        "src": "8381:19:84"
                                      },
                                      {
                                        "name": "_3",
                                        "nativeSrc": "8402:2:84",
                                        "nodeType": "YulIdentifier",
                                        "src": "8402:2:84"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nativeSrc": "8377:3:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "8377:3:84"
                                    },
                                    "nativeSrc": "8377:28:84",
                                    "nodeType": "YulFunctionCall",
                                    "src": "8377:28:84"
                                  }
                                ],
                                "functionName": {
                                  "name": "mstore",
                                  "nativeSrc": "8363:6:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "8363:6:84"
                                },
                                "nativeSrc": "8363:43:84",
                                "nodeType": "YulFunctionCall",
                                "src": "8363:43:84"
                              },
                              "nativeSrc": "8363:43:84",
                              "nodeType": "YulExpressionStatement",
                              "src": "8363:43:84"
                            },
                            {
                              "nativeSrc": "8423:52:84",
                              "nodeType": "YulAssignment",
                              "src": "8423:52:84",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "srcPtr_2",
                                        "nativeSrc": "8457:8:84",
                                        "nodeType": "YulIdentifier",
                                        "src": "8457:8:84"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nativeSrc": "8451:5:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "8451:5:84"
                                    },
                                    "nativeSrc": "8451:15:84",
                                    "nodeType": "YulFunctionCall",
                                    "src": "8451:15:84"
                                  },
                                  {
                                    "name": "tail_3",
                                    "nativeSrc": "8468:6:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "8468:6:84"
                                  }
                                ],
                                "functionName": {
                                  "name": "abi_encode_string",
                                  "nativeSrc": "8433:17:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "8433:17:84"
                                },
                                "nativeSrc": "8433:42:84",
                                "nodeType": "YulFunctionCall",
                                "src": "8433:42:84"
                              },
                              "variableNames": [
                                {
                                  "name": "tail_3",
                                  "nativeSrc": "8423:6:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "8423:6:84"
                                }
                              ]
                            },
                            {
                              "nativeSrc": "8492:29:84",
                              "nodeType": "YulAssignment",
                              "src": "8492:29:84",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "srcPtr_2",
                                    "nativeSrc": "8508:8:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "8508:8:84"
                                  },
                                  {
                                    "name": "_1",
                                    "nativeSrc": "8518:2:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "8518:2:84"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "8504:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "8504:3:84"
                                },
                                "nativeSrc": "8504:17:84",
                                "nodeType": "YulFunctionCall",
                                "src": "8504:17:84"
                              },
                              "variableNames": [
                                {
                                  "name": "srcPtr_2",
                                  "nativeSrc": "8492:8:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "8492:8:84"
                                }
                              ]
                            },
                            {
                              "nativeSrc": "8538:23:84",
                              "nodeType": "YulAssignment",
                              "src": "8538:23:84",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "pos_2",
                                    "nativeSrc": "8551:5:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "8551:5:84"
                                  },
                                  {
                                    "name": "_1",
                                    "nativeSrc": "8558:2:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "8558:2:84"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "8547:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "8547:3:84"
                                },
                                "nativeSrc": "8547:14:84",
                                "nodeType": "YulFunctionCall",
                                "src": "8547:14:84"
                              },
                              "variableNames": [
                                {
                                  "name": "pos_2",
                                  "nativeSrc": "8538:5:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "8538:5:84"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "i_2",
                              "nativeSrc": "8295:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "8295:3:84"
                            },
                            {
                              "name": "length_2",
                              "nativeSrc": "8300:8:84",
                              "nodeType": "YulIdentifier",
                              "src": "8300:8:84"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nativeSrc": "8292:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "8292:2:84"
                          },
                          "nativeSrc": "8292:17:84",
                          "nodeType": "YulFunctionCall",
                          "src": "8292:17:84"
                        },
                        "nativeSrc": "8284:291:84",
                        "nodeType": "YulForLoop",
                        "post": {
                          "nativeSrc": "8310:22:84",
                          "nodeType": "YulBlock",
                          "src": "8310:22:84",
                          "statements": [
                            {
                              "nativeSrc": "8312:18:84",
                              "nodeType": "YulAssignment",
                              "src": "8312:18:84",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "i_2",
                                    "nativeSrc": "8323:3:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "8323:3:84"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "8328:1:84",
                                    "nodeType": "YulLiteral",
                                    "src": "8328:1:84",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "8319:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "8319:3:84"
                                },
                                "nativeSrc": "8319:11:84",
                                "nodeType": "YulFunctionCall",
                                "src": "8319:11:84"
                              },
                              "variableNames": [
                                {
                                  "name": "i_2",
                                  "nativeSrc": "8312:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "8312:3:84"
                                }
                              ]
                            }
                          ]
                        },
                        "pre": {
                          "nativeSrc": "8288:3:84",
                          "nodeType": "YulBlock",
                          "src": "8288:3:84",
                          "statements": []
                        },
                        "src": "8284:291:84"
                      },
                      {
                        "nativeSrc": "8588:16:84",
                        "nodeType": "YulAssignment",
                        "src": "8588:16:84",
                        "value": {
                          "name": "tail_3",
                          "nativeSrc": "8598:6:84",
                          "nodeType": "YulIdentifier",
                          "src": "8598:6:84"
                        },
                        "variableNames": [
                          {
                            "name": "tail_2",
                            "nativeSrc": "8588:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "8588:6:84"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "8617:29:84",
                        "nodeType": "YulAssignment",
                        "src": "8617:29:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr_1",
                              "nativeSrc": "8633:8:84",
                              "nodeType": "YulIdentifier",
                              "src": "8633:8:84"
                            },
                            {
                              "name": "_1",
                              "nativeSrc": "8643:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "8643:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "8629:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "8629:3:84"
                          },
                          "nativeSrc": "8629:17:84",
                          "nodeType": "YulFunctionCall",
                          "src": "8629:17:84"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr_1",
                            "nativeSrc": "8617:8:84",
                            "nodeType": "YulIdentifier",
                            "src": "8617:8:84"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "8659:23:84",
                        "nodeType": "YulAssignment",
                        "src": "8659:23:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos_1",
                              "nativeSrc": "8672:5:84",
                              "nodeType": "YulIdentifier",
                              "src": "8672:5:84"
                            },
                            {
                              "name": "_1",
                              "nativeSrc": "8679:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "8679:2:84"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "8668:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "8668:3:84"
                          },
                          "nativeSrc": "8668:14:84",
                          "nodeType": "YulFunctionCall",
                          "src": "8668:14:84"
                        },
                        "variableNames": [
                          {
                            "name": "pos_1",
                            "nativeSrc": "8659:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "8659:5:84"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i_1",
                        "nativeSrc": "7828:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "7828:3:84"
                      },
                      {
                        "name": "length_1",
                        "nativeSrc": "7833:8:84",
                        "nodeType": "YulIdentifier",
                        "src": "7833:8:84"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "7825:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "7825:2:84"
                    },
                    "nativeSrc": "7825:17:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7825:17:84"
                  },
                  "nativeSrc": "7817:875:84",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "7843:22:84",
                    "nodeType": "YulBlock",
                    "src": "7843:22:84",
                    "statements": [
                      {
                        "nativeSrc": "7845:18:84",
                        "nodeType": "YulAssignment",
                        "src": "7845:18:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "i_1",
                              "nativeSrc": "7856:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "7856:3:84"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "7861:1:84",
                              "nodeType": "YulLiteral",
                              "src": "7861:1:84",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "7852:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "7852:3:84"
                          },
                          "nativeSrc": "7852:11:84",
                          "nodeType": "YulFunctionCall",
                          "src": "7852:11:84"
                        },
                        "variableNames": [
                          {
                            "name": "i_1",
                            "nativeSrc": "7845:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "7845:3:84"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "7821:3:84",
                    "nodeType": "YulBlock",
                    "src": "7821:3:84",
                    "statements": []
                  },
                  "src": "7817:875:84"
                },
                {
                  "nativeSrc": "8701:14:84",
                  "nodeType": "YulAssignment",
                  "src": "8701:14:84",
                  "value": {
                    "name": "tail_2",
                    "nativeSrc": "8709:6:84",
                    "nodeType": "YulIdentifier",
                    "src": "8709:6:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "8701:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "8701:4:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_t_bytes32_t_bytes32_t_rational_32_by_1_t_array$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr_t_bytes32_t_bytes32_t_uint16_t_array$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr__fromStack_reversed",
            "nativeSrc": "6496:2225:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "6824:9:84",
                "nodeType": "YulTypedName",
                "src": "6824:9:84",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "6835:6:84",
                "nodeType": "YulTypedName",
                "src": "6835:6:84",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "6843:6:84",
                "nodeType": "YulTypedName",
                "src": "6843:6:84",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "6851:6:84",
                "nodeType": "YulTypedName",
                "src": "6851:6:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "6859:6:84",
                "nodeType": "YulTypedName",
                "src": "6859:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "6867:6:84",
                "nodeType": "YulTypedName",
                "src": "6867:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "6878:4:84",
                "nodeType": "YulTypedName",
                "src": "6878:4:84",
                "type": ""
              }
            ],
            "src": "6496:2225:84"
          },
          {
            "body": {
              "nativeSrc": "9014:353:84",
              "nodeType": "YulBlock",
              "src": "9014:353:84",
              "statements": [
                {
                  "nativeSrc": "9024:27:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9024:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "9044:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "9044:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "9038:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "9038:5:84"
                    },
                    "nativeSrc": "9038:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9038:13:84"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "9028:6:84",
                      "nodeType": "YulTypedName",
                      "src": "9028:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "9099:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "9099:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9107:4:84",
                            "nodeType": "YulLiteral",
                            "src": "9107:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9095:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "9095:3:84"
                        },
                        "nativeSrc": "9095:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "9095:17:84"
                      },
                      {
                        "name": "pos",
                        "nativeSrc": "9114:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "9114:3:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "9119:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "9119:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nativeSrc": "9060:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "9060:34:84"
                    },
                    "nativeSrc": "9060:66:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9060:66:84"
                  },
                  "nativeSrc": "9060:66:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "9060:66:84"
                },
                {
                  "nativeSrc": "9135:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9135:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "9152:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "9152:3:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "9157:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "9157:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "9148:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "9148:3:84"
                    },
                    "nativeSrc": "9148:16:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9148:16:84"
                  },
                  "variables": [
                    {
                      "name": "end_1",
                      "nativeSrc": "9139:5:84",
                      "nodeType": "YulTypedName",
                      "src": "9139:5:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "end_1",
                        "nativeSrc": "9180:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "9180:5:84"
                      },
                      {
                        "hexValue": "3a20",
                        "kind": "string",
                        "nativeSrc": "9187:4:84",
                        "nodeType": "YulLiteral",
                        "src": "9187:4:84",
                        "type": "",
                        "value": ": "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "9173:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "9173:6:84"
                    },
                    "nativeSrc": "9173:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9173:19:84"
                  },
                  "nativeSrc": "9173:19:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "9173:19:84"
                },
                {
                  "nativeSrc": "9201:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9201:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "9223:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "9223:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "9217:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "9217:5:84"
                    },
                    "nativeSrc": "9217:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9217:13:84"
                  },
                  "variables": [
                    {
                      "name": "length_1",
                      "nativeSrc": "9205:8:84",
                      "nodeType": "YulTypedName",
                      "src": "9205:8:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "9278:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "9278:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9286:4:84",
                            "nodeType": "YulLiteral",
                            "src": "9286:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9274:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "9274:3:84"
                        },
                        "nativeSrc": "9274:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "9274:17:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "end_1",
                            "nativeSrc": "9297:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "9297:5:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9304:1:84",
                            "nodeType": "YulLiteral",
                            "src": "9304:1:84",
                            "type": "",
                            "value": "2"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9293:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "9293:3:84"
                        },
                        "nativeSrc": "9293:13:84",
                        "nodeType": "YulFunctionCall",
                        "src": "9293:13:84"
                      },
                      {
                        "name": "length_1",
                        "nativeSrc": "9308:8:84",
                        "nodeType": "YulIdentifier",
                        "src": "9308:8:84"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nativeSrc": "9239:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "9239:34:84"
                    },
                    "nativeSrc": "9239:78:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9239:78:84"
                  },
                  "nativeSrc": "9239:78:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "9239:78:84"
                },
                {
                  "nativeSrc": "9326:35:84",
                  "nodeType": "YulAssignment",
                  "src": "9326:35:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "end_1",
                            "nativeSrc": "9341:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "9341:5:84"
                          },
                          {
                            "name": "length_1",
                            "nativeSrc": "9348:8:84",
                            "nodeType": "YulIdentifier",
                            "src": "9348:8:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9337:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "9337:3:84"
                        },
                        "nativeSrc": "9337:20:84",
                        "nodeType": "YulFunctionCall",
                        "src": "9337:20:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9359:1:84",
                        "nodeType": "YulLiteral",
                        "src": "9359:1:84",
                        "type": "",
                        "value": "2"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "9333:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "9333:3:84"
                    },
                    "nativeSrc": "9333:28:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9333:28:84"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "9326:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "9326:3:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "8726:641:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "8982:3:84",
                "nodeType": "YulTypedName",
                "src": "8982:3:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "8987:6:84",
                "nodeType": "YulTypedName",
                "src": "8987:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "8995:6:84",
                "nodeType": "YulTypedName",
                "src": "8995:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "9006:3:84",
                "nodeType": "YulTypedName",
                "src": "9006:3:84",
                "type": ""
              }
            ],
            "src": "8726:641:84"
          },
          {
            "body": {
              "nativeSrc": "9493:99:84",
              "nodeType": "YulBlock",
              "src": "9493:99:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "9510:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "9510:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9521:2:84",
                        "nodeType": "YulLiteral",
                        "src": "9521:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "9503:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "9503:6:84"
                    },
                    "nativeSrc": "9503:21:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9503:21:84"
                  },
                  "nativeSrc": "9503:21:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "9503:21:84"
                },
                {
                  "nativeSrc": "9533:53:84",
                  "nodeType": "YulAssignment",
                  "src": "9533:53:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "9559:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "9559:6:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "9571:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "9571:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9582:2:84",
                            "nodeType": "YulLiteral",
                            "src": "9582:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9567:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "9567:3:84"
                        },
                        "nativeSrc": "9567:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "9567:18:84"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nativeSrc": "9541:17:84",
                      "nodeType": "YulIdentifier",
                      "src": "9541:17:84"
                    },
                    "nativeSrc": "9541:45:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9541:45:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "9533:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "9533:4:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "9372:220:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "9462:9:84",
                "nodeType": "YulTypedName",
                "src": "9462:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "9473:6:84",
                "nodeType": "YulTypedName",
                "src": "9473:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "9484:4:84",
                "nodeType": "YulTypedName",
                "src": "9484:4:84",
                "type": ""
              }
            ],
            "src": "9372:220:84"
          }
        ]
      },
      "contents": "{\n    { }\n    function validator_revert_contract_WitnetOracle(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_WitnetOracle_$749t_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_WitnetOracle(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_WitnetOracle(value_1)\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_57d830abe71d02a02e5da4295b2a41f780665da6ca2ca2ca1e1e440e807c06d7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"UsingWitnet: uncompliant WitnetO\")\n        mstore(add(headStart, 96), \"racle\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_WitnetRequestBytecodes_$849_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_WitnetOracle(value)\n        value0 := value\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_stringliteral_56e8(pos) -> end\n    {\n        mstore(pos, 1)\n        mstore(add(pos, 0x20), shl(255, 1))\n        end := add(pos, 64)\n    }\n    function abi_encode_tuple_t_enum$_RadonDataRequestMethods_$16410_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_t_stringliteral_56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421__to_t_uint8_t_string_memory_ptr_t_string_memory_ptr_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        if iszero(lt(value0, 5)) { panic_error_0x21() }\n        mstore(headStart, value0)\n        let _1 := 32\n        mstore(add(headStart, _1), 160)\n        let _2 := 0\n        mstore(add(headStart, 160), 0)\n        let _3 := 64\n        mstore(add(headStart, 64), 192)\n        mstore(add(headStart, 192), 0)\n        let updated_pos := add(headStart, 224)\n        mstore(add(headStart, 96), 224)\n        let pos := updated_pos\n        let length := mload(value1)\n        mstore(updated_pos, length)\n        let _4 := 256\n        pos := add(headStart, _4)\n        let tail_1 := add(add(headStart, shl(5, length)), _4)\n        let srcPtr := add(value1, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_1, headStart), not(255)))\n            let _5 := mload(srcPtr)\n            let pos_1 := tail_1\n            pos_1 := tail_1\n            let tail_2 := add(tail_1, _3)\n            let srcPtr_1 := _5\n            let i_1 := _2\n            for { } lt(i_1, 0x02) { i_1 := add(i_1, 1) }\n            {\n                mstore(pos_1, sub(tail_2, tail_1))\n                tail_2 := abi_encode_string(mload(srcPtr_1), tail_2)\n                srcPtr_1 := add(srcPtr_1, _1)\n                pos_1 := add(pos_1, _1)\n            }\n            tail_1 := tail_2\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        tail := abi_encode_stringliteral_56e8(tail_1)\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_struct$_RadonReducer_$16460_memory_ptr__to_t_struct$_RadonReducer_$16460_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        mstore(headStart, _1)\n        let tail_1 := add(headStart, 96)\n        let _2 := mload(value0)\n        if iszero(lt(_2, 12)) { panic_error_0x21() }\n        mstore(add(headStart, _1), _2)\n        let memberValue0 := mload(add(value0, _1))\n        let _3 := 0x40\n        mstore(add(headStart, 0x40), 0x40)\n        let pos := tail_1\n        let length := mload(memberValue0)\n        mstore(tail_1, length)\n        pos := add(headStart, 128)\n        let tail_2 := add(add(headStart, shl(5, length)), 128)\n        let srcPtr := add(memberValue0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_2, headStart), not(127)))\n            let _4 := mload(srcPtr)\n            let _5 := mload(_4)\n            if iszero(lt(_5, 10)) { panic_error_0x21() }\n            mstore(tail_2, _5)\n            let memberValue0_1 := mload(add(_4, _1))\n            mstore(add(tail_2, _1), _3)\n            tail_2 := abi_encode_string(memberValue0_1, add(tail_2, _3))\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        tail := tail_2\n    }\n    function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_t_bytes32_t_bytes32_t_rational_32_by_1_t_array$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr_t_bytes32_t_bytes32_t_uint16_t_array$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 160)\n        mstore(headStart, 160)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 192)\n        let _1 := 0x20\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        mstore(add(headStart, _1), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, 0xffff))\n        mstore(add(headStart, 128), sub(pos, headStart))\n        let pos_1 := pos\n        let length_1 := mload(value4)\n        mstore(pos, length_1)\n        pos_1 := add(pos, _1)\n        let _2 := 5\n        let tail_2 := add(add(pos, shl(5, length_1)), _1)\n        let srcPtr_1 := add(value4, _1)\n        let i_1 := 0\n        for { } lt(i_1, length_1) { i_1 := add(i_1, 1) }\n        {\n            let _3 := not(31)\n            mstore(pos_1, add(sub(tail_2, pos), _3))\n            let _4 := mload(srcPtr_1)\n            let pos_2 := tail_2\n            let length_2 := mload(_4)\n            mstore(tail_2, length_2)\n            pos_2 := add(tail_2, _1)\n            let tail_3 := add(add(tail_2, shl(_2, length_2)), _1)\n            let srcPtr_2 := add(_4, _1)\n            let i_2 := 0\n            for { } lt(i_2, length_2) { i_2 := add(i_2, 1) }\n            {\n                mstore(pos_2, add(sub(tail_3, tail_2), _3))\n                tail_3 := abi_encode_string(mload(srcPtr_2), tail_3)\n                srcPtr_2 := add(srcPtr_2, _1)\n                pos_2 := add(pos_2, _1)\n            }\n            tail_2 := tail_3\n            srcPtr_1 := add(srcPtr_1, _1)\n            pos_1 := add(pos_1, _1)\n        }\n        tail := tail_2\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        mstore(end_1, \": \")\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), add(end_1, 2), length_1)\n        end := add(add(end_1, length_1), 2)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n}",
      "id": 84,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nativeSrc": "0:17933:84",
        "nodeType": "YulBlock",
        "src": "0:17933:84",
        "statements": [
          {
            "nativeSrc": "6:3:84",
            "nodeType": "YulBlock",
            "src": "6:3:84",
            "statements": []
          },
          {
            "body": {
              "nativeSrc": "80:184:84",
              "nodeType": "YulBlock",
              "src": "80:184:84",
              "statements": [
                {
                  "nativeSrc": "90:10:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "90:10:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "99:1:84",
                    "nodeType": "YulLiteral",
                    "src": "99:1:84",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nativeSrc": "94:1:84",
                      "nodeType": "YulTypedName",
                      "src": "94:1:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "159:63:84",
                    "nodeType": "YulBlock",
                    "src": "159:63:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "dst",
                                  "nativeSrc": "184:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "184:3:84"
                                },
                                {
                                  "name": "i",
                                  "nativeSrc": "189:1:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "189:1:84"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "180:3:84",
                                "nodeType": "YulIdentifier",
                                "src": "180:3:84"
                              },
                              "nativeSrc": "180:11:84",
                              "nodeType": "YulFunctionCall",
                              "src": "180:11:84"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "src",
                                      "nativeSrc": "203:3:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "203:3:84"
                                    },
                                    {
                                      "name": "i",
                                      "nativeSrc": "208:1:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "208:1:84"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nativeSrc": "199:3:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "199:3:84"
                                  },
                                  "nativeSrc": "199:11:84",
                                  "nodeType": "YulFunctionCall",
                                  "src": "199:11:84"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nativeSrc": "193:5:84",
                                "nodeType": "YulIdentifier",
                                "src": "193:5:84"
                              },
                              "nativeSrc": "193:18:84",
                              "nodeType": "YulFunctionCall",
                              "src": "193:18:84"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "173:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "173:6:84"
                          },
                          "nativeSrc": "173:39:84",
                          "nodeType": "YulFunctionCall",
                          "src": "173:39:84"
                        },
                        "nativeSrc": "173:39:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "173:39:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nativeSrc": "120:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "120:1:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "123:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "123:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "117:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "117:2:84"
                    },
                    "nativeSrc": "117:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "117:13:84"
                  },
                  "nativeSrc": "109:113:84",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "131:19:84",
                    "nodeType": "YulBlock",
                    "src": "131:19:84",
                    "statements": [
                      {
                        "nativeSrc": "133:15:84",
                        "nodeType": "YulAssignment",
                        "src": "133:15:84",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nativeSrc": "142:1:84",
                              "nodeType": "YulIdentifier",
                              "src": "142:1:84"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "145:2:84",
                              "nodeType": "YulLiteral",
                              "src": "145:2:84",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "138:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "138:3:84"
                          },
                          "nativeSrc": "138:10:84",
                          "nodeType": "YulFunctionCall",
                          "src": "138:10:84"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nativeSrc": "133:1:84",
                            "nodeType": "YulIdentifier",
                            "src": "133:1:84"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "113:3:84",
                    "nodeType": "YulBlock",
                    "src": "113:3:84",
                    "statements": []
                  },
                  "src": "109:113:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dst",
                            "nativeSrc": "242:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "242:3:84"
                          },
                          {
                            "name": "length",
                            "nativeSrc": "247:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "247:6:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "238:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "238:3:84"
                        },
                        "nativeSrc": "238:16:84",
                        "nodeType": "YulFunctionCall",
                        "src": "238:16:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "256:1:84",
                        "nodeType": "YulLiteral",
                        "src": "256:1:84",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "231:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "231:6:84"
                    },
                    "nativeSrc": "231:27:84",
                    "nodeType": "YulFunctionCall",
                    "src": "231:27:84"
                  },
                  "nativeSrc": "231:27:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "231:27:84"
                }
              ]
            },
            "name": "copy_memory_to_memory_with_cleanup",
            "nativeSrc": "14:250:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "src",
                "nativeSrc": "58:3:84",
                "nodeType": "YulTypedName",
                "src": "58:3:84",
                "type": ""
              },
              {
                "name": "dst",
                "nativeSrc": "63:3:84",
                "nodeType": "YulTypedName",
                "src": "63:3:84",
                "type": ""
              },
              {
                "name": "length",
                "nativeSrc": "68:6:84",
                "nodeType": "YulTypedName",
                "src": "68:6:84",
                "type": ""
              }
            ],
            "src": "14:250:84"
          },
          {
            "body": {
              "nativeSrc": "653:688:84",
              "nodeType": "YulBlock",
              "src": "653:688:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "670:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "670:3:84"
                      },
                      {
                        "hexValue": "6e6f7420696d706c656d656e7465643a203078",
                        "kind": "string",
                        "nativeSrc": "675:21:84",
                        "nodeType": "YulLiteral",
                        "src": "675:21:84",
                        "type": "",
                        "value": "not implemented: 0x"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "663:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "663:6:84"
                    },
                    "nativeSrc": "663:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "663:34:84"
                  },
                  "nativeSrc": "663:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "663:34:84"
                },
                {
                  "nativeSrc": "706:27:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "706:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "726:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "726:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "720:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "720:5:84"
                    },
                    "nativeSrc": "720:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "720:13:84"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "710:6:84",
                      "nodeType": "YulTypedName",
                      "src": "710:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "781:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "781:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "789:4:84",
                            "nodeType": "YulLiteral",
                            "src": "789:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "777:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "777:3:84"
                        },
                        "nativeSrc": "777:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "777:17:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "800:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "800:3:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "805:2:84",
                            "nodeType": "YulLiteral",
                            "src": "805:2:84",
                            "type": "",
                            "value": "19"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "796:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "796:3:84"
                        },
                        "nativeSrc": "796:12:84",
                        "nodeType": "YulFunctionCall",
                        "src": "796:12:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "810:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "810:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nativeSrc": "742:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "742:34:84"
                    },
                    "nativeSrc": "742:75:84",
                    "nodeType": "YulFunctionCall",
                    "src": "742:75:84"
                  },
                  "nativeSrc": "742:75:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "742:75:84"
                },
                {
                  "nativeSrc": "826:26:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "826:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "840:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "840:3:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "845:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "845:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "836:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "836:3:84"
                    },
                    "nativeSrc": "836:16:84",
                    "nodeType": "YulFunctionCall",
                    "src": "836:16:84"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "830:2:84",
                      "nodeType": "YulTypedName",
                      "src": "830:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "861:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "861:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "883:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "883:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "877:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "877:5:84"
                    },
                    "nativeSrc": "877:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "877:13:84"
                  },
                  "variables": [
                    {
                      "name": "length_1",
                      "nativeSrc": "865:8:84",
                      "nodeType": "YulTypedName",
                      "src": "865:8:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "938:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "938:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "946:4:84",
                            "nodeType": "YulLiteral",
                            "src": "946:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "934:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "934:3:84"
                        },
                        "nativeSrc": "934:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "934:17:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "957:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "957:2:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "961:2:84",
                            "nodeType": "YulLiteral",
                            "src": "961:2:84",
                            "type": "",
                            "value": "19"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "953:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "953:3:84"
                        },
                        "nativeSrc": "953:11:84",
                        "nodeType": "YulFunctionCall",
                        "src": "953:11:84"
                      },
                      {
                        "name": "length_1",
                        "nativeSrc": "966:8:84",
                        "nodeType": "YulIdentifier",
                        "src": "966:8:84"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nativeSrc": "899:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "899:34:84"
                    },
                    "nativeSrc": "899:76:84",
                    "nodeType": "YulFunctionCall",
                    "src": "899:76:84"
                  },
                  "nativeSrc": "899:76:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "899:76:84"
                },
                {
                  "nativeSrc": "984:27:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "984:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "998:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "998:2:84"
                      },
                      {
                        "name": "length_1",
                        "nativeSrc": "1002:8:84",
                        "nodeType": "YulIdentifier",
                        "src": "1002:8:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "994:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "994:3:84"
                    },
                    "nativeSrc": "994:17:84",
                    "nodeType": "YulFunctionCall",
                    "src": "994:17:84"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nativeSrc": "988:2:84",
                      "nodeType": "YulTypedName",
                      "src": "988:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "1020:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "1020:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nativeSrc": "1042:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "1042:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "1036:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "1036:5:84"
                    },
                    "nativeSrc": "1036:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1036:13:84"
                  },
                  "variables": [
                    {
                      "name": "length_2",
                      "nativeSrc": "1024:8:84",
                      "nodeType": "YulTypedName",
                      "src": "1024:8:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value2",
                            "nativeSrc": "1097:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "1097:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1105:4:84",
                            "nodeType": "YulLiteral",
                            "src": "1105:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1093:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1093:3:84"
                        },
                        "nativeSrc": "1093:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1093:17:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nativeSrc": "1116:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "1116:2:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1120:2:84",
                            "nodeType": "YulLiteral",
                            "src": "1120:2:84",
                            "type": "",
                            "value": "19"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1112:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1112:3:84"
                        },
                        "nativeSrc": "1112:11:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1112:11:84"
                      },
                      {
                        "name": "length_2",
                        "nativeSrc": "1125:8:84",
                        "nodeType": "YulIdentifier",
                        "src": "1125:8:84"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nativeSrc": "1058:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "1058:34:84"
                    },
                    "nativeSrc": "1058:76:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1058:76:84"
                  },
                  "nativeSrc": "1058:76:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1058:76:84"
                },
                {
                  "nativeSrc": "1143:27:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "1143:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nativeSrc": "1157:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "1157:2:84"
                      },
                      {
                        "name": "length_2",
                        "nativeSrc": "1161:8:84",
                        "nodeType": "YulIdentifier",
                        "src": "1161:8:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "1153:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "1153:3:84"
                    },
                    "nativeSrc": "1153:17:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1153:17:84"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nativeSrc": "1147:2:84",
                      "nodeType": "YulTypedName",
                      "src": "1147:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "1179:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "1179:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nativeSrc": "1201:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "1201:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "1195:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "1195:5:84"
                    },
                    "nativeSrc": "1195:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1195:13:84"
                  },
                  "variables": [
                    {
                      "name": "length_3",
                      "nativeSrc": "1183:8:84",
                      "nodeType": "YulTypedName",
                      "src": "1183:8:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value3",
                            "nativeSrc": "1256:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "1256:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1264:4:84",
                            "nodeType": "YulLiteral",
                            "src": "1264:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1252:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1252:3:84"
                        },
                        "nativeSrc": "1252:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1252:17:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_3",
                            "nativeSrc": "1275:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "1275:2:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1279:2:84",
                            "nodeType": "YulLiteral",
                            "src": "1279:2:84",
                            "type": "",
                            "value": "19"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1271:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1271:3:84"
                        },
                        "nativeSrc": "1271:11:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1271:11:84"
                      },
                      {
                        "name": "length_3",
                        "nativeSrc": "1284:8:84",
                        "nodeType": "YulIdentifier",
                        "src": "1284:8:84"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nativeSrc": "1217:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "1217:34:84"
                    },
                    "nativeSrc": "1217:76:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1217:76:84"
                  },
                  "nativeSrc": "1217:76:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1217:76:84"
                },
                {
                  "nativeSrc": "1302:33:84",
                  "nodeType": "YulAssignment",
                  "src": "1302:33:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_3",
                            "nativeSrc": "1317:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "1317:2:84"
                          },
                          {
                            "name": "length_3",
                            "nativeSrc": "1321:8:84",
                            "nodeType": "YulIdentifier",
                            "src": "1321:8:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1313:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1313:3:84"
                        },
                        "nativeSrc": "1313:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1313:17:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1332:2:84",
                        "nodeType": "YulLiteral",
                        "src": "1332:2:84",
                        "type": "",
                        "value": "19"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "1309:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "1309:3:84"
                    },
                    "nativeSrc": "1309:26:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1309:26:84"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "1302:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "1302:3:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_stringliteral_6aa2932fe75962e4eb862ba4982429ce713637712a759cb9d40b6d5260a002eb_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "269:1072:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "605:3:84",
                "nodeType": "YulTypedName",
                "src": "605:3:84",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "610:6:84",
                "nodeType": "YulTypedName",
                "src": "610:6:84",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "618:6:84",
                "nodeType": "YulTypedName",
                "src": "618:6:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "626:6:84",
                "nodeType": "YulTypedName",
                "src": "626:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "634:6:84",
                "nodeType": "YulTypedName",
                "src": "634:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "645:3:84",
                "nodeType": "YulTypedName",
                "src": "645:3:84",
                "type": ""
              }
            ],
            "src": "269:1072:84"
          },
          {
            "body": {
              "nativeSrc": "1416:110:84",
              "nodeType": "YulBlock",
              "src": "1416:110:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "1462:16:84",
                    "nodeType": "YulBlock",
                    "src": "1462:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "1471:1:84",
                              "nodeType": "YulLiteral",
                              "src": "1471:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "1474:1:84",
                              "nodeType": "YulLiteral",
                              "src": "1474:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "1464:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "1464:6:84"
                          },
                          "nativeSrc": "1464:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "1464:12:84"
                        },
                        "nativeSrc": "1464:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "1464:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "1437:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "1437:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "1446:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "1446:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "1433:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1433:3:84"
                        },
                        "nativeSrc": "1433:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1433:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1458:2:84",
                        "nodeType": "YulLiteral",
                        "src": "1458:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "1429:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "1429:3:84"
                    },
                    "nativeSrc": "1429:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1429:32:84"
                  },
                  "nativeSrc": "1426:52:84",
                  "nodeType": "YulIf",
                  "src": "1426:52:84"
                },
                {
                  "nativeSrc": "1487:33:84",
                  "nodeType": "YulAssignment",
                  "src": "1487:33:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1510:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "1510:9:84"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "1497:12:84",
                      "nodeType": "YulIdentifier",
                      "src": "1497:12:84"
                    },
                    "nativeSrc": "1497:23:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1497:23:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "1487:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1487:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256",
            "nativeSrc": "1346:180:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "1382:9:84",
                "nodeType": "YulTypedName",
                "src": "1382:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "1393:7:84",
                "nodeType": "YulTypedName",
                "src": "1393:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "1405:6:84",
                "nodeType": "YulTypedName",
                "src": "1405:6:84",
                "type": ""
              }
            ],
            "src": "1346:180:84"
          },
          {
            "body": {
              "nativeSrc": "1714:231:84",
              "nodeType": "YulBlock",
              "src": "1714:231:84",
              "statements": [
                {
                  "nativeSrc": "1724:27:84",
                  "nodeType": "YulAssignment",
                  "src": "1724:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1736:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "1736:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1747:3:84",
                        "nodeType": "YulLiteral",
                        "src": "1747:3:84",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "1732:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "1732:3:84"
                    },
                    "nativeSrc": "1732:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1732:19:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "1724:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "1724:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1767:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "1767:9:84"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "1778:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "1778:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1760:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1760:6:84"
                    },
                    "nativeSrc": "1760:25:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1760:25:84"
                  },
                  "nativeSrc": "1760:25:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1760:25:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "1805:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "1805:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1816:2:84",
                            "nodeType": "YulLiteral",
                            "src": "1816:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1801:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1801:3:84"
                        },
                        "nativeSrc": "1801:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1801:18:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "1825:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "1825:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1833:18:84",
                            "nodeType": "YulLiteral",
                            "src": "1833:18:84",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "1821:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1821:3:84"
                        },
                        "nativeSrc": "1821:31:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1821:31:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1794:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1794:6:84"
                    },
                    "nativeSrc": "1794:59:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1794:59:84"
                  },
                  "nativeSrc": "1794:59:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1794:59:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "1873:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "1873:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1884:2:84",
                            "nodeType": "YulLiteral",
                            "src": "1884:2:84",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1869:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1869:3:84"
                        },
                        "nativeSrc": "1869:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1869:18:84"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "1889:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "1889:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1862:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1862:6:84"
                    },
                    "nativeSrc": "1862:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1862:34:84"
                  },
                  "nativeSrc": "1862:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1862:34:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "1916:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "1916:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1927:2:84",
                            "nodeType": "YulLiteral",
                            "src": "1927:2:84",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1912:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "1912:3:84"
                        },
                        "nativeSrc": "1912:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "1912:18:84"
                      },
                      {
                        "name": "value3",
                        "nativeSrc": "1932:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "1932:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1905:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "1905:6:84"
                    },
                    "nativeSrc": "1905:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "1905:34:84"
                  },
                  "nativeSrc": "1905:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "1905:34:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes32_t_uint64_t_bytes32_t_uint256__to_t_bytes32_t_uint64_t_bytes32_t_uint256__fromStack_reversed",
            "nativeSrc": "1531:414:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "1659:9:84",
                "nodeType": "YulTypedName",
                "src": "1659:9:84",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "1670:6:84",
                "nodeType": "YulTypedName",
                "src": "1670:6:84",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "1678:6:84",
                "nodeType": "YulTypedName",
                "src": "1678:6:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "1686:6:84",
                "nodeType": "YulTypedName",
                "src": "1686:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "1694:6:84",
                "nodeType": "YulTypedName",
                "src": "1694:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "1705:4:84",
                "nodeType": "YulTypedName",
                "src": "1705:4:84",
                "type": ""
              }
            ],
            "src": "1531:414:84"
          },
          {
            "body": {
              "nativeSrc": "1994:77:84",
              "nodeType": "YulBlock",
              "src": "1994:77:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "2049:16:84",
                    "nodeType": "YulBlock",
                    "src": "2049:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "2058:1:84",
                              "nodeType": "YulLiteral",
                              "src": "2058:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "2061:1:84",
                              "nodeType": "YulLiteral",
                              "src": "2061:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "2051:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "2051:6:84"
                          },
                          "nativeSrc": "2051:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "2051:12:84"
                        },
                        "nativeSrc": "2051:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "2051:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "2017:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "2017:5:84"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "2028:5:84",
                                "nodeType": "YulIdentifier",
                                "src": "2028:5:84"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "2035:10:84",
                                "nodeType": "YulLiteral",
                                "src": "2035:10:84",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "2024:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "2024:3:84"
                            },
                            "nativeSrc": "2024:22:84",
                            "nodeType": "YulFunctionCall",
                            "src": "2024:22:84"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "2014:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "2014:2:84"
                        },
                        "nativeSrc": "2014:33:84",
                        "nodeType": "YulFunctionCall",
                        "src": "2014:33:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "2007:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "2007:6:84"
                    },
                    "nativeSrc": "2007:41:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2007:41:84"
                  },
                  "nativeSrc": "2004:61:84",
                  "nodeType": "YulIf",
                  "src": "2004:61:84"
                }
              ]
            },
            "name": "validator_revert_uint32",
            "nativeSrc": "1950:121:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "1983:5:84",
                "nodeType": "YulTypedName",
                "src": "1983:5:84",
                "type": ""
              }
            ],
            "src": "1950:121:84"
          },
          {
            "body": {
              "nativeSrc": "2179:278:84",
              "nodeType": "YulBlock",
              "src": "2179:278:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "2225:16:84",
                    "nodeType": "YulBlock",
                    "src": "2225:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "2234:1:84",
                              "nodeType": "YulLiteral",
                              "src": "2234:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "2237:1:84",
                              "nodeType": "YulLiteral",
                              "src": "2237:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "2227:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "2227:6:84"
                          },
                          "nativeSrc": "2227:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "2227:12:84"
                        },
                        "nativeSrc": "2227:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "2227:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "2200:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "2200:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "2209:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "2209:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "2196:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "2196:3:84"
                        },
                        "nativeSrc": "2196:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "2196:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2221:2:84",
                        "nodeType": "YulLiteral",
                        "src": "2221:2:84",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "2192:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "2192:3:84"
                    },
                    "nativeSrc": "2192:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2192:32:84"
                  },
                  "nativeSrc": "2189:52:84",
                  "nodeType": "YulIf",
                  "src": "2189:52:84"
                },
                {
                  "nativeSrc": "2250:36:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "2250:36:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2276:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "2276:9:84"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "2263:12:84",
                      "nodeType": "YulIdentifier",
                      "src": "2263:12:84"
                    },
                    "nativeSrc": "2263:23:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2263:23:84"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "2254:5:84",
                      "nodeType": "YulTypedName",
                      "src": "2254:5:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "2319:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "2319:5:84"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint32",
                      "nativeSrc": "2295:23:84",
                      "nodeType": "YulIdentifier",
                      "src": "2295:23:84"
                    },
                    "nativeSrc": "2295:30:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2295:30:84"
                  },
                  "nativeSrc": "2295:30:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "2295:30:84"
                },
                {
                  "nativeSrc": "2334:15:84",
                  "nodeType": "YulAssignment",
                  "src": "2334:15:84",
                  "value": {
                    "name": "value",
                    "nativeSrc": "2344:5:84",
                    "nodeType": "YulIdentifier",
                    "src": "2344:5:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "2334:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "2334:6:84"
                    }
                  ]
                },
                {
                  "nativeSrc": "2358:42:84",
                  "nodeType": "YulAssignment",
                  "src": "2358:42:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "2385:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "2385:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2396:2:84",
                            "nodeType": "YulLiteral",
                            "src": "2396:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2381:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "2381:3:84"
                        },
                        "nativeSrc": "2381:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "2381:18:84"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "2368:12:84",
                      "nodeType": "YulIdentifier",
                      "src": "2368:12:84"
                    },
                    "nativeSrc": "2368:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2368:32:84"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "2358:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "2358:6:84"
                    }
                  ]
                },
                {
                  "nativeSrc": "2409:42:84",
                  "nodeType": "YulAssignment",
                  "src": "2409:42:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "2436:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "2436:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2447:2:84",
                            "nodeType": "YulLiteral",
                            "src": "2447:2:84",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2432:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "2432:3:84"
                        },
                        "nativeSrc": "2432:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "2432:18:84"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "2419:12:84",
                      "nodeType": "YulIdentifier",
                      "src": "2419:12:84"
                    },
                    "nativeSrc": "2419:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2419:32:84"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nativeSrc": "2409:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "2409:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint32t_uint256t_uint256",
            "nativeSrc": "2076:381:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "2129:9:84",
                "nodeType": "YulTypedName",
                "src": "2129:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "2140:7:84",
                "nodeType": "YulTypedName",
                "src": "2140:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "2152:6:84",
                "nodeType": "YulTypedName",
                "src": "2152:6:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "2160:6:84",
                "nodeType": "YulTypedName",
                "src": "2160:6:84",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "2168:6:84",
                "nodeType": "YulTypedName",
                "src": "2168:6:84",
                "type": ""
              }
            ],
            "src": "2076:381:84"
          },
          {
            "body": {
              "nativeSrc": "2561:93:84",
              "nodeType": "YulBlock",
              "src": "2561:93:84",
              "statements": [
                {
                  "nativeSrc": "2571:26:84",
                  "nodeType": "YulAssignment",
                  "src": "2571:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2583:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "2583:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2594:2:84",
                        "nodeType": "YulLiteral",
                        "src": "2594:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "2579:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "2579:3:84"
                    },
                    "nativeSrc": "2579:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2579:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "2571:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "2571:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2613:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "2613:9:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "2628:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "2628:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2636:10:84",
                            "nodeType": "YulLiteral",
                            "src": "2636:10:84",
                            "type": "",
                            "value": "0xffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "2624:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "2624:3:84"
                        },
                        "nativeSrc": "2624:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "2624:23:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2606:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "2606:6:84"
                    },
                    "nativeSrc": "2606:42:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2606:42:84"
                  },
                  "nativeSrc": "2606:42:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "2606:42:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed",
            "nativeSrc": "2462:192:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "2530:9:84",
                "nodeType": "YulTypedName",
                "src": "2530:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "2541:6:84",
                "nodeType": "YulTypedName",
                "src": "2541:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "2552:4:84",
                "nodeType": "YulTypedName",
                "src": "2552:4:84",
                "type": ""
              }
            ],
            "src": "2462:192:84"
          },
          {
            "body": {
              "nativeSrc": "2780:102:84",
              "nodeType": "YulBlock",
              "src": "2780:102:84",
              "statements": [
                {
                  "nativeSrc": "2790:26:84",
                  "nodeType": "YulAssignment",
                  "src": "2790:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2802:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "2802:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2813:2:84",
                        "nodeType": "YulLiteral",
                        "src": "2813:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "2798:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "2798:3:84"
                    },
                    "nativeSrc": "2798:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2798:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "2790:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "2790:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2832:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "2832:9:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "2847:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "2847:6:84"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "2863:3:84",
                                    "nodeType": "YulLiteral",
                                    "src": "2863:3:84",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "2868:1:84",
                                    "nodeType": "YulLiteral",
                                    "src": "2868:1:84",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "2859:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "2859:3:84"
                                },
                                "nativeSrc": "2859:11:84",
                                "nodeType": "YulFunctionCall",
                                "src": "2859:11:84"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "2872:1:84",
                                "nodeType": "YulLiteral",
                                "src": "2872:1:84",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "2855:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "2855:3:84"
                            },
                            "nativeSrc": "2855:19:84",
                            "nodeType": "YulFunctionCall",
                            "src": "2855:19:84"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "2843:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "2843:3:84"
                        },
                        "nativeSrc": "2843:32:84",
                        "nodeType": "YulFunctionCall",
                        "src": "2843:32:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2825:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "2825:6:84"
                    },
                    "nativeSrc": "2825:51:84",
                    "nodeType": "YulFunctionCall",
                    "src": "2825:51:84"
                  },
                  "nativeSrc": "2825:51:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "2825:51:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_contract$_WitnetOracle_$749__to_t_address__fromStack_reversed",
            "nativeSrc": "2659:223:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "2749:9:84",
                "nodeType": "YulTypedName",
                "src": "2749:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "2760:6:84",
                "nodeType": "YulTypedName",
                "src": "2760:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "2771:4:84",
                "nodeType": "YulTypedName",
                "src": "2771:4:84",
                "type": ""
              }
            ],
            "src": "2659:223:84"
          },
          {
            "body": {
              "nativeSrc": "2988:76:84",
              "nodeType": "YulBlock",
              "src": "2988:76:84",
              "statements": [
                {
                  "nativeSrc": "2998:26:84",
                  "nodeType": "YulAssignment",
                  "src": "2998:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3010:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "3010:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3021:2:84",
                        "nodeType": "YulLiteral",
                        "src": "3021:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3006:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "3006:3:84"
                    },
                    "nativeSrc": "3006:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3006:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "2998:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "2998:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3040:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "3040:9:84"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "3051:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "3051:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3033:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3033:6:84"
                    },
                    "nativeSrc": "3033:25:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3033:25:84"
                  },
                  "nativeSrc": "3033:25:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "3033:25:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
            "nativeSrc": "2887:177:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "2957:9:84",
                "nodeType": "YulTypedName",
                "src": "2957:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "2968:6:84",
                "nodeType": "YulTypedName",
                "src": "2968:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "2979:4:84",
                "nodeType": "YulTypedName",
                "src": "2979:4:84",
                "type": ""
              }
            ],
            "src": "2887:177:84"
          },
          {
            "body": {
              "nativeSrc": "3170:76:84",
              "nodeType": "YulBlock",
              "src": "3170:76:84",
              "statements": [
                {
                  "nativeSrc": "3180:26:84",
                  "nodeType": "YulAssignment",
                  "src": "3180:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3192:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "3192:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3203:2:84",
                        "nodeType": "YulLiteral",
                        "src": "3203:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3188:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "3188:3:84"
                    },
                    "nativeSrc": "3188:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3188:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "3180:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "3180:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3222:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "3222:9:84"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "3233:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "3233:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3215:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3215:6:84"
                    },
                    "nativeSrc": "3215:25:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3215:25:84"
                  },
                  "nativeSrc": "3215:25:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "3215:25:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
            "nativeSrc": "3069:177:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "3139:9:84",
                "nodeType": "YulTypedName",
                "src": "3139:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "3150:6:84",
                "nodeType": "YulTypedName",
                "src": "3150:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "3161:4:84",
                "nodeType": "YulTypedName",
                "src": "3161:4:84",
                "type": ""
              }
            ],
            "src": "3069:177:84"
          },
          {
            "body": {
              "nativeSrc": "3283:95:84",
              "nodeType": "YulBlock",
              "src": "3283:95:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "3300:1:84",
                        "nodeType": "YulLiteral",
                        "src": "3300:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "3307:3:84",
                            "nodeType": "YulLiteral",
                            "src": "3307:3:84",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3312:10:84",
                            "nodeType": "YulLiteral",
                            "src": "3312:10:84",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "3303:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "3303:3:84"
                        },
                        "nativeSrc": "3303:20:84",
                        "nodeType": "YulFunctionCall",
                        "src": "3303:20:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3293:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3293:6:84"
                    },
                    "nativeSrc": "3293:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3293:31:84"
                  },
                  "nativeSrc": "3293:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "3293:31:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "3340:1:84",
                        "nodeType": "YulLiteral",
                        "src": "3340:1:84",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3343:4:84",
                        "nodeType": "YulLiteral",
                        "src": "3343:4:84",
                        "type": "",
                        "value": "0x21"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3333:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3333:6:84"
                    },
                    "nativeSrc": "3333:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3333:15:84"
                  },
                  "nativeSrc": "3333:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "3333:15:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "3364:1:84",
                        "nodeType": "YulLiteral",
                        "src": "3364:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3367:4:84",
                        "nodeType": "YulLiteral",
                        "src": "3367:4:84",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "3357:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3357:6:84"
                    },
                    "nativeSrc": "3357:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3357:15:84"
                  },
                  "nativeSrc": "3357:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "3357:15:84"
                }
              ]
            },
            "name": "panic_error_0x21",
            "nativeSrc": "3251:127:84",
            "nodeType": "YulFunctionDefinition",
            "src": "3251:127:84"
          },
          {
            "body": {
              "nativeSrc": "3502:229:84",
              "nodeType": "YulBlock",
              "src": "3502:229:84",
              "statements": [
                {
                  "nativeSrc": "3512:26:84",
                  "nodeType": "YulAssignment",
                  "src": "3512:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3524:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "3524:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3535:2:84",
                        "nodeType": "YulLiteral",
                        "src": "3535:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3520:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "3520:3:84"
                    },
                    "nativeSrc": "3520:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3520:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "3512:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "3512:4:84"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "3580:111:84",
                    "nodeType": "YulBlock",
                    "src": "3580:111:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "3601:1:84",
                              "nodeType": "YulLiteral",
                              "src": "3601:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "3608:3:84",
                                  "nodeType": "YulLiteral",
                                  "src": "3608:3:84",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nativeSrc": "3613:10:84",
                                  "nodeType": "YulLiteral",
                                  "src": "3613:10:84",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nativeSrc": "3604:3:84",
                                "nodeType": "YulIdentifier",
                                "src": "3604:3:84"
                              },
                              "nativeSrc": "3604:20:84",
                              "nodeType": "YulFunctionCall",
                              "src": "3604:20:84"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "3594:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "3594:6:84"
                          },
                          "nativeSrc": "3594:31:84",
                          "nodeType": "YulFunctionCall",
                          "src": "3594:31:84"
                        },
                        "nativeSrc": "3594:31:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "3594:31:84"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "3645:1:84",
                              "nodeType": "YulLiteral",
                              "src": "3645:1:84",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3648:4:84",
                              "nodeType": "YulLiteral",
                              "src": "3648:4:84",
                              "type": "",
                              "value": "0x21"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "3638:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "3638:6:84"
                          },
                          "nativeSrc": "3638:15:84",
                          "nodeType": "YulFunctionCall",
                          "src": "3638:15:84"
                        },
                        "nativeSrc": "3638:15:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "3638:15:84"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "3673:1:84",
                              "nodeType": "YulLiteral",
                              "src": "3673:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3676:4:84",
                              "nodeType": "YulLiteral",
                              "src": "3676:4:84",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "3666:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "3666:6:84"
                          },
                          "nativeSrc": "3666:15:84",
                          "nodeType": "YulFunctionCall",
                          "src": "3666:15:84"
                        },
                        "nativeSrc": "3666:15:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "3666:15:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "3560:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "3560:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3568:1:84",
                            "nodeType": "YulLiteral",
                            "src": "3568:1:84",
                            "type": "",
                            "value": "6"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "3557:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "3557:2:84"
                        },
                        "nativeSrc": "3557:13:84",
                        "nodeType": "YulFunctionCall",
                        "src": "3557:13:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "3550:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3550:6:84"
                    },
                    "nativeSrc": "3550:21:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3550:21:84"
                  },
                  "nativeSrc": "3547:144:84",
                  "nodeType": "YulIf",
                  "src": "3547:144:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3707:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "3707:9:84"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "3718:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "3718:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3700:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3700:6:84"
                    },
                    "nativeSrc": "3700:25:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3700:25:84"
                  },
                  "nativeSrc": "3700:25:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "3700:25:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_enum$_ResponseStatus_$23496__to_t_uint8__fromStack_reversed",
            "nativeSrc": "3383:348:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "3471:9:84",
                "nodeType": "YulTypedName",
                "src": "3471:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "3482:6:84",
                "nodeType": "YulTypedName",
                "src": "3482:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "3493:4:84",
                "nodeType": "YulTypedName",
                "src": "3493:4:84",
                "type": ""
              }
            ],
            "src": "3383:348:84"
          },
          {
            "body": {
              "nativeSrc": "3837:102:84",
              "nodeType": "YulBlock",
              "src": "3837:102:84",
              "statements": [
                {
                  "nativeSrc": "3847:26:84",
                  "nodeType": "YulAssignment",
                  "src": "3847:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3859:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "3859:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3870:2:84",
                        "nodeType": "YulLiteral",
                        "src": "3870:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3855:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "3855:3:84"
                    },
                    "nativeSrc": "3855:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3855:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "3847:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "3847:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3889:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "3889:9:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "3904:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "3904:6:84"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "3920:3:84",
                                    "nodeType": "YulLiteral",
                                    "src": "3920:3:84",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "3925:1:84",
                                    "nodeType": "YulLiteral",
                                    "src": "3925:1:84",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "3916:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "3916:3:84"
                                },
                                "nativeSrc": "3916:11:84",
                                "nodeType": "YulFunctionCall",
                                "src": "3916:11:84"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "3929:1:84",
                                "nodeType": "YulLiteral",
                                "src": "3929:1:84",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "3912:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "3912:3:84"
                            },
                            "nativeSrc": "3912:19:84",
                            "nodeType": "YulFunctionCall",
                            "src": "3912:19:84"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "3900:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "3900:3:84"
                        },
                        "nativeSrc": "3900:32:84",
                        "nodeType": "YulFunctionCall",
                        "src": "3900:32:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3882:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "3882:6:84"
                    },
                    "nativeSrc": "3882:51:84",
                    "nodeType": "YulFunctionCall",
                    "src": "3882:51:84"
                  },
                  "nativeSrc": "3882:51:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "3882:51:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nativeSrc": "3736:203:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "3806:9:84",
                "nodeType": "YulTypedName",
                "src": "3806:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "3817:6:84",
                "nodeType": "YulTypedName",
                "src": "3817:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "3828:4:84",
                "nodeType": "YulTypedName",
                "src": "3828:4:84",
                "type": ""
              }
            ],
            "src": "3736:203:84"
          },
          {
            "body": {
              "nativeSrc": "4099:182:84",
              "nodeType": "YulBlock",
              "src": "4099:182:84",
              "statements": [
                {
                  "nativeSrc": "4109:26:84",
                  "nodeType": "YulAssignment",
                  "src": "4109:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4121:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "4121:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4132:2:84",
                        "nodeType": "YulLiteral",
                        "src": "4132:2:84",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "4117:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "4117:3:84"
                    },
                    "nativeSrc": "4117:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4117:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "4109:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "4109:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4151:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "4151:9:84"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nativeSrc": "4172:6:84",
                                "nodeType": "YulIdentifier",
                                "src": "4172:6:84"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "4166:5:84",
                              "nodeType": "YulIdentifier",
                              "src": "4166:5:84"
                            },
                            "nativeSrc": "4166:13:84",
                            "nodeType": "YulFunctionCall",
                            "src": "4166:13:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4181:4:84",
                            "nodeType": "YulLiteral",
                            "src": "4181:4:84",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "4162:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "4162:3:84"
                        },
                        "nativeSrc": "4162:24:84",
                        "nodeType": "YulFunctionCall",
                        "src": "4162:24:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4144:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "4144:6:84"
                    },
                    "nativeSrc": "4144:43:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4144:43:84"
                  },
                  "nativeSrc": "4144:43:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "4144:43:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "4207:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "4207:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4218:4:84",
                            "nodeType": "YulLiteral",
                            "src": "4218:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4203:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "4203:3:84"
                        },
                        "nativeSrc": "4203:20:84",
                        "nodeType": "YulFunctionCall",
                        "src": "4203:20:84"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value0",
                                    "nativeSrc": "4239:6:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "4239:6:84"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "4247:4:84",
                                    "nodeType": "YulLiteral",
                                    "src": "4247:4:84",
                                    "type": "",
                                    "value": "0x20"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "4235:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "4235:3:84"
                                },
                                "nativeSrc": "4235:17:84",
                                "nodeType": "YulFunctionCall",
                                "src": "4235:17:84"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "4229:5:84",
                              "nodeType": "YulIdentifier",
                              "src": "4229:5:84"
                            },
                            "nativeSrc": "4229:24:84",
                            "nodeType": "YulFunctionCall",
                            "src": "4229:24:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4255:18:84",
                            "nodeType": "YulLiteral",
                            "src": "4255:18:84",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "4225:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "4225:3:84"
                        },
                        "nativeSrc": "4225:49:84",
                        "nodeType": "YulFunctionCall",
                        "src": "4225:49:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4196:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "4196:6:84"
                    },
                    "nativeSrc": "4196:79:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4196:79:84"
                  },
                  "nativeSrc": "4196:79:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "4196:79:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_struct$_RadonSLA_$23503_memory_ptr__to_t_struct$_RadonSLA_$23503_memory_ptr__fromStack_reversed",
            "nativeSrc": "3944:337:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "4068:9:84",
                "nodeType": "YulTypedName",
                "src": "4068:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "4079:6:84",
                "nodeType": "YulTypedName",
                "src": "4079:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "4090:4:84",
                "nodeType": "YulTypedName",
                "src": "4090:4:84",
                "type": ""
              }
            ],
            "src": "3944:337:84"
          },
          {
            "body": {
              "nativeSrc": "4381:92:84",
              "nodeType": "YulBlock",
              "src": "4381:92:84",
              "statements": [
                {
                  "nativeSrc": "4391:26:84",
                  "nodeType": "YulAssignment",
                  "src": "4391:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4403:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "4403:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4414:2:84",
                        "nodeType": "YulLiteral",
                        "src": "4414:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "4399:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "4399:3:84"
                    },
                    "nativeSrc": "4399:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4399:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "4391:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "4391:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4433:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "4433:9:84"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nativeSrc": "4458:6:84",
                                "nodeType": "YulIdentifier",
                                "src": "4458:6:84"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nativeSrc": "4451:6:84",
                              "nodeType": "YulIdentifier",
                              "src": "4451:6:84"
                            },
                            "nativeSrc": "4451:14:84",
                            "nodeType": "YulFunctionCall",
                            "src": "4451:14:84"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nativeSrc": "4444:6:84",
                          "nodeType": "YulIdentifier",
                          "src": "4444:6:84"
                        },
                        "nativeSrc": "4444:22:84",
                        "nodeType": "YulFunctionCall",
                        "src": "4444:22:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4426:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "4426:6:84"
                    },
                    "nativeSrc": "4426:41:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4426:41:84"
                  },
                  "nativeSrc": "4426:41:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "4426:41:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nativeSrc": "4286:187:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "4350:9:84",
                "nodeType": "YulTypedName",
                "src": "4350:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "4361:6:84",
                "nodeType": "YulTypedName",
                "src": "4361:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "4372:4:84",
                "nodeType": "YulTypedName",
                "src": "4372:4:84",
                "type": ""
              }
            ],
            "src": "4286:187:84"
          },
          {
            "body": {
              "nativeSrc": "4635:162:84",
              "nodeType": "YulBlock",
              "src": "4635:162:84",
              "statements": [
                {
                  "nativeSrc": "4645:26:84",
                  "nodeType": "YulAssignment",
                  "src": "4645:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4657:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "4657:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4668:2:84",
                        "nodeType": "YulLiteral",
                        "src": "4668:2:84",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "4653:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "4653:3:84"
                    },
                    "nativeSrc": "4653:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4653:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "4645:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "4645:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4687:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "4687:9:84"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "4698:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "4698:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4680:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "4680:6:84"
                    },
                    "nativeSrc": "4680:25:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4680:25:84"
                  },
                  "nativeSrc": "4680:25:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "4680:25:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "4725:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "4725:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4736:2:84",
                            "nodeType": "YulLiteral",
                            "src": "4736:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4721:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "4721:3:84"
                        },
                        "nativeSrc": "4721:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "4721:18:84"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "4741:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "4741:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4714:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "4714:6:84"
                    },
                    "nativeSrc": "4714:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4714:34:84"
                  },
                  "nativeSrc": "4714:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "4714:34:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "4768:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "4768:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4779:2:84",
                            "nodeType": "YulLiteral",
                            "src": "4779:2:84",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4764:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "4764:3:84"
                        },
                        "nativeSrc": "4764:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "4764:18:84"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "4784:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "4784:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4757:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "4757:6:84"
                    },
                    "nativeSrc": "4757:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4757:34:84"
                  },
                  "nativeSrc": "4757:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "4757:34:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed",
            "nativeSrc": "4478:319:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "4588:9:84",
                "nodeType": "YulTypedName",
                "src": "4588:9:84",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "4599:6:84",
                "nodeType": "YulTypedName",
                "src": "4599:6:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "4607:6:84",
                "nodeType": "YulTypedName",
                "src": "4607:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "4615:6:84",
                "nodeType": "YulTypedName",
                "src": "4615:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "4626:4:84",
                "nodeType": "YulTypedName",
                "src": "4626:4:84",
                "type": ""
              }
            ],
            "src": "4478:319:84"
          },
          {
            "body": {
              "nativeSrc": "4901:103:84",
              "nodeType": "YulBlock",
              "src": "4901:103:84",
              "statements": [
                {
                  "nativeSrc": "4911:26:84",
                  "nodeType": "YulAssignment",
                  "src": "4911:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4923:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "4923:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4934:2:84",
                        "nodeType": "YulLiteral",
                        "src": "4934:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "4919:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "4919:3:84"
                    },
                    "nativeSrc": "4919:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4919:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "4911:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "4911:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4953:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "4953:9:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "4968:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "4968:6:84"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "4980:3:84",
                                "nodeType": "YulLiteral",
                                "src": "4980:3:84",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "4985:10:84",
                                "nodeType": "YulLiteral",
                                "src": "4985:10:84",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "4976:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "4976:3:84"
                            },
                            "nativeSrc": "4976:20:84",
                            "nodeType": "YulFunctionCall",
                            "src": "4976:20:84"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "4964:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "4964:3:84"
                        },
                        "nativeSrc": "4964:33:84",
                        "nodeType": "YulFunctionCall",
                        "src": "4964:33:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4946:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "4946:6:84"
                    },
                    "nativeSrc": "4946:52:84",
                    "nodeType": "YulFunctionCall",
                    "src": "4946:52:84"
                  },
                  "nativeSrc": "4946:52:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "4946:52:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
            "nativeSrc": "4802:202:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "4870:9:84",
                "nodeType": "YulTypedName",
                "src": "4870:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "4881:6:84",
                "nodeType": "YulTypedName",
                "src": "4881:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "4892:4:84",
                "nodeType": "YulTypedName",
                "src": "4892:4:84",
                "type": ""
              }
            ],
            "src": "4802:202:84"
          },
          {
            "body": {
              "nativeSrc": "5078:203:84",
              "nodeType": "YulBlock",
              "src": "5078:203:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "5124:16:84",
                    "nodeType": "YulBlock",
                    "src": "5124:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "5133:1:84",
                              "nodeType": "YulLiteral",
                              "src": "5133:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5136:1:84",
                              "nodeType": "YulLiteral",
                              "src": "5136:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "5126:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "5126:6:84"
                          },
                          "nativeSrc": "5126:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "5126:12:84"
                        },
                        "nativeSrc": "5126:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "5126:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "5099:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "5099:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "5108:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "5108:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "5095:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "5095:3:84"
                        },
                        "nativeSrc": "5095:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "5095:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5120:2:84",
                        "nodeType": "YulLiteral",
                        "src": "5120:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "5091:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "5091:3:84"
                    },
                    "nativeSrc": "5091:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5091:32:84"
                  },
                  "nativeSrc": "5088:52:84",
                  "nodeType": "YulIf",
                  "src": "5088:52:84"
                },
                {
                  "nativeSrc": "5149:36:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5149:36:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5175:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "5175:9:84"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "5162:12:84",
                      "nodeType": "YulIdentifier",
                      "src": "5162:12:84"
                    },
                    "nativeSrc": "5162:23:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5162:23:84"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "5153:5:84",
                      "nodeType": "YulTypedName",
                      "src": "5153:5:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "5235:16:84",
                    "nodeType": "YulBlock",
                    "src": "5235:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "5244:1:84",
                              "nodeType": "YulLiteral",
                              "src": "5244:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5247:1:84",
                              "nodeType": "YulLiteral",
                              "src": "5247:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "5237:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "5237:6:84"
                          },
                          "nativeSrc": "5237:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "5237:12:84"
                        },
                        "nativeSrc": "5237:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "5237:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "5207:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "5207:5:84"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "5218:5:84",
                                "nodeType": "YulIdentifier",
                                "src": "5218:5:84"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "5225:6:84",
                                "nodeType": "YulLiteral",
                                "src": "5225:6:84",
                                "type": "",
                                "value": "0xffff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "5214:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "5214:3:84"
                            },
                            "nativeSrc": "5214:18:84",
                            "nodeType": "YulFunctionCall",
                            "src": "5214:18:84"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "5204:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "5204:2:84"
                        },
                        "nativeSrc": "5204:29:84",
                        "nodeType": "YulFunctionCall",
                        "src": "5204:29:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "5197:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "5197:6:84"
                    },
                    "nativeSrc": "5197:37:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5197:37:84"
                  },
                  "nativeSrc": "5194:57:84",
                  "nodeType": "YulIf",
                  "src": "5194:57:84"
                },
                {
                  "nativeSrc": "5260:15:84",
                  "nodeType": "YulAssignment",
                  "src": "5260:15:84",
                  "value": {
                    "name": "value",
                    "nativeSrc": "5270:5:84",
                    "nodeType": "YulIdentifier",
                    "src": "5270:5:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "5260:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "5260:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint16",
            "nativeSrc": "5009:272:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "5044:9:84",
                "nodeType": "YulTypedName",
                "src": "5044:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "5055:7:84",
                "nodeType": "YulTypedName",
                "src": "5055:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "5067:6:84",
                "nodeType": "YulTypedName",
                "src": "5067:6:84",
                "type": ""
              }
            ],
            "src": "5009:272:84"
          },
          {
            "body": {
              "nativeSrc": "5407:275:84",
              "nodeType": "YulBlock",
              "src": "5407:275:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5424:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "5424:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5435:2:84",
                        "nodeType": "YulLiteral",
                        "src": "5435:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5417:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "5417:6:84"
                    },
                    "nativeSrc": "5417:21:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5417:21:84"
                  },
                  "nativeSrc": "5417:21:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "5417:21:84"
                },
                {
                  "nativeSrc": "5447:27:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5447:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "5467:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "5467:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "5461:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "5461:5:84"
                    },
                    "nativeSrc": "5461:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5461:13:84"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "5451:6:84",
                      "nodeType": "YulTypedName",
                      "src": "5451:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "5494:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "5494:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5505:2:84",
                            "nodeType": "YulLiteral",
                            "src": "5505:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5490:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "5490:3:84"
                        },
                        "nativeSrc": "5490:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "5490:18:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "5510:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "5510:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5483:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "5483:6:84"
                    },
                    "nativeSrc": "5483:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5483:34:84"
                  },
                  "nativeSrc": "5483:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "5483:34:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "5565:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "5565:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5573:2:84",
                            "nodeType": "YulLiteral",
                            "src": "5573:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5561:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "5561:3:84"
                        },
                        "nativeSrc": "5561:15:84",
                        "nodeType": "YulFunctionCall",
                        "src": "5561:15:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "5582:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "5582:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5593:2:84",
                            "nodeType": "YulLiteral",
                            "src": "5593:2:84",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5578:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "5578:3:84"
                        },
                        "nativeSrc": "5578:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "5578:18:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "5598:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "5598:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nativeSrc": "5526:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "5526:34:84"
                    },
                    "nativeSrc": "5526:79:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5526:79:84"
                  },
                  "nativeSrc": "5526:79:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "5526:79:84"
                },
                {
                  "nativeSrc": "5614:62:84",
                  "nodeType": "YulAssignment",
                  "src": "5614:62:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "5630:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "5630:9:84"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nativeSrc": "5649:6:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "5649:6:84"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "5657:2:84",
                                    "nodeType": "YulLiteral",
                                    "src": "5657:2:84",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "5645:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "5645:3:84"
                                },
                                "nativeSrc": "5645:15:84",
                                "nodeType": "YulFunctionCall",
                                "src": "5645:15:84"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "5666:2:84",
                                    "nodeType": "YulLiteral",
                                    "src": "5666:2:84",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "5662:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "5662:3:84"
                                },
                                "nativeSrc": "5662:7:84",
                                "nodeType": "YulFunctionCall",
                                "src": "5662:7:84"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "5641:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "5641:3:84"
                            },
                            "nativeSrc": "5641:29:84",
                            "nodeType": "YulFunctionCall",
                            "src": "5641:29:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5626:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "5626:3:84"
                        },
                        "nativeSrc": "5626:45:84",
                        "nodeType": "YulFunctionCall",
                        "src": "5626:45:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5673:2:84",
                        "nodeType": "YulLiteral",
                        "src": "5673:2:84",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5622:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "5622:3:84"
                    },
                    "nativeSrc": "5622:54:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5622:54:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "5614:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "5614:4:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "5286:396:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "5376:9:84",
                "nodeType": "YulTypedName",
                "src": "5376:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "5387:6:84",
                "nodeType": "YulTypedName",
                "src": "5387:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "5398:4:84",
                "nodeType": "YulTypedName",
                "src": "5398:4:84",
                "type": ""
              }
            ],
            "src": "5286:396:84"
          },
          {
            "body": {
              "nativeSrc": "5786:96:84",
              "nodeType": "YulBlock",
              "src": "5786:96:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "5832:16:84",
                    "nodeType": "YulBlock",
                    "src": "5832:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "5841:1:84",
                              "nodeType": "YulLiteral",
                              "src": "5841:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5844:1:84",
                              "nodeType": "YulLiteral",
                              "src": "5844:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "5834:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "5834:6:84"
                          },
                          "nativeSrc": "5834:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "5834:12:84"
                        },
                        "nativeSrc": "5834:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "5834:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "5807:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "5807:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "5816:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "5816:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "5803:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "5803:3:84"
                        },
                        "nativeSrc": "5803:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "5803:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5828:2:84",
                        "nodeType": "YulLiteral",
                        "src": "5828:2:84",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "5799:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "5799:3:84"
                    },
                    "nativeSrc": "5799:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "5799:32:84"
                  },
                  "nativeSrc": "5796:52:84",
                  "nodeType": "YulIf",
                  "src": "5796:52:84"
                },
                {
                  "nativeSrc": "5857:19:84",
                  "nodeType": "YulAssignment",
                  "src": "5857:19:84",
                  "value": {
                    "name": "headStart",
                    "nativeSrc": "5867:9:84",
                    "nodeType": "YulIdentifier",
                    "src": "5867:9:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "5857:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "5857:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_struct$_RadonSLA_$23503_calldata_ptr",
            "nativeSrc": "5687:195:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "5752:9:84",
                "nodeType": "YulTypedName",
                "src": "5752:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "5763:7:84",
                "nodeType": "YulTypedName",
                "src": "5763:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "5775:6:84",
                "nodeType": "YulTypedName",
                "src": "5775:6:84",
                "type": ""
              }
            ],
            "src": "5687:195:84"
          },
          {
            "body": {
              "nativeSrc": "5986:89:84",
              "nodeType": "YulBlock",
              "src": "5986:89:84",
              "statements": [
                {
                  "nativeSrc": "5996:26:84",
                  "nodeType": "YulAssignment",
                  "src": "5996:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6008:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "6008:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "6019:2:84",
                        "nodeType": "YulLiteral",
                        "src": "6019:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "6004:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "6004:3:84"
                    },
                    "nativeSrc": "6004:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "6004:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "5996:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "5996:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6038:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "6038:9:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "6053:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "6053:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6061:6:84",
                            "nodeType": "YulLiteral",
                            "src": "6061:6:84",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "6049:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "6049:3:84"
                        },
                        "nativeSrc": "6049:19:84",
                        "nodeType": "YulFunctionCall",
                        "src": "6049:19:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6031:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "6031:6:84"
                    },
                    "nativeSrc": "6031:38:84",
                    "nodeType": "YulFunctionCall",
                    "src": "6031:38:84"
                  },
                  "nativeSrc": "6031:38:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "6031:38:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed",
            "nativeSrc": "5887:188:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "5955:9:84",
                "nodeType": "YulTypedName",
                "src": "5955:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "5966:6:84",
                "nodeType": "YulTypedName",
                "src": "5966:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "5977:4:84",
                "nodeType": "YulTypedName",
                "src": "5977:4:84",
                "type": ""
              }
            ],
            "src": "5887:188:84"
          },
          {
            "body": {
              "nativeSrc": "6125:86:84",
              "nodeType": "YulBlock",
              "src": "6125:86:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "6189:16:84",
                    "nodeType": "YulBlock",
                    "src": "6189:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "6198:1:84",
                              "nodeType": "YulLiteral",
                              "src": "6198:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "6201:1:84",
                              "nodeType": "YulLiteral",
                              "src": "6201:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "6191:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "6191:6:84"
                          },
                          "nativeSrc": "6191:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "6191:12:84"
                        },
                        "nativeSrc": "6191:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "6191:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "6148:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "6148:5:84"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "6159:5:84",
                                "nodeType": "YulIdentifier",
                                "src": "6159:5:84"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nativeSrc": "6174:3:84",
                                        "nodeType": "YulLiteral",
                                        "src": "6174:3:84",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "6179:1:84",
                                        "nodeType": "YulLiteral",
                                        "src": "6179:1:84",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nativeSrc": "6170:3:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "6170:3:84"
                                    },
                                    "nativeSrc": "6170:11:84",
                                    "nodeType": "YulFunctionCall",
                                    "src": "6170:11:84"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "6183:1:84",
                                    "nodeType": "YulLiteral",
                                    "src": "6183:1:84",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nativeSrc": "6166:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "6166:3:84"
                                },
                                "nativeSrc": "6166:19:84",
                                "nodeType": "YulFunctionCall",
                                "src": "6166:19:84"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "6155:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "6155:3:84"
                            },
                            "nativeSrc": "6155:31:84",
                            "nodeType": "YulFunctionCall",
                            "src": "6155:31:84"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "6145:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "6145:2:84"
                        },
                        "nativeSrc": "6145:42:84",
                        "nodeType": "YulFunctionCall",
                        "src": "6145:42:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "6138:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "6138:6:84"
                    },
                    "nativeSrc": "6138:50:84",
                    "nodeType": "YulFunctionCall",
                    "src": "6138:50:84"
                  },
                  "nativeSrc": "6135:70:84",
                  "nodeType": "YulIf",
                  "src": "6135:70:84"
                }
              ]
            },
            "name": "validator_revert_address",
            "nativeSrc": "6080:131:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "6114:5:84",
                "nodeType": "YulTypedName",
                "src": "6114:5:84",
                "type": ""
              }
            ],
            "src": "6080:131:84"
          },
          {
            "body": {
              "nativeSrc": "6286:177:84",
              "nodeType": "YulBlock",
              "src": "6286:177:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "6332:16:84",
                    "nodeType": "YulBlock",
                    "src": "6332:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "6341:1:84",
                              "nodeType": "YulLiteral",
                              "src": "6341:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "6344:1:84",
                              "nodeType": "YulLiteral",
                              "src": "6344:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "6334:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "6334:6:84"
                          },
                          "nativeSrc": "6334:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "6334:12:84"
                        },
                        "nativeSrc": "6334:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "6334:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "6307:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "6307:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "6316:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "6316:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "6303:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "6303:3:84"
                        },
                        "nativeSrc": "6303:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "6303:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "6328:2:84",
                        "nodeType": "YulLiteral",
                        "src": "6328:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "6299:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "6299:3:84"
                    },
                    "nativeSrc": "6299:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "6299:32:84"
                  },
                  "nativeSrc": "6296:52:84",
                  "nodeType": "YulIf",
                  "src": "6296:52:84"
                },
                {
                  "nativeSrc": "6357:36:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "6357:36:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6383:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "6383:9:84"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "6370:12:84",
                      "nodeType": "YulIdentifier",
                      "src": "6370:12:84"
                    },
                    "nativeSrc": "6370:23:84",
                    "nodeType": "YulFunctionCall",
                    "src": "6370:23:84"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "6361:5:84",
                      "nodeType": "YulTypedName",
                      "src": "6361:5:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "6427:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "6427:5:84"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "6402:24:84",
                      "nodeType": "YulIdentifier",
                      "src": "6402:24:84"
                    },
                    "nativeSrc": "6402:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "6402:31:84"
                  },
                  "nativeSrc": "6402:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "6402:31:84"
                },
                {
                  "nativeSrc": "6442:15:84",
                  "nodeType": "YulAssignment",
                  "src": "6442:15:84",
                  "value": {
                    "name": "value",
                    "nativeSrc": "6452:5:84",
                    "nodeType": "YulIdentifier",
                    "src": "6452:5:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "6442:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "6442:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nativeSrc": "6216:247:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "6252:9:84",
                "nodeType": "YulTypedName",
                "src": "6252:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "6263:7:84",
                "nodeType": "YulTypedName",
                "src": "6263:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "6275:6:84",
                "nodeType": "YulTypedName",
                "src": "6275:6:84",
                "type": ""
              }
            ],
            "src": "6216:247:84"
          },
          {
            "body": {
              "nativeSrc": "6756:353:84",
              "nodeType": "YulBlock",
              "src": "6756:353:84",
              "statements": [
                {
                  "nativeSrc": "6766:27:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "6766:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "6786:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "6786:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "6780:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "6780:5:84"
                    },
                    "nativeSrc": "6780:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "6780:13:84"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "6770:6:84",
                      "nodeType": "YulTypedName",
                      "src": "6770:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "6841:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "6841:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6849:4:84",
                            "nodeType": "YulLiteral",
                            "src": "6849:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "6837:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "6837:3:84"
                        },
                        "nativeSrc": "6837:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "6837:17:84"
                      },
                      {
                        "name": "pos",
                        "nativeSrc": "6856:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "6856:3:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "6861:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "6861:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nativeSrc": "6802:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "6802:34:84"
                    },
                    "nativeSrc": "6802:66:84",
                    "nodeType": "YulFunctionCall",
                    "src": "6802:66:84"
                  },
                  "nativeSrc": "6802:66:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "6802:66:84"
                },
                {
                  "nativeSrc": "6877:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "6877:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "6894:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "6894:3:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "6899:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "6899:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "6890:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "6890:3:84"
                    },
                    "nativeSrc": "6890:16:84",
                    "nodeType": "YulFunctionCall",
                    "src": "6890:16:84"
                  },
                  "variables": [
                    {
                      "name": "end_1",
                      "nativeSrc": "6881:5:84",
                      "nodeType": "YulTypedName",
                      "src": "6881:5:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "end_1",
                        "nativeSrc": "6922:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "6922:5:84"
                      },
                      {
                        "hexValue": "3a20",
                        "kind": "string",
                        "nativeSrc": "6929:4:84",
                        "nodeType": "YulLiteral",
                        "src": "6929:4:84",
                        "type": "",
                        "value": ": "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6915:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "6915:6:84"
                    },
                    "nativeSrc": "6915:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "6915:19:84"
                  },
                  "nativeSrc": "6915:19:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "6915:19:84"
                },
                {
                  "nativeSrc": "6943:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "6943:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "6965:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "6965:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "6959:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "6959:5:84"
                    },
                    "nativeSrc": "6959:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "6959:13:84"
                  },
                  "variables": [
                    {
                      "name": "length_1",
                      "nativeSrc": "6947:8:84",
                      "nodeType": "YulTypedName",
                      "src": "6947:8:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "7020:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "7020:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7028:4:84",
                            "nodeType": "YulLiteral",
                            "src": "7028:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7016:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7016:3:84"
                        },
                        "nativeSrc": "7016:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7016:17:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "end_1",
                            "nativeSrc": "7039:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "7039:5:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7046:1:84",
                            "nodeType": "YulLiteral",
                            "src": "7046:1:84",
                            "type": "",
                            "value": "2"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7035:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7035:3:84"
                        },
                        "nativeSrc": "7035:13:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7035:13:84"
                      },
                      {
                        "name": "length_1",
                        "nativeSrc": "7050:8:84",
                        "nodeType": "YulIdentifier",
                        "src": "7050:8:84"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nativeSrc": "6981:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "6981:34:84"
                    },
                    "nativeSrc": "6981:78:84",
                    "nodeType": "YulFunctionCall",
                    "src": "6981:78:84"
                  },
                  "nativeSrc": "6981:78:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "6981:78:84"
                },
                {
                  "nativeSrc": "7068:35:84",
                  "nodeType": "YulAssignment",
                  "src": "7068:35:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "end_1",
                            "nativeSrc": "7083:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "7083:5:84"
                          },
                          {
                            "name": "length_1",
                            "nativeSrc": "7090:8:84",
                            "nodeType": "YulIdentifier",
                            "src": "7090:8:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7079:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7079:3:84"
                        },
                        "nativeSrc": "7079:20:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7079:20:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7101:1:84",
                        "nodeType": "YulLiteral",
                        "src": "7101:1:84",
                        "type": "",
                        "value": "2"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7075:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "7075:3:84"
                    },
                    "nativeSrc": "7075:28:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7075:28:84"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "7068:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "7068:3:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "6468:641:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "6724:3:84",
                "nodeType": "YulTypedName",
                "src": "6724:3:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "6729:6:84",
                "nodeType": "YulTypedName",
                "src": "6729:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "6737:6:84",
                "nodeType": "YulTypedName",
                "src": "6737:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "6748:3:84",
                "nodeType": "YulTypedName",
                "src": "6748:3:84",
                "type": ""
              }
            ],
            "src": "6468:641:84"
          },
          {
            "body": {
              "nativeSrc": "7146:95:84",
              "nodeType": "YulBlock",
              "src": "7146:95:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "7163:1:84",
                        "nodeType": "YulLiteral",
                        "src": "7163:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "7170:3:84",
                            "nodeType": "YulLiteral",
                            "src": "7170:3:84",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7175:10:84",
                            "nodeType": "YulLiteral",
                            "src": "7175:10:84",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "7166:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7166:3:84"
                        },
                        "nativeSrc": "7166:20:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7166:20:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7156:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7156:6:84"
                    },
                    "nativeSrc": "7156:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7156:31:84"
                  },
                  "nativeSrc": "7156:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7156:31:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "7203:1:84",
                        "nodeType": "YulLiteral",
                        "src": "7203:1:84",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7206:4:84",
                        "nodeType": "YulLiteral",
                        "src": "7206:4:84",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7196:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7196:6:84"
                    },
                    "nativeSrc": "7196:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7196:15:84"
                  },
                  "nativeSrc": "7196:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7196:15:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "7227:1:84",
                        "nodeType": "YulLiteral",
                        "src": "7227:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7230:4:84",
                        "nodeType": "YulLiteral",
                        "src": "7230:4:84",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "7220:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7220:6:84"
                    },
                    "nativeSrc": "7220:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7220:15:84"
                  },
                  "nativeSrc": "7220:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7220:15:84"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nativeSrc": "7114:127:84",
            "nodeType": "YulFunctionDefinition",
            "src": "7114:127:84"
          },
          {
            "body": {
              "nativeSrc": "7278:95:84",
              "nodeType": "YulBlock",
              "src": "7278:95:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "7295:1:84",
                        "nodeType": "YulLiteral",
                        "src": "7295:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "7302:3:84",
                            "nodeType": "YulLiteral",
                            "src": "7302:3:84",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7307:10:84",
                            "nodeType": "YulLiteral",
                            "src": "7307:10:84",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "7298:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7298:3:84"
                        },
                        "nativeSrc": "7298:20:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7298:20:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7288:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7288:6:84"
                    },
                    "nativeSrc": "7288:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7288:31:84"
                  },
                  "nativeSrc": "7288:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7288:31:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "7335:1:84",
                        "nodeType": "YulLiteral",
                        "src": "7335:1:84",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7338:4:84",
                        "nodeType": "YulLiteral",
                        "src": "7338:4:84",
                        "type": "",
                        "value": "0x12"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7328:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7328:6:84"
                    },
                    "nativeSrc": "7328:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7328:15:84"
                  },
                  "nativeSrc": "7328:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7328:15:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "7359:1:84",
                        "nodeType": "YulLiteral",
                        "src": "7359:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7362:4:84",
                        "nodeType": "YulLiteral",
                        "src": "7362:4:84",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "7352:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7352:6:84"
                    },
                    "nativeSrc": "7352:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7352:15:84"
                  },
                  "nativeSrc": "7352:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7352:15:84"
                }
              ]
            },
            "name": "panic_error_0x12",
            "nativeSrc": "7246:127:84",
            "nodeType": "YulFunctionDefinition",
            "src": "7246:127:84"
          },
          {
            "body": {
              "nativeSrc": "7410:95:84",
              "nodeType": "YulBlock",
              "src": "7410:95:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "7427:1:84",
                        "nodeType": "YulLiteral",
                        "src": "7427:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "7434:3:84",
                            "nodeType": "YulLiteral",
                            "src": "7434:3:84",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7439:10:84",
                            "nodeType": "YulLiteral",
                            "src": "7439:10:84",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "7430:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7430:3:84"
                        },
                        "nativeSrc": "7430:20:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7430:20:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7420:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7420:6:84"
                    },
                    "nativeSrc": "7420:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7420:31:84"
                  },
                  "nativeSrc": "7420:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7420:31:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "7467:1:84",
                        "nodeType": "YulLiteral",
                        "src": "7467:1:84",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7470:4:84",
                        "nodeType": "YulLiteral",
                        "src": "7470:4:84",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7460:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7460:6:84"
                    },
                    "nativeSrc": "7460:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7460:15:84"
                  },
                  "nativeSrc": "7460:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7460:15:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "7491:1:84",
                        "nodeType": "YulLiteral",
                        "src": "7491:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7494:4:84",
                        "nodeType": "YulLiteral",
                        "src": "7494:4:84",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "7484:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7484:6:84"
                    },
                    "nativeSrc": "7484:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7484:15:84"
                  },
                  "nativeSrc": "7484:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "7484:15:84"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nativeSrc": "7378:127:84",
            "nodeType": "YulFunctionDefinition",
            "src": "7378:127:84"
          },
          {
            "body": {
              "nativeSrc": "7554:121:84",
              "nodeType": "YulBlock",
              "src": "7554:121:84",
              "statements": [
                {
                  "nativeSrc": "7564:23:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7564:23:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "y",
                        "nativeSrc": "7579:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "7579:1:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7582:4:84",
                        "nodeType": "YulLiteral",
                        "src": "7582:4:84",
                        "type": "",
                        "value": "0xff"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nativeSrc": "7575:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "7575:3:84"
                    },
                    "nativeSrc": "7575:12:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7575:12:84"
                  },
                  "variables": [
                    {
                      "name": "y_1",
                      "nativeSrc": "7568:3:84",
                      "nodeType": "YulTypedName",
                      "src": "7568:3:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "7611:22:84",
                    "nodeType": "YulBlock",
                    "src": "7611:22:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x12",
                            "nativeSrc": "7613:16:84",
                            "nodeType": "YulIdentifier",
                            "src": "7613:16:84"
                          },
                          "nativeSrc": "7613:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "7613:18:84"
                        },
                        "nativeSrc": "7613:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "7613:18:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "y_1",
                        "nativeSrc": "7606:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "7606:3:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "7599:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7599:6:84"
                    },
                    "nativeSrc": "7599:11:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7599:11:84"
                  },
                  "nativeSrc": "7596:37:84",
                  "nodeType": "YulIf",
                  "src": "7596:37:84"
                },
                {
                  "nativeSrc": "7642:27:84",
                  "nodeType": "YulAssignment",
                  "src": "7642:27:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "x",
                            "nativeSrc": "7655:1:84",
                            "nodeType": "YulIdentifier",
                            "src": "7655:1:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7658:4:84",
                            "nodeType": "YulLiteral",
                            "src": "7658:4:84",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "7651:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7651:3:84"
                        },
                        "nativeSrc": "7651:12:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7651:12:84"
                      },
                      {
                        "name": "y_1",
                        "nativeSrc": "7665:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "7665:3:84"
                      }
                    ],
                    "functionName": {
                      "name": "div",
                      "nativeSrc": "7647:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "7647:3:84"
                    },
                    "nativeSrc": "7647:22:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7647:22:84"
                  },
                  "variableNames": [
                    {
                      "name": "r",
                      "nativeSrc": "7642:1:84",
                      "nodeType": "YulIdentifier",
                      "src": "7642:1:84"
                    }
                  ]
                }
              ]
            },
            "name": "checked_div_t_uint8",
            "nativeSrc": "7510:165:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "7539:1:84",
                "nodeType": "YulTypedName",
                "src": "7539:1:84",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "7542:1:84",
                "nodeType": "YulTypedName",
                "src": "7542:1:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "r",
                "nativeSrc": "7548:1:84",
                "nodeType": "YulTypedName",
                "src": "7548:1:84",
                "type": ""
              }
            ],
            "src": "7510:165:84"
          },
          {
            "body": {
              "nativeSrc": "7726:102:84",
              "nodeType": "YulBlock",
              "src": "7726:102:84",
              "statements": [
                {
                  "nativeSrc": "7736:38:84",
                  "nodeType": "YulAssignment",
                  "src": "7736:38:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "x",
                            "nativeSrc": "7751:1:84",
                            "nodeType": "YulIdentifier",
                            "src": "7751:1:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7754:4:84",
                            "nodeType": "YulLiteral",
                            "src": "7754:4:84",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "7747:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7747:3:84"
                        },
                        "nativeSrc": "7747:12:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7747:12:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "y",
                            "nativeSrc": "7765:1:84",
                            "nodeType": "YulIdentifier",
                            "src": "7765:1:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7768:4:84",
                            "nodeType": "YulLiteral",
                            "src": "7768:4:84",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "7761:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7761:3:84"
                        },
                        "nativeSrc": "7761:12:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7761:12:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7743:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "7743:3:84"
                    },
                    "nativeSrc": "7743:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7743:31:84"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nativeSrc": "7736:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "7736:3:84"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "7800:22:84",
                    "nodeType": "YulBlock",
                    "src": "7800:22:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "7802:16:84",
                            "nodeType": "YulIdentifier",
                            "src": "7802:16:84"
                          },
                          "nativeSrc": "7802:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "7802:18:84"
                        },
                        "nativeSrc": "7802:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "7802:18:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "sum",
                        "nativeSrc": "7789:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "7789:3:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7794:4:84",
                        "nodeType": "YulLiteral",
                        "src": "7794:4:84",
                        "type": "",
                        "value": "0xff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "7786:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "7786:2:84"
                    },
                    "nativeSrc": "7786:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7786:13:84"
                  },
                  "nativeSrc": "7783:39:84",
                  "nodeType": "YulIf",
                  "src": "7783:39:84"
                }
              ]
            },
            "name": "checked_add_t_uint8",
            "nativeSrc": "7680:148:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "7709:1:84",
                "nodeType": "YulTypedName",
                "src": "7709:1:84",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "7712:1:84",
                "nodeType": "YulTypedName",
                "src": "7712:1:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nativeSrc": "7718:3:84",
                "nodeType": "YulTypedName",
                "src": "7718:3:84",
                "type": ""
              }
            ],
            "src": "7680:148:84"
          },
          {
            "body": {
              "nativeSrc": "7869:121:84",
              "nodeType": "YulBlock",
              "src": "7869:121:84",
              "statements": [
                {
                  "nativeSrc": "7879:23:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7879:23:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "y",
                        "nativeSrc": "7894:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "7894:1:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7897:4:84",
                        "nodeType": "YulLiteral",
                        "src": "7897:4:84",
                        "type": "",
                        "value": "0xff"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nativeSrc": "7890:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "7890:3:84"
                    },
                    "nativeSrc": "7890:12:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7890:12:84"
                  },
                  "variables": [
                    {
                      "name": "y_1",
                      "nativeSrc": "7883:3:84",
                      "nodeType": "YulTypedName",
                      "src": "7883:3:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "7926:22:84",
                    "nodeType": "YulBlock",
                    "src": "7926:22:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x12",
                            "nativeSrc": "7928:16:84",
                            "nodeType": "YulIdentifier",
                            "src": "7928:16:84"
                          },
                          "nativeSrc": "7928:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "7928:18:84"
                        },
                        "nativeSrc": "7928:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "7928:18:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "y_1",
                        "nativeSrc": "7921:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "7921:3:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "7914:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "7914:6:84"
                    },
                    "nativeSrc": "7914:11:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7914:11:84"
                  },
                  "nativeSrc": "7911:37:84",
                  "nodeType": "YulIf",
                  "src": "7911:37:84"
                },
                {
                  "nativeSrc": "7957:27:84",
                  "nodeType": "YulAssignment",
                  "src": "7957:27:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "x",
                            "nativeSrc": "7970:1:84",
                            "nodeType": "YulIdentifier",
                            "src": "7970:1:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7973:4:84",
                            "nodeType": "YulLiteral",
                            "src": "7973:4:84",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "7966:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "7966:3:84"
                        },
                        "nativeSrc": "7966:12:84",
                        "nodeType": "YulFunctionCall",
                        "src": "7966:12:84"
                      },
                      {
                        "name": "y_1",
                        "nativeSrc": "7980:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "7980:3:84"
                      }
                    ],
                    "functionName": {
                      "name": "mod",
                      "nativeSrc": "7962:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "7962:3:84"
                    },
                    "nativeSrc": "7962:22:84",
                    "nodeType": "YulFunctionCall",
                    "src": "7962:22:84"
                  },
                  "variableNames": [
                    {
                      "name": "r",
                      "nativeSrc": "7957:1:84",
                      "nodeType": "YulIdentifier",
                      "src": "7957:1:84"
                    }
                  ]
                }
              ]
            },
            "name": "mod_t_uint8",
            "nativeSrc": "7833:157:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "7854:1:84",
                "nodeType": "YulTypedName",
                "src": "7854:1:84",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "7857:1:84",
                "nodeType": "YulTypedName",
                "src": "7857:1:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "r",
                "nativeSrc": "7863:1:84",
                "nodeType": "YulTypedName",
                "src": "7863:1:84",
                "type": ""
              }
            ],
            "src": "7833:157:84"
          },
          {
            "body": {
              "nativeSrc": "8027:95:84",
              "nodeType": "YulBlock",
              "src": "8027:95:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "8044:1:84",
                        "nodeType": "YulLiteral",
                        "src": "8044:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "8051:3:84",
                            "nodeType": "YulLiteral",
                            "src": "8051:3:84",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "8056:10:84",
                            "nodeType": "YulLiteral",
                            "src": "8056:10:84",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "8047:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "8047:3:84"
                        },
                        "nativeSrc": "8047:20:84",
                        "nodeType": "YulFunctionCall",
                        "src": "8047:20:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "8037:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "8037:6:84"
                    },
                    "nativeSrc": "8037:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "8037:31:84"
                  },
                  "nativeSrc": "8037:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "8037:31:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "8084:1:84",
                        "nodeType": "YulLiteral",
                        "src": "8084:1:84",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8087:4:84",
                        "nodeType": "YulLiteral",
                        "src": "8087:4:84",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "8077:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "8077:6:84"
                    },
                    "nativeSrc": "8077:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "8077:15:84"
                  },
                  "nativeSrc": "8077:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "8077:15:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "8108:1:84",
                        "nodeType": "YulLiteral",
                        "src": "8108:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8111:4:84",
                        "nodeType": "YulLiteral",
                        "src": "8111:4:84",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "8101:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "8101:6:84"
                    },
                    "nativeSrc": "8101:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "8101:15:84"
                  },
                  "nativeSrc": "8101:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "8101:15:84"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nativeSrc": "7995:127:84",
            "nodeType": "YulFunctionDefinition",
            "src": "7995:127:84"
          },
          {
            "body": {
              "nativeSrc": "8228:179:84",
              "nodeType": "YulBlock",
              "src": "8228:179:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "8274:16:84",
                    "nodeType": "YulBlock",
                    "src": "8274:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "8283:1:84",
                              "nodeType": "YulLiteral",
                              "src": "8283:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8286:1:84",
                              "nodeType": "YulLiteral",
                              "src": "8286:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "8276:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "8276:6:84"
                          },
                          "nativeSrc": "8276:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "8276:12:84"
                        },
                        "nativeSrc": "8276:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "8276:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "8249:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "8249:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "8258:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "8258:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "8245:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "8245:3:84"
                        },
                        "nativeSrc": "8245:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "8245:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8270:2:84",
                        "nodeType": "YulLiteral",
                        "src": "8270:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "8241:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "8241:3:84"
                    },
                    "nativeSrc": "8241:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "8241:32:84"
                  },
                  "nativeSrc": "8238:52:84",
                  "nodeType": "YulIf",
                  "src": "8238:52:84"
                },
                {
                  "nativeSrc": "8299:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8299:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "8318:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "8318:9:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "8312:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "8312:5:84"
                    },
                    "nativeSrc": "8312:16:84",
                    "nodeType": "YulFunctionCall",
                    "src": "8312:16:84"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "8303:5:84",
                      "nodeType": "YulTypedName",
                      "src": "8303:5:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "8361:16:84",
                    "nodeType": "YulBlock",
                    "src": "8361:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "8370:1:84",
                              "nodeType": "YulLiteral",
                              "src": "8370:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8373:1:84",
                              "nodeType": "YulLiteral",
                              "src": "8373:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "8363:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "8363:6:84"
                          },
                          "nativeSrc": "8363:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "8363:12:84"
                        },
                        "nativeSrc": "8363:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "8363:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "8350:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "8350:5:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "8357:1:84",
                            "nodeType": "YulLiteral",
                            "src": "8357:1:84",
                            "type": "",
                            "value": "6"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "8347:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "8347:2:84"
                        },
                        "nativeSrc": "8347:12:84",
                        "nodeType": "YulFunctionCall",
                        "src": "8347:12:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "8340:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "8340:6:84"
                    },
                    "nativeSrc": "8340:20:84",
                    "nodeType": "YulFunctionCall",
                    "src": "8340:20:84"
                  },
                  "nativeSrc": "8337:40:84",
                  "nodeType": "YulIf",
                  "src": "8337:40:84"
                },
                {
                  "nativeSrc": "8386:15:84",
                  "nodeType": "YulAssignment",
                  "src": "8386:15:84",
                  "value": {
                    "name": "value",
                    "nativeSrc": "8396:5:84",
                    "nodeType": "YulIdentifier",
                    "src": "8396:5:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "8386:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "8386:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_enum$_ResponseStatus_$23496_fromMemory",
            "nativeSrc": "8127:280:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "8194:9:84",
                "nodeType": "YulTypedName",
                "src": "8194:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "8205:7:84",
                "nodeType": "YulTypedName",
                "src": "8205:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "8217:6:84",
                "nodeType": "YulTypedName",
                "src": "8217:6:84",
                "type": ""
              }
            ],
            "src": "8127:280:84"
          },
          {
            "body": {
              "nativeSrc": "8453:207:84",
              "nodeType": "YulBlock",
              "src": "8453:207:84",
              "statements": [
                {
                  "nativeSrc": "8463:19:84",
                  "nodeType": "YulAssignment",
                  "src": "8463:19:84",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "8479:2:84",
                        "nodeType": "YulLiteral",
                        "src": "8479:2:84",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "8473:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "8473:5:84"
                    },
                    "nativeSrc": "8473:9:84",
                    "nodeType": "YulFunctionCall",
                    "src": "8473:9:84"
                  },
                  "variableNames": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "8463:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "8463:6:84"
                    }
                  ]
                },
                {
                  "nativeSrc": "8491:35:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8491:35:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "8513:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "8513:6:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8521:4:84",
                        "nodeType": "YulLiteral",
                        "src": "8521:4:84",
                        "type": "",
                        "value": "0xa0"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "8509:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "8509:3:84"
                    },
                    "nativeSrc": "8509:17:84",
                    "nodeType": "YulFunctionCall",
                    "src": "8509:17:84"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nativeSrc": "8495:10:84",
                      "nodeType": "YulTypedName",
                      "src": "8495:10:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "8601:22:84",
                    "nodeType": "YulBlock",
                    "src": "8601:22:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "8603:16:84",
                            "nodeType": "YulIdentifier",
                            "src": "8603:16:84"
                          },
                          "nativeSrc": "8603:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "8603:18:84"
                        },
                        "nativeSrc": "8603:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "8603:18:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "8544:10:84",
                            "nodeType": "YulIdentifier",
                            "src": "8544:10:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "8556:18:84",
                            "nodeType": "YulLiteral",
                            "src": "8556:18:84",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nativeSrc": "8541:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "8541:2:84"
                        },
                        "nativeSrc": "8541:34:84",
                        "nodeType": "YulFunctionCall",
                        "src": "8541:34:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "8580:10:84",
                            "nodeType": "YulIdentifier",
                            "src": "8580:10:84"
                          },
                          {
                            "name": "memPtr",
                            "nativeSrc": "8592:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "8592:6:84"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "8577:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "8577:2:84"
                        },
                        "nativeSrc": "8577:22:84",
                        "nodeType": "YulFunctionCall",
                        "src": "8577:22:84"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nativeSrc": "8538:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "8538:2:84"
                    },
                    "nativeSrc": "8538:62:84",
                    "nodeType": "YulFunctionCall",
                    "src": "8538:62:84"
                  },
                  "nativeSrc": "8535:88:84",
                  "nodeType": "YulIf",
                  "src": "8535:88:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "8639:2:84",
                        "nodeType": "YulLiteral",
                        "src": "8639:2:84",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nativeSrc": "8643:10:84",
                        "nodeType": "YulIdentifier",
                        "src": "8643:10:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "8632:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "8632:6:84"
                    },
                    "nativeSrc": "8632:22:84",
                    "nodeType": "YulFunctionCall",
                    "src": "8632:22:84"
                  },
                  "nativeSrc": "8632:22:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "8632:22:84"
                }
              ]
            },
            "name": "allocate_memory",
            "nativeSrc": "8412:248:84",
            "nodeType": "YulFunctionDefinition",
            "returnVariables": [
              {
                "name": "memPtr",
                "nativeSrc": "8442:6:84",
                "nodeType": "YulTypedName",
                "src": "8442:6:84",
                "type": ""
              }
            ],
            "src": "8412:248:84"
          },
          {
            "body": {
              "nativeSrc": "8709:85:84",
              "nodeType": "YulBlock",
              "src": "8709:85:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "8772:16:84",
                    "nodeType": "YulBlock",
                    "src": "8772:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "8781:1:84",
                              "nodeType": "YulLiteral",
                              "src": "8781:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8784:1:84",
                              "nodeType": "YulLiteral",
                              "src": "8784:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "8774:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "8774:6:84"
                          },
                          "nativeSrc": "8774:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "8774:12:84"
                        },
                        "nativeSrc": "8774:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "8774:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "8732:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "8732:5:84"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "8743:5:84",
                                "nodeType": "YulIdentifier",
                                "src": "8743:5:84"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "8750:18:84",
                                "nodeType": "YulLiteral",
                                "src": "8750:18:84",
                                "type": "",
                                "value": "0xffffffffffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "8739:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "8739:3:84"
                            },
                            "nativeSrc": "8739:30:84",
                            "nodeType": "YulFunctionCall",
                            "src": "8739:30:84"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "8729:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "8729:2:84"
                        },
                        "nativeSrc": "8729:41:84",
                        "nodeType": "YulFunctionCall",
                        "src": "8729:41:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "8722:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "8722:6:84"
                    },
                    "nativeSrc": "8722:49:84",
                    "nodeType": "YulFunctionCall",
                    "src": "8722:49:84"
                  },
                  "nativeSrc": "8719:69:84",
                  "nodeType": "YulIf",
                  "src": "8719:69:84"
                }
              ]
            },
            "name": "validator_revert_uint64",
            "nativeSrc": "8665:129:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "8698:5:84",
                "nodeType": "YulTypedName",
                "src": "8698:5:84",
                "type": ""
              }
            ],
            "src": "8665:129:84"
          },
          {
            "body": {
              "nativeSrc": "8862:635:84",
              "nodeType": "YulBlock",
              "src": "8862:635:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "8911:16:84",
                    "nodeType": "YulBlock",
                    "src": "8911:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "8920:1:84",
                              "nodeType": "YulLiteral",
                              "src": "8920:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8923:1:84",
                              "nodeType": "YulLiteral",
                              "src": "8923:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "8913:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "8913:6:84"
                          },
                          "nativeSrc": "8913:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "8913:12:84"
                        },
                        "nativeSrc": "8913:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "8913:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nativeSrc": "8890:6:84",
                                "nodeType": "YulIdentifier",
                                "src": "8890:6:84"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "8898:4:84",
                                "nodeType": "YulLiteral",
                                "src": "8898:4:84",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "8886:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "8886:3:84"
                            },
                            "nativeSrc": "8886:17:84",
                            "nodeType": "YulFunctionCall",
                            "src": "8886:17:84"
                          },
                          {
                            "name": "end",
                            "nativeSrc": "8905:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "8905:3:84"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nativeSrc": "8882:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "8882:3:84"
                        },
                        "nativeSrc": "8882:27:84",
                        "nodeType": "YulFunctionCall",
                        "src": "8882:27:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "8875:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "8875:6:84"
                    },
                    "nativeSrc": "8875:35:84",
                    "nodeType": "YulFunctionCall",
                    "src": "8875:35:84"
                  },
                  "nativeSrc": "8872:55:84",
                  "nodeType": "YulIf",
                  "src": "8872:55:84"
                },
                {
                  "nativeSrc": "8936:23:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8936:23:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "8952:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "8952:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "8946:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "8946:5:84"
                    },
                    "nativeSrc": "8946:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "8946:13:84"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "8940:2:84",
                      "nodeType": "YulTypedName",
                      "src": "8940:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "8968:28:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8968:28:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "8978:18:84",
                    "nodeType": "YulLiteral",
                    "src": "8978:18:84",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nativeSrc": "8972:2:84",
                      "nodeType": "YulTypedName",
                      "src": "8972:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "9019:22:84",
                    "nodeType": "YulBlock",
                    "src": "9019:22:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "9021:16:84",
                            "nodeType": "YulIdentifier",
                            "src": "9021:16:84"
                          },
                          "nativeSrc": "9021:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "9021:18:84"
                        },
                        "nativeSrc": "9021:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "9021:18:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "9011:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "9011:2:84"
                      },
                      {
                        "name": "_2",
                        "nativeSrc": "9015:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "9015:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "9008:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "9008:2:84"
                    },
                    "nativeSrc": "9008:10:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9008:10:84"
                  },
                  "nativeSrc": "9005:36:84",
                  "nodeType": "YulIf",
                  "src": "9005:36:84"
                },
                {
                  "nativeSrc": "9050:17:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9050:17:84",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "9064:2:84",
                        "nodeType": "YulLiteral",
                        "src": "9064:2:84",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "not",
                      "nativeSrc": "9060:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "9060:3:84"
                    },
                    "nativeSrc": "9060:7:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9060:7:84"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nativeSrc": "9054:2:84",
                      "nodeType": "YulTypedName",
                      "src": "9054:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "9076:23:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9076:23:84",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "9096:2:84",
                        "nodeType": "YulLiteral",
                        "src": "9096:2:84",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "9090:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "9090:5:84"
                    },
                    "nativeSrc": "9090:9:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9090:9:84"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "9080:6:84",
                      "nodeType": "YulTypedName",
                      "src": "9080:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "9108:71:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9108:71:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "9130:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "9130:6:84"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "_1",
                                        "nativeSrc": "9154:2:84",
                                        "nodeType": "YulIdentifier",
                                        "src": "9154:2:84"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "9158:4:84",
                                        "nodeType": "YulLiteral",
                                        "src": "9158:4:84",
                                        "type": "",
                                        "value": "0x1f"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nativeSrc": "9150:3:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "9150:3:84"
                                    },
                                    "nativeSrc": "9150:13:84",
                                    "nodeType": "YulFunctionCall",
                                    "src": "9150:13:84"
                                  },
                                  {
                                    "name": "_3",
                                    "nativeSrc": "9165:2:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "9165:2:84"
                                  }
                                ],
                                "functionName": {
                                  "name": "and",
                                  "nativeSrc": "9146:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "9146:3:84"
                                },
                                "nativeSrc": "9146:22:84",
                                "nodeType": "YulFunctionCall",
                                "src": "9146:22:84"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "9170:2:84",
                                "nodeType": "YulLiteral",
                                "src": "9170:2:84",
                                "type": "",
                                "value": "63"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "9142:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "9142:3:84"
                            },
                            "nativeSrc": "9142:31:84",
                            "nodeType": "YulFunctionCall",
                            "src": "9142:31:84"
                          },
                          {
                            "name": "_3",
                            "nativeSrc": "9175:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "9175:2:84"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "9138:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "9138:3:84"
                        },
                        "nativeSrc": "9138:40:84",
                        "nodeType": "YulFunctionCall",
                        "src": "9138:40:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "9126:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "9126:3:84"
                    },
                    "nativeSrc": "9126:53:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9126:53:84"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nativeSrc": "9112:10:84",
                      "nodeType": "YulTypedName",
                      "src": "9112:10:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "9238:22:84",
                    "nodeType": "YulBlock",
                    "src": "9238:22:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "9240:16:84",
                            "nodeType": "YulIdentifier",
                            "src": "9240:16:84"
                          },
                          "nativeSrc": "9240:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "9240:18:84"
                        },
                        "nativeSrc": "9240:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "9240:18:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "9197:10:84",
                            "nodeType": "YulIdentifier",
                            "src": "9197:10:84"
                          },
                          {
                            "name": "_2",
                            "nativeSrc": "9209:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "9209:2:84"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nativeSrc": "9194:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "9194:2:84"
                        },
                        "nativeSrc": "9194:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "9194:18:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "9217:10:84",
                            "nodeType": "YulIdentifier",
                            "src": "9217:10:84"
                          },
                          {
                            "name": "memPtr",
                            "nativeSrc": "9229:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "9229:6:84"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "9214:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "9214:2:84"
                        },
                        "nativeSrc": "9214:22:84",
                        "nodeType": "YulFunctionCall",
                        "src": "9214:22:84"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nativeSrc": "9191:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "9191:2:84"
                    },
                    "nativeSrc": "9191:46:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9191:46:84"
                  },
                  "nativeSrc": "9188:72:84",
                  "nodeType": "YulIf",
                  "src": "9188:72:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "9276:2:84",
                        "nodeType": "YulLiteral",
                        "src": "9276:2:84",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nativeSrc": "9280:10:84",
                        "nodeType": "YulIdentifier",
                        "src": "9280:10:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "9269:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "9269:6:84"
                    },
                    "nativeSrc": "9269:22:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9269:22:84"
                  },
                  "nativeSrc": "9269:22:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "9269:22:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "9307:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "9307:6:84"
                      },
                      {
                        "name": "_1",
                        "nativeSrc": "9315:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "9315:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "9300:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "9300:6:84"
                    },
                    "nativeSrc": "9300:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9300:18:84"
                  },
                  "nativeSrc": "9300:18:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "9300:18:84"
                },
                {
                  "body": {
                    "nativeSrc": "9366:16:84",
                    "nodeType": "YulBlock",
                    "src": "9366:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "9375:1:84",
                              "nodeType": "YulLiteral",
                              "src": "9375:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "9378:1:84",
                              "nodeType": "YulLiteral",
                              "src": "9378:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "9368:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "9368:6:84"
                          },
                          "nativeSrc": "9368:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "9368:12:84"
                        },
                        "nativeSrc": "9368:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "9368:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nativeSrc": "9341:6:84",
                                "nodeType": "YulIdentifier",
                                "src": "9341:6:84"
                              },
                              {
                                "name": "_1",
                                "nativeSrc": "9349:2:84",
                                "nodeType": "YulIdentifier",
                                "src": "9349:2:84"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "9337:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "9337:3:84"
                            },
                            "nativeSrc": "9337:15:84",
                            "nodeType": "YulFunctionCall",
                            "src": "9337:15:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9354:4:84",
                            "nodeType": "YulLiteral",
                            "src": "9354:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9333:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "9333:3:84"
                        },
                        "nativeSrc": "9333:26:84",
                        "nodeType": "YulFunctionCall",
                        "src": "9333:26:84"
                      },
                      {
                        "name": "end",
                        "nativeSrc": "9361:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "9361:3:84"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "9330:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "9330:2:84"
                    },
                    "nativeSrc": "9330:35:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9330:35:84"
                  },
                  "nativeSrc": "9327:55:84",
                  "nodeType": "YulIf",
                  "src": "9327:55:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nativeSrc": "9430:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "9430:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9438:4:84",
                            "nodeType": "YulLiteral",
                            "src": "9438:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9426:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "9426:3:84"
                        },
                        "nativeSrc": "9426:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "9426:17:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "9449:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "9449:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9457:4:84",
                            "nodeType": "YulLiteral",
                            "src": "9457:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9445:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "9445:3:84"
                        },
                        "nativeSrc": "9445:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "9445:17:84"
                      },
                      {
                        "name": "_1",
                        "nativeSrc": "9464:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "9464:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nativeSrc": "9391:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "9391:34:84"
                    },
                    "nativeSrc": "9391:76:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9391:76:84"
                  },
                  "nativeSrc": "9391:76:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "9391:76:84"
                },
                {
                  "nativeSrc": "9476:15:84",
                  "nodeType": "YulAssignment",
                  "src": "9476:15:84",
                  "value": {
                    "name": "memPtr",
                    "nativeSrc": "9485:6:84",
                    "nodeType": "YulIdentifier",
                    "src": "9485:6:84"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nativeSrc": "9476:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "9476:5:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_bytes_fromMemory",
            "nativeSrc": "8799:698:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "8836:6:84",
                "nodeType": "YulTypedName",
                "src": "8836:6:84",
                "type": ""
              },
              {
                "name": "end",
                "nativeSrc": "8844:3:84",
                "nodeType": "YulTypedName",
                "src": "8844:3:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nativeSrc": "8852:5:84",
                "nodeType": "YulTypedName",
                "src": "8852:5:84",
                "type": ""
              }
            ],
            "src": "8799:698:84"
          },
          {
            "body": {
              "nativeSrc": "9610:928:84",
              "nodeType": "YulBlock",
              "src": "9610:928:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "9656:16:84",
                    "nodeType": "YulBlock",
                    "src": "9656:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "9665:1:84",
                              "nodeType": "YulLiteral",
                              "src": "9665:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "9668:1:84",
                              "nodeType": "YulLiteral",
                              "src": "9668:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "9658:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "9658:6:84"
                          },
                          "nativeSrc": "9658:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "9658:12:84"
                        },
                        "nativeSrc": "9658:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "9658:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "9631:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "9631:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "9640:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "9640:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "9627:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "9627:3:84"
                        },
                        "nativeSrc": "9627:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "9627:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9652:2:84",
                        "nodeType": "YulLiteral",
                        "src": "9652:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "9623:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "9623:3:84"
                    },
                    "nativeSrc": "9623:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9623:32:84"
                  },
                  "nativeSrc": "9620:52:84",
                  "nodeType": "YulIf",
                  "src": "9620:52:84"
                },
                {
                  "nativeSrc": "9681:30:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9681:30:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "9701:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "9701:9:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "9695:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "9695:5:84"
                    },
                    "nativeSrc": "9695:16:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9695:16:84"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "9685:6:84",
                      "nodeType": "YulTypedName",
                      "src": "9685:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "9720:28:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9720:28:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "9730:18:84",
                    "nodeType": "YulLiteral",
                    "src": "9730:18:84",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "9724:2:84",
                      "nodeType": "YulTypedName",
                      "src": "9724:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "9775:16:84",
                    "nodeType": "YulBlock",
                    "src": "9775:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "9784:1:84",
                              "nodeType": "YulLiteral",
                              "src": "9784:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "9787:1:84",
                              "nodeType": "YulLiteral",
                              "src": "9787:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "9777:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "9777:6:84"
                          },
                          "nativeSrc": "9777:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "9777:12:84"
                        },
                        "nativeSrc": "9777:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "9777:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "9763:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "9763:6:84"
                      },
                      {
                        "name": "_1",
                        "nativeSrc": "9771:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "9771:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "9760:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "9760:2:84"
                    },
                    "nativeSrc": "9760:14:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9760:14:84"
                  },
                  "nativeSrc": "9757:34:84",
                  "nodeType": "YulIf",
                  "src": "9757:34:84"
                },
                {
                  "nativeSrc": "9800:32:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9800:32:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "9814:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "9814:9:84"
                      },
                      {
                        "name": "offset",
                        "nativeSrc": "9825:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "9825:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "9810:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "9810:3:84"
                    },
                    "nativeSrc": "9810:22:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9810:22:84"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nativeSrc": "9804:2:84",
                      "nodeType": "YulTypedName",
                      "src": "9804:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "9872:16:84",
                    "nodeType": "YulBlock",
                    "src": "9872:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "9881:1:84",
                              "nodeType": "YulLiteral",
                              "src": "9881:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "9884:1:84",
                              "nodeType": "YulLiteral",
                              "src": "9884:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "9874:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "9874:6:84"
                          },
                          "nativeSrc": "9874:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "9874:12:84"
                        },
                        "nativeSrc": "9874:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "9874:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "9852:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "9852:7:84"
                          },
                          {
                            "name": "_2",
                            "nativeSrc": "9861:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "9861:2:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "9848:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "9848:3:84"
                        },
                        "nativeSrc": "9848:16:84",
                        "nodeType": "YulFunctionCall",
                        "src": "9848:16:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9866:4:84",
                        "nodeType": "YulLiteral",
                        "src": "9866:4:84",
                        "type": "",
                        "value": "0xa0"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "9844:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "9844:3:84"
                    },
                    "nativeSrc": "9844:27:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9844:27:84"
                  },
                  "nativeSrc": "9841:47:84",
                  "nodeType": "YulIf",
                  "src": "9841:47:84"
                },
                {
                  "nativeSrc": "9897:30:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9897:30:84",
                  "value": {
                    "arguments": [],
                    "functionName": {
                      "name": "allocate_memory",
                      "nativeSrc": "9910:15:84",
                      "nodeType": "YulIdentifier",
                      "src": "9910:15:84"
                    },
                    "nativeSrc": "9910:17:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9910:17:84"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "9901:5:84",
                      "nodeType": "YulTypedName",
                      "src": "9901:5:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "9936:24:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9936:24:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nativeSrc": "9957:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "9957:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "9951:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "9951:5:84"
                    },
                    "nativeSrc": "9951:9:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9951:9:84"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "9940:7:84",
                      "nodeType": "YulTypedName",
                      "src": "9940:7:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "9994:7:84",
                        "nodeType": "YulIdentifier",
                        "src": "9994:7:84"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "9969:24:84",
                      "nodeType": "YulIdentifier",
                      "src": "9969:24:84"
                    },
                    "nativeSrc": "9969:33:84",
                    "nodeType": "YulFunctionCall",
                    "src": "9969:33:84"
                  },
                  "nativeSrc": "9969:33:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "9969:33:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "10018:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "10018:5:84"
                      },
                      {
                        "name": "value_1",
                        "nativeSrc": "10025:7:84",
                        "nodeType": "YulIdentifier",
                        "src": "10025:7:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "10011:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "10011:6:84"
                    },
                    "nativeSrc": "10011:22:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10011:22:84"
                  },
                  "nativeSrc": "10011:22:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "10011:22:84"
                },
                {
                  "nativeSrc": "10042:33:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "10042:33:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nativeSrc": "10067:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "10067:2:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10071:2:84",
                            "nodeType": "YulLiteral",
                            "src": "10071:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "10063:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "10063:3:84"
                        },
                        "nativeSrc": "10063:11:84",
                        "nodeType": "YulFunctionCall",
                        "src": "10063:11:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "10057:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "10057:5:84"
                    },
                    "nativeSrc": "10057:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10057:18:84"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nativeSrc": "10046:7:84",
                      "nodeType": "YulTypedName",
                      "src": "10046:7:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_2",
                        "nativeSrc": "10108:7:84",
                        "nodeType": "YulIdentifier",
                        "src": "10108:7:84"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "10084:23:84",
                      "nodeType": "YulIdentifier",
                      "src": "10084:23:84"
                    },
                    "nativeSrc": "10084:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10084:32:84"
                  },
                  "nativeSrc": "10084:32:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "10084:32:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "10136:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "10136:5:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10143:2:84",
                            "nodeType": "YulLiteral",
                            "src": "10143:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "10132:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "10132:3:84"
                        },
                        "nativeSrc": "10132:14:84",
                        "nodeType": "YulFunctionCall",
                        "src": "10132:14:84"
                      },
                      {
                        "name": "value_2",
                        "nativeSrc": "10148:7:84",
                        "nodeType": "YulIdentifier",
                        "src": "10148:7:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "10125:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "10125:6:84"
                    },
                    "nativeSrc": "10125:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10125:31:84"
                  },
                  "nativeSrc": "10125:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "10125:31:84"
                },
                {
                  "nativeSrc": "10165:33:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "10165:33:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nativeSrc": "10190:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "10190:2:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10194:2:84",
                            "nodeType": "YulLiteral",
                            "src": "10194:2:84",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "10186:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "10186:3:84"
                        },
                        "nativeSrc": "10186:11:84",
                        "nodeType": "YulFunctionCall",
                        "src": "10186:11:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "10180:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "10180:5:84"
                    },
                    "nativeSrc": "10180:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10180:18:84"
                  },
                  "variables": [
                    {
                      "name": "value_3",
                      "nativeSrc": "10169:7:84",
                      "nodeType": "YulTypedName",
                      "src": "10169:7:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_3",
                        "nativeSrc": "10231:7:84",
                        "nodeType": "YulIdentifier",
                        "src": "10231:7:84"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint32",
                      "nativeSrc": "10207:23:84",
                      "nodeType": "YulIdentifier",
                      "src": "10207:23:84"
                    },
                    "nativeSrc": "10207:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10207:32:84"
                  },
                  "nativeSrc": "10207:32:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "10207:32:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "10259:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "10259:5:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10266:2:84",
                            "nodeType": "YulLiteral",
                            "src": "10266:2:84",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "10255:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "10255:3:84"
                        },
                        "nativeSrc": "10255:14:84",
                        "nodeType": "YulFunctionCall",
                        "src": "10255:14:84"
                      },
                      {
                        "name": "value_3",
                        "nativeSrc": "10271:7:84",
                        "nodeType": "YulIdentifier",
                        "src": "10271:7:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "10248:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "10248:6:84"
                    },
                    "nativeSrc": "10248:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10248:31:84"
                  },
                  "nativeSrc": "10248:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "10248:31:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "10299:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "10299:5:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10306:2:84",
                            "nodeType": "YulLiteral",
                            "src": "10306:2:84",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "10295:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "10295:3:84"
                        },
                        "nativeSrc": "10295:14:84",
                        "nodeType": "YulFunctionCall",
                        "src": "10295:14:84"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nativeSrc": "10321:2:84",
                                "nodeType": "YulIdentifier",
                                "src": "10321:2:84"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "10325:2:84",
                                "nodeType": "YulLiteral",
                                "src": "10325:2:84",
                                "type": "",
                                "value": "96"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "10317:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "10317:3:84"
                            },
                            "nativeSrc": "10317:11:84",
                            "nodeType": "YulFunctionCall",
                            "src": "10317:11:84"
                          }
                        ],
                        "functionName": {
                          "name": "mload",
                          "nativeSrc": "10311:5:84",
                          "nodeType": "YulIdentifier",
                          "src": "10311:5:84"
                        },
                        "nativeSrc": "10311:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "10311:18:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "10288:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "10288:6:84"
                    },
                    "nativeSrc": "10288:42:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10288:42:84"
                  },
                  "nativeSrc": "10288:42:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "10288:42:84"
                },
                {
                  "nativeSrc": "10339:35:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "10339:35:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nativeSrc": "10365:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "10365:2:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10369:3:84",
                            "nodeType": "YulLiteral",
                            "src": "10369:3:84",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "10361:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "10361:3:84"
                        },
                        "nativeSrc": "10361:12:84",
                        "nodeType": "YulFunctionCall",
                        "src": "10361:12:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "10355:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "10355:5:84"
                    },
                    "nativeSrc": "10355:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10355:19:84"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nativeSrc": "10343:8:84",
                      "nodeType": "YulTypedName",
                      "src": "10343:8:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "10403:16:84",
                    "nodeType": "YulBlock",
                    "src": "10403:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "10412:1:84",
                              "nodeType": "YulLiteral",
                              "src": "10412:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "10415:1:84",
                              "nodeType": "YulLiteral",
                              "src": "10415:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "10405:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "10405:6:84"
                          },
                          "nativeSrc": "10405:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "10405:12:84"
                        },
                        "nativeSrc": "10405:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "10405:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nativeSrc": "10389:8:84",
                        "nodeType": "YulIdentifier",
                        "src": "10389:8:84"
                      },
                      {
                        "name": "_1",
                        "nativeSrc": "10399:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "10399:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "10386:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "10386:2:84"
                    },
                    "nativeSrc": "10386:16:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10386:16:84"
                  },
                  "nativeSrc": "10383:36:84",
                  "nodeType": "YulIf",
                  "src": "10383:36:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "10439:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "10439:5:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10446:3:84",
                            "nodeType": "YulLiteral",
                            "src": "10446:3:84",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "10435:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "10435:3:84"
                        },
                        "nativeSrc": "10435:15:84",
                        "nodeType": "YulFunctionCall",
                        "src": "10435:15:84"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nativeSrc": "10484:2:84",
                                "nodeType": "YulIdentifier",
                                "src": "10484:2:84"
                              },
                              {
                                "name": "offset_1",
                                "nativeSrc": "10488:8:84",
                                "nodeType": "YulIdentifier",
                                "src": "10488:8:84"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "10480:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "10480:3:84"
                            },
                            "nativeSrc": "10480:17:84",
                            "nodeType": "YulFunctionCall",
                            "src": "10480:17:84"
                          },
                          {
                            "name": "dataEnd",
                            "nativeSrc": "10499:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "10499:7:84"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_bytes_fromMemory",
                          "nativeSrc": "10452:27:84",
                          "nodeType": "YulIdentifier",
                          "src": "10452:27:84"
                        },
                        "nativeSrc": "10452:55:84",
                        "nodeType": "YulFunctionCall",
                        "src": "10452:55:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "10428:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "10428:6:84"
                    },
                    "nativeSrc": "10428:80:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10428:80:84"
                  },
                  "nativeSrc": "10428:80:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "10428:80:84"
                },
                {
                  "nativeSrc": "10517:15:84",
                  "nodeType": "YulAssignment",
                  "src": "10517:15:84",
                  "value": {
                    "name": "value",
                    "nativeSrc": "10527:5:84",
                    "nodeType": "YulIdentifier",
                    "src": "10527:5:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "10517:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "10517:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_struct$_Response_$23488_memory_ptr_fromMemory",
            "nativeSrc": "9502:1036:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "9576:9:84",
                "nodeType": "YulTypedName",
                "src": "9576:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "9587:7:84",
                "nodeType": "YulTypedName",
                "src": "9587:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "9599:6:84",
                "nodeType": "YulTypedName",
                "src": "9599:6:84",
                "type": ""
              }
            ],
            "src": "9502:1036:84"
          },
          {
            "body": {
              "nativeSrc": "10672:145:84",
              "nodeType": "YulBlock",
              "src": "10672:145:84",
              "statements": [
                {
                  "nativeSrc": "10682:26:84",
                  "nodeType": "YulAssignment",
                  "src": "10682:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "10694:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "10694:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "10705:2:84",
                        "nodeType": "YulLiteral",
                        "src": "10705:2:84",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "10690:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "10690:3:84"
                    },
                    "nativeSrc": "10690:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10690:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "10682:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "10682:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "10724:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "10724:9:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "10739:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "10739:6:84"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "10755:3:84",
                                    "nodeType": "YulLiteral",
                                    "src": "10755:3:84",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "10760:1:84",
                                    "nodeType": "YulLiteral",
                                    "src": "10760:1:84",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "10751:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "10751:3:84"
                                },
                                "nativeSrc": "10751:11:84",
                                "nodeType": "YulFunctionCall",
                                "src": "10751:11:84"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "10764:1:84",
                                "nodeType": "YulLiteral",
                                "src": "10764:1:84",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "10747:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "10747:3:84"
                            },
                            "nativeSrc": "10747:19:84",
                            "nodeType": "YulFunctionCall",
                            "src": "10747:19:84"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "10735:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "10735:3:84"
                        },
                        "nativeSrc": "10735:32:84",
                        "nodeType": "YulFunctionCall",
                        "src": "10735:32:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "10717:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "10717:6:84"
                    },
                    "nativeSrc": "10717:51:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10717:51:84"
                  },
                  "nativeSrc": "10717:51:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "10717:51:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "10788:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "10788:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10799:2:84",
                            "nodeType": "YulLiteral",
                            "src": "10799:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "10784:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "10784:3:84"
                        },
                        "nativeSrc": "10784:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "10784:18:84"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "10804:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "10804:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "10777:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "10777:6:84"
                    },
                    "nativeSrc": "10777:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10777:34:84"
                  },
                  "nativeSrc": "10777:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "10777:34:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed",
            "nativeSrc": "10543:274:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "10633:9:84",
                "nodeType": "YulTypedName",
                "src": "10633:9:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "10644:6:84",
                "nodeType": "YulTypedName",
                "src": "10644:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "10652:6:84",
                "nodeType": "YulTypedName",
                "src": "10652:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "10663:4:84",
                "nodeType": "YulTypedName",
                "src": "10663:4:84",
                "type": ""
              }
            ],
            "src": "10543:274:84"
          },
          {
            "body": {
              "nativeSrc": "10882:162:84",
              "nodeType": "YulBlock",
              "src": "10882:162:84",
              "statements": [
                {
                  "nativeSrc": "10892:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "10892:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "10915:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "10915:5:84"
                      }
                    ],
                    "functionName": {
                      "name": "sload",
                      "nativeSrc": "10909:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "10909:5:84"
                    },
                    "nativeSrc": "10909:12:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10909:12:84"
                  },
                  "variables": [
                    {
                      "name": "slotValue",
                      "nativeSrc": "10896:9:84",
                      "nodeType": "YulTypedName",
                      "src": "10896:9:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "10937:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "10937:3:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "slotValue",
                            "nativeSrc": "10946:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "10946:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10957:4:84",
                            "nodeType": "YulLiteral",
                            "src": "10957:4:84",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "10942:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "10942:3:84"
                        },
                        "nativeSrc": "10942:20:84",
                        "nodeType": "YulFunctionCall",
                        "src": "10942:20:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "10930:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "10930:6:84"
                    },
                    "nativeSrc": "10930:33:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10930:33:84"
                  },
                  "nativeSrc": "10930:33:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "10930:33:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "10983:3:84",
                            "nodeType": "YulIdentifier",
                            "src": "10983:3:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10988:4:84",
                            "nodeType": "YulLiteral",
                            "src": "10988:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "10979:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "10979:3:84"
                        },
                        "nativeSrc": "10979:14:84",
                        "nodeType": "YulFunctionCall",
                        "src": "10979:14:84"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "11003:1:84",
                                "nodeType": "YulLiteral",
                                "src": "11003:1:84",
                                "type": "",
                                "value": "8"
                              },
                              {
                                "name": "slotValue",
                                "nativeSrc": "11006:9:84",
                                "nodeType": "YulIdentifier",
                                "src": "11006:9:84"
                              }
                            ],
                            "functionName": {
                              "name": "shr",
                              "nativeSrc": "10999:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "10999:3:84"
                            },
                            "nativeSrc": "10999:17:84",
                            "nodeType": "YulFunctionCall",
                            "src": "10999:17:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "11018:18:84",
                            "nodeType": "YulLiteral",
                            "src": "11018:18:84",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "10995:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "10995:3:84"
                        },
                        "nativeSrc": "10995:42:84",
                        "nodeType": "YulFunctionCall",
                        "src": "10995:42:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "10972:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "10972:6:84"
                    },
                    "nativeSrc": "10972:66:84",
                    "nodeType": "YulFunctionCall",
                    "src": "10972:66:84"
                  },
                  "nativeSrc": "10972:66:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "10972:66:84"
                }
              ]
            },
            "name": "abi_encode_struct_RadonSLA_storage",
            "nativeSrc": "10822:222:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "10866:5:84",
                "nodeType": "YulTypedName",
                "src": "10866:5:84",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "10873:3:84",
                "nodeType": "YulTypedName",
                "src": "10873:3:84",
                "type": ""
              }
            ],
            "src": "10822:222:84"
          },
          {
            "body": {
              "nativeSrc": "11229:147:84",
              "nodeType": "YulBlock",
              "src": "11229:147:84",
              "statements": [
                {
                  "nativeSrc": "11239:26:84",
                  "nodeType": "YulAssignment",
                  "src": "11239:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "11251:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "11251:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "11262:2:84",
                        "nodeType": "YulLiteral",
                        "src": "11262:2:84",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "11247:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "11247:3:84"
                    },
                    "nativeSrc": "11247:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "11247:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "11239:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "11239:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "11281:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "11281:9:84"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "11292:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "11292:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "11274:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "11274:6:84"
                    },
                    "nativeSrc": "11274:25:84",
                    "nodeType": "YulFunctionCall",
                    "src": "11274:25:84"
                  },
                  "nativeSrc": "11274:25:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "11274:25:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "11343:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "11343:6:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "11355:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "11355:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "11366:2:84",
                            "nodeType": "YulLiteral",
                            "src": "11366:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "11351:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "11351:3:84"
                        },
                        "nativeSrc": "11351:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "11351:18:84"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_struct_RadonSLA_storage",
                      "nativeSrc": "11308:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "11308:34:84"
                    },
                    "nativeSrc": "11308:62:84",
                    "nodeType": "YulFunctionCall",
                    "src": "11308:62:84"
                  },
                  "nativeSrc": "11308:62:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "11308:62:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes32_t_struct$_RadonSLA_$23503_storage__to_t_bytes32_t_struct$_RadonSLA_$23503_memory_ptr__fromStack_reversed",
            "nativeSrc": "11049:327:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "11190:9:84",
                "nodeType": "YulTypedName",
                "src": "11190:9:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "11201:6:84",
                "nodeType": "YulTypedName",
                "src": "11201:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "11209:6:84",
                "nodeType": "YulTypedName",
                "src": "11209:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "11220:4:84",
                "nodeType": "YulTypedName",
                "src": "11220:4:84",
                "type": ""
              }
            ],
            "src": "11049:327:84"
          },
          {
            "body": {
              "nativeSrc": "11462:103:84",
              "nodeType": "YulBlock",
              "src": "11462:103:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "11508:16:84",
                    "nodeType": "YulBlock",
                    "src": "11508:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "11517:1:84",
                              "nodeType": "YulLiteral",
                              "src": "11517:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "11520:1:84",
                              "nodeType": "YulLiteral",
                              "src": "11520:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "11510:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "11510:6:84"
                          },
                          "nativeSrc": "11510:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "11510:12:84"
                        },
                        "nativeSrc": "11510:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "11510:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "11483:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "11483:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "11492:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "11492:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "11479:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "11479:3:84"
                        },
                        "nativeSrc": "11479:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "11479:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "11504:2:84",
                        "nodeType": "YulLiteral",
                        "src": "11504:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "11475:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "11475:3:84"
                    },
                    "nativeSrc": "11475:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "11475:32:84"
                  },
                  "nativeSrc": "11472:52:84",
                  "nodeType": "YulIf",
                  "src": "11472:52:84"
                },
                {
                  "nativeSrc": "11533:26:84",
                  "nodeType": "YulAssignment",
                  "src": "11533:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "11549:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "11549:9:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "11543:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "11543:5:84"
                    },
                    "nativeSrc": "11543:16:84",
                    "nodeType": "YulFunctionCall",
                    "src": "11543:16:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "11533:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "11533:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256_fromMemory",
            "nativeSrc": "11381:184:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "11428:9:84",
                "nodeType": "YulTypedName",
                "src": "11428:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "11439:7:84",
                "nodeType": "YulTypedName",
                "src": "11439:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "11451:6:84",
                "nodeType": "YulTypedName",
                "src": "11451:6:84",
                "type": ""
              }
            ],
            "src": "11381:184:84"
          },
          {
            "body": {
              "nativeSrc": "11834:278:84",
              "nodeType": "YulBlock",
              "src": "11834:278:84",
              "statements": [
                {
                  "nativeSrc": "11844:27:84",
                  "nodeType": "YulAssignment",
                  "src": "11844:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "11856:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "11856:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "11867:3:84",
                        "nodeType": "YulLiteral",
                        "src": "11867:3:84",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "11852:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "11852:3:84"
                    },
                    "nativeSrc": "11852:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "11852:19:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "11844:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "11844:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "11887:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "11887:9:84"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "11898:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "11898:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "11880:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "11880:6:84"
                    },
                    "nativeSrc": "11880:25:84",
                    "nodeType": "YulFunctionCall",
                    "src": "11880:25:84"
                  },
                  "nativeSrc": "11880:25:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "11880:25:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "11925:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "11925:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "11936:2:84",
                            "nodeType": "YulLiteral",
                            "src": "11936:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "11921:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "11921:3:84"
                        },
                        "nativeSrc": "11921:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "11921:18:84"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "11941:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "11941:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "11914:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "11914:6:84"
                    },
                    "nativeSrc": "11914:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "11914:34:84"
                  },
                  "nativeSrc": "11914:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "11914:34:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "11968:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "11968:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "11979:2:84",
                            "nodeType": "YulLiteral",
                            "src": "11979:2:84",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "11964:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "11964:3:84"
                        },
                        "nativeSrc": "11964:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "11964:18:84"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "11984:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "11984:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "11957:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "11957:6:84"
                    },
                    "nativeSrc": "11957:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "11957:34:84"
                  },
                  "nativeSrc": "11957:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "11957:34:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "12011:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "12011:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "12022:2:84",
                            "nodeType": "YulLiteral",
                            "src": "12022:2:84",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "12007:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "12007:3:84"
                        },
                        "nativeSrc": "12007:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "12007:18:84"
                      },
                      {
                        "name": "value3",
                        "nativeSrc": "12027:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "12027:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "12000:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "12000:6:84"
                    },
                    "nativeSrc": "12000:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "12000:34:84"
                  },
                  "nativeSrc": "12000:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "12000:34:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nativeSrc": "12078:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "12078:6:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "12090:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "12090:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "12101:3:84",
                            "nodeType": "YulLiteral",
                            "src": "12101:3:84",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "12086:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "12086:3:84"
                        },
                        "nativeSrc": "12086:19:84",
                        "nodeType": "YulFunctionCall",
                        "src": "12086:19:84"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_struct_RadonSLA_storage",
                      "nativeSrc": "12043:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "12043:34:84"
                    },
                    "nativeSrc": "12043:63:84",
                    "nodeType": "YulFunctionCall",
                    "src": "12043:63:84"
                  },
                  "nativeSrc": "12043:63:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "12043:63:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256_t_struct$_RadonSLA_$23503_storage__to_t_uint256_t_uint256_t_uint256_t_uint256_t_struct$_RadonSLA_$23503_memory_ptr__fromStack_reversed",
            "nativeSrc": "11570:542:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "11771:9:84",
                "nodeType": "YulTypedName",
                "src": "11771:9:84",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "11782:6:84",
                "nodeType": "YulTypedName",
                "src": "11782:6:84",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "11790:6:84",
                "nodeType": "YulTypedName",
                "src": "11790:6:84",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "11798:6:84",
                "nodeType": "YulTypedName",
                "src": "11798:6:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "11806:6:84",
                "nodeType": "YulTypedName",
                "src": "11806:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "11814:6:84",
                "nodeType": "YulTypedName",
                "src": "11814:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "11825:4:84",
                "nodeType": "YulTypedName",
                "src": "11825:4:84",
                "type": ""
              }
            ],
            "src": "11570:542:84"
          },
          {
            "body": {
              "nativeSrc": "12166:79:84",
              "nodeType": "YulBlock",
              "src": "12166:79:84",
              "statements": [
                {
                  "nativeSrc": "12176:17:84",
                  "nodeType": "YulAssignment",
                  "src": "12176:17:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nativeSrc": "12188:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "12188:1:84"
                      },
                      {
                        "name": "y",
                        "nativeSrc": "12191:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "12191:1:84"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nativeSrc": "12184:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "12184:3:84"
                    },
                    "nativeSrc": "12184:9:84",
                    "nodeType": "YulFunctionCall",
                    "src": "12184:9:84"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nativeSrc": "12176:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "12176:4:84"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "12217:22:84",
                    "nodeType": "YulBlock",
                    "src": "12217:22:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "12219:16:84",
                            "nodeType": "YulIdentifier",
                            "src": "12219:16:84"
                          },
                          "nativeSrc": "12219:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "12219:18:84"
                        },
                        "nativeSrc": "12219:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "12219:18:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "diff",
                        "nativeSrc": "12208:4:84",
                        "nodeType": "YulIdentifier",
                        "src": "12208:4:84"
                      },
                      {
                        "name": "x",
                        "nativeSrc": "12214:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "12214:1:84"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "12205:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "12205:2:84"
                    },
                    "nativeSrc": "12205:11:84",
                    "nodeType": "YulFunctionCall",
                    "src": "12205:11:84"
                  },
                  "nativeSrc": "12202:37:84",
                  "nodeType": "YulIf",
                  "src": "12202:37:84"
                }
              ]
            },
            "name": "checked_sub_t_uint256",
            "nativeSrc": "12117:128:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "12148:1:84",
                "nodeType": "YulTypedName",
                "src": "12148:1:84",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "12151:1:84",
                "nodeType": "YulTypedName",
                "src": "12151:1:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nativeSrc": "12157:4:84",
                "nodeType": "YulTypedName",
                "src": "12157:4:84",
                "type": ""
              }
            ],
            "src": "12117:128:84"
          },
          {
            "body": {
              "nativeSrc": "12379:119:84",
              "nodeType": "YulBlock",
              "src": "12379:119:84",
              "statements": [
                {
                  "nativeSrc": "12389:26:84",
                  "nodeType": "YulAssignment",
                  "src": "12389:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "12401:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "12401:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "12412:2:84",
                        "nodeType": "YulLiteral",
                        "src": "12412:2:84",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "12397:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "12397:3:84"
                    },
                    "nativeSrc": "12397:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "12397:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "12389:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "12389:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "12431:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "12431:9:84"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "12442:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "12442:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "12424:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "12424:6:84"
                    },
                    "nativeSrc": "12424:25:84",
                    "nodeType": "YulFunctionCall",
                    "src": "12424:25:84"
                  },
                  "nativeSrc": "12424:25:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "12424:25:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "12469:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "12469:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "12480:2:84",
                            "nodeType": "YulLiteral",
                            "src": "12480:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "12465:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "12465:3:84"
                        },
                        "nativeSrc": "12465:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "12465:18:84"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "12485:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "12485:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "12458:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "12458:6:84"
                    },
                    "nativeSrc": "12458:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "12458:34:84"
                  },
                  "nativeSrc": "12458:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "12458:34:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed",
            "nativeSrc": "12250:248:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "12340:9:84",
                "nodeType": "YulTypedName",
                "src": "12340:9:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "12351:6:84",
                "nodeType": "YulTypedName",
                "src": "12351:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "12359:6:84",
                "nodeType": "YulTypedName",
                "src": "12359:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "12370:4:84",
                "nodeType": "YulTypedName",
                "src": "12370:4:84",
                "type": ""
              }
            ],
            "src": "12250:248:84"
          },
          {
            "body": {
              "nativeSrc": "12630:132:84",
              "nodeType": "YulBlock",
              "src": "12630:132:84",
              "statements": [
                {
                  "nativeSrc": "12640:26:84",
                  "nodeType": "YulAssignment",
                  "src": "12640:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "12652:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "12652:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "12663:2:84",
                        "nodeType": "YulLiteral",
                        "src": "12663:2:84",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "12648:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "12648:3:84"
                    },
                    "nativeSrc": "12648:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "12648:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "12640:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "12640:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "12682:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "12682:9:84"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "12693:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "12693:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "12675:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "12675:6:84"
                    },
                    "nativeSrc": "12675:25:84",
                    "nodeType": "YulFunctionCall",
                    "src": "12675:25:84"
                  },
                  "nativeSrc": "12675:25:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "12675:25:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "12720:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "12720:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "12731:2:84",
                            "nodeType": "YulLiteral",
                            "src": "12731:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "12716:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "12716:3:84"
                        },
                        "nativeSrc": "12716:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "12716:18:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "12740:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "12740:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "12748:6:84",
                            "nodeType": "YulLiteral",
                            "src": "12748:6:84",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "12736:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "12736:3:84"
                        },
                        "nativeSrc": "12736:19:84",
                        "nodeType": "YulFunctionCall",
                        "src": "12736:19:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "12709:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "12709:6:84"
                    },
                    "nativeSrc": "12709:47:84",
                    "nodeType": "YulFunctionCall",
                    "src": "12709:47:84"
                  },
                  "nativeSrc": "12709:47:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "12709:47:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_uint16__to_t_uint256_t_uint16__fromStack_reversed",
            "nativeSrc": "12503:259:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "12591:9:84",
                "nodeType": "YulTypedName",
                "src": "12591:9:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "12602:6:84",
                "nodeType": "YulTypedName",
                "src": "12602:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "12610:6:84",
                "nodeType": "YulTypedName",
                "src": "12610:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "12621:4:84",
                "nodeType": "YulTypedName",
                "src": "12621:4:84",
                "type": ""
              }
            ],
            "src": "12503:259:84"
          },
          {
            "body": {
              "nativeSrc": "12814:121:84",
              "nodeType": "YulBlock",
              "src": "12814:121:84",
              "statements": [
                {
                  "nativeSrc": "12824:16:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "12824:16:84",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "12834:6:84",
                    "nodeType": "YulLiteral",
                    "src": "12834:6:84",
                    "type": "",
                    "value": "0xffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "12828:2:84",
                      "nodeType": "YulTypedName",
                      "src": "12828:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "12849:34:84",
                  "nodeType": "YulAssignment",
                  "src": "12849:34:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "x",
                            "nativeSrc": "12864:1:84",
                            "nodeType": "YulIdentifier",
                            "src": "12864:1:84"
                          },
                          {
                            "name": "_1",
                            "nativeSrc": "12867:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "12867:2:84"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "12860:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "12860:3:84"
                        },
                        "nativeSrc": "12860:10:84",
                        "nodeType": "YulFunctionCall",
                        "src": "12860:10:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "y",
                            "nativeSrc": "12876:1:84",
                            "nodeType": "YulIdentifier",
                            "src": "12876:1:84"
                          },
                          {
                            "name": "_1",
                            "nativeSrc": "12879:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "12879:2:84"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "12872:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "12872:3:84"
                        },
                        "nativeSrc": "12872:10:84",
                        "nodeType": "YulFunctionCall",
                        "src": "12872:10:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "12856:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "12856:3:84"
                    },
                    "nativeSrc": "12856:27:84",
                    "nodeType": "YulFunctionCall",
                    "src": "12856:27:84"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nativeSrc": "12849:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "12849:3:84"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "12907:22:84",
                    "nodeType": "YulBlock",
                    "src": "12907:22:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "12909:16:84",
                            "nodeType": "YulIdentifier",
                            "src": "12909:16:84"
                          },
                          "nativeSrc": "12909:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "12909:18:84"
                        },
                        "nativeSrc": "12909:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "12909:18:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "sum",
                        "nativeSrc": "12898:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "12898:3:84"
                      },
                      {
                        "name": "_1",
                        "nativeSrc": "12903:2:84",
                        "nodeType": "YulIdentifier",
                        "src": "12903:2:84"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "12895:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "12895:2:84"
                    },
                    "nativeSrc": "12895:11:84",
                    "nodeType": "YulFunctionCall",
                    "src": "12895:11:84"
                  },
                  "nativeSrc": "12892:37:84",
                  "nodeType": "YulIf",
                  "src": "12892:37:84"
                }
              ]
            },
            "name": "checked_add_t_uint16",
            "nativeSrc": "12767:168:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "12797:1:84",
                "nodeType": "YulTypedName",
                "src": "12797:1:84",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "12800:1:84",
                "nodeType": "YulTypedName",
                "src": "12800:1:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nativeSrc": "12806:3:84",
                "nodeType": "YulTypedName",
                "src": "12806:3:84",
                "type": ""
              }
            ],
            "src": "12767:168:84"
          },
          {
            "body": {
              "nativeSrc": "12992:116:84",
              "nodeType": "YulBlock",
              "src": "12992:116:84",
              "statements": [
                {
                  "nativeSrc": "13002:20:84",
                  "nodeType": "YulAssignment",
                  "src": "13002:20:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nativeSrc": "13017:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "13017:1:84"
                      },
                      {
                        "name": "y",
                        "nativeSrc": "13020:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "13020:1:84"
                      }
                    ],
                    "functionName": {
                      "name": "mul",
                      "nativeSrc": "13013:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "13013:3:84"
                    },
                    "nativeSrc": "13013:9:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13013:9:84"
                  },
                  "variableNames": [
                    {
                      "name": "product",
                      "nativeSrc": "13002:7:84",
                      "nodeType": "YulIdentifier",
                      "src": "13002:7:84"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "13080:22:84",
                    "nodeType": "YulBlock",
                    "src": "13080:22:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "13082:16:84",
                            "nodeType": "YulIdentifier",
                            "src": "13082:16:84"
                          },
                          "nativeSrc": "13082:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "13082:18:84"
                        },
                        "nativeSrc": "13082:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "13082:18:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "x",
                                "nativeSrc": "13051:1:84",
                                "nodeType": "YulIdentifier",
                                "src": "13051:1:84"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nativeSrc": "13044:6:84",
                              "nodeType": "YulIdentifier",
                              "src": "13044:6:84"
                            },
                            "nativeSrc": "13044:9:84",
                            "nodeType": "YulFunctionCall",
                            "src": "13044:9:84"
                          },
                          {
                            "arguments": [
                              {
                                "name": "y",
                                "nativeSrc": "13058:1:84",
                                "nodeType": "YulIdentifier",
                                "src": "13058:1:84"
                              },
                              {
                                "arguments": [
                                  {
                                    "name": "product",
                                    "nativeSrc": "13065:7:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "13065:7:84"
                                  },
                                  {
                                    "name": "x",
                                    "nativeSrc": "13074:1:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "13074:1:84"
                                  }
                                ],
                                "functionName": {
                                  "name": "div",
                                  "nativeSrc": "13061:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "13061:3:84"
                                },
                                "nativeSrc": "13061:15:84",
                                "nodeType": "YulFunctionCall",
                                "src": "13061:15:84"
                              }
                            ],
                            "functionName": {
                              "name": "eq",
                              "nativeSrc": "13055:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "13055:2:84"
                            },
                            "nativeSrc": "13055:22:84",
                            "nodeType": "YulFunctionCall",
                            "src": "13055:22:84"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nativeSrc": "13041:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "13041:2:84"
                        },
                        "nativeSrc": "13041:37:84",
                        "nodeType": "YulFunctionCall",
                        "src": "13041:37:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "13034:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "13034:6:84"
                    },
                    "nativeSrc": "13034:45:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13034:45:84"
                  },
                  "nativeSrc": "13031:71:84",
                  "nodeType": "YulIf",
                  "src": "13031:71:84"
                }
              ]
            },
            "name": "checked_mul_t_uint256",
            "nativeSrc": "12940:168:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "12971:1:84",
                "nodeType": "YulTypedName",
                "src": "12971:1:84",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "12974:1:84",
                "nodeType": "YulTypedName",
                "src": "12974:1:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "product",
                "nativeSrc": "12980:7:84",
                "nodeType": "YulTypedName",
                "src": "12980:7:84",
                "type": ""
              }
            ],
            "src": "12940:168:84"
          },
          {
            "body": {
              "nativeSrc": "13159:74:84",
              "nodeType": "YulBlock",
              "src": "13159:74:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "13182:22:84",
                    "nodeType": "YulBlock",
                    "src": "13182:22:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x12",
                            "nativeSrc": "13184:16:84",
                            "nodeType": "YulIdentifier",
                            "src": "13184:16:84"
                          },
                          "nativeSrc": "13184:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "13184:18:84"
                        },
                        "nativeSrc": "13184:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "13184:18:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "y",
                        "nativeSrc": "13179:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "13179:1:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "13172:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "13172:6:84"
                    },
                    "nativeSrc": "13172:9:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13172:9:84"
                  },
                  "nativeSrc": "13169:35:84",
                  "nodeType": "YulIf",
                  "src": "13169:35:84"
                },
                {
                  "nativeSrc": "13213:14:84",
                  "nodeType": "YulAssignment",
                  "src": "13213:14:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nativeSrc": "13222:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "13222:1:84"
                      },
                      {
                        "name": "y",
                        "nativeSrc": "13225:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "13225:1:84"
                      }
                    ],
                    "functionName": {
                      "name": "div",
                      "nativeSrc": "13218:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "13218:3:84"
                    },
                    "nativeSrc": "13218:9:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13218:9:84"
                  },
                  "variableNames": [
                    {
                      "name": "r",
                      "nativeSrc": "13213:1:84",
                      "nodeType": "YulIdentifier",
                      "src": "13213:1:84"
                    }
                  ]
                }
              ]
            },
            "name": "checked_div_t_uint256",
            "nativeSrc": "13113:120:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "13144:1:84",
                "nodeType": "YulTypedName",
                "src": "13144:1:84",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "13147:1:84",
                "nodeType": "YulTypedName",
                "src": "13147:1:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "r",
                "nativeSrc": "13153:1:84",
                "nodeType": "YulTypedName",
                "src": "13153:1:84",
                "type": ""
              }
            ],
            "src": "13113:120:84"
          },
          {
            "body": {
              "nativeSrc": "13270:95:84",
              "nodeType": "YulBlock",
              "src": "13270:95:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "13287:1:84",
                        "nodeType": "YulLiteral",
                        "src": "13287:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "13294:3:84",
                            "nodeType": "YulLiteral",
                            "src": "13294:3:84",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13299:10:84",
                            "nodeType": "YulLiteral",
                            "src": "13299:10:84",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "13290:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "13290:3:84"
                        },
                        "nativeSrc": "13290:20:84",
                        "nodeType": "YulFunctionCall",
                        "src": "13290:20:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "13280:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "13280:6:84"
                    },
                    "nativeSrc": "13280:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13280:31:84"
                  },
                  "nativeSrc": "13280:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "13280:31:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "13327:1:84",
                        "nodeType": "YulLiteral",
                        "src": "13327:1:84",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "13330:4:84",
                        "nodeType": "YulLiteral",
                        "src": "13330:4:84",
                        "type": "",
                        "value": "0x01"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "13320:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "13320:6:84"
                    },
                    "nativeSrc": "13320:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13320:15:84"
                  },
                  "nativeSrc": "13320:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "13320:15:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "13351:1:84",
                        "nodeType": "YulLiteral",
                        "src": "13351:1:84",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "13354:4:84",
                        "nodeType": "YulLiteral",
                        "src": "13354:4:84",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "13344:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "13344:6:84"
                    },
                    "nativeSrc": "13344:15:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13344:15:84"
                  },
                  "nativeSrc": "13344:15:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "13344:15:84"
                }
              ]
            },
            "name": "panic_error_0x01",
            "nativeSrc": "13238:127:84",
            "nodeType": "YulFunctionDefinition",
            "src": "13238:127:84"
          },
          {
            "body": {
              "nativeSrc": "13413:71:84",
              "nodeType": "YulBlock",
              "src": "13413:71:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "13462:16:84",
                    "nodeType": "YulBlock",
                    "src": "13462:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "13471:1:84",
                              "nodeType": "YulLiteral",
                              "src": "13471:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "13474:1:84",
                              "nodeType": "YulLiteral",
                              "src": "13474:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "13464:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "13464:6:84"
                          },
                          "nativeSrc": "13464:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "13464:12:84"
                        },
                        "nativeSrc": "13464:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "13464:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "13436:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "13436:5:84"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "13447:5:84",
                                "nodeType": "YulIdentifier",
                                "src": "13447:5:84"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "13454:4:84",
                                "nodeType": "YulLiteral",
                                "src": "13454:4:84",
                                "type": "",
                                "value": "0xff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "13443:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "13443:3:84"
                            },
                            "nativeSrc": "13443:16:84",
                            "nodeType": "YulFunctionCall",
                            "src": "13443:16:84"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "13433:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "13433:2:84"
                        },
                        "nativeSrc": "13433:27:84",
                        "nodeType": "YulFunctionCall",
                        "src": "13433:27:84"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "13426:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "13426:6:84"
                    },
                    "nativeSrc": "13426:35:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13426:35:84"
                  },
                  "nativeSrc": "13423:55:84",
                  "nodeType": "YulIf",
                  "src": "13423:55:84"
                }
              ]
            },
            "name": "validator_revert_uint8",
            "nativeSrc": "13370:114:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "13402:5:84",
                "nodeType": "YulTypedName",
                "src": "13402:5:84",
                "type": ""
              }
            ],
            "src": "13370:114:84"
          },
          {
            "body": {
              "nativeSrc": "13620:411:84",
              "nodeType": "YulBlock",
              "src": "13620:411:84",
              "statements": [
                {
                  "nativeSrc": "13630:34:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "13630:34:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "13658:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "13658:5:84"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "13645:12:84",
                      "nodeType": "YulIdentifier",
                      "src": "13645:12:84"
                    },
                    "nativeSrc": "13645:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13645:19:84"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "13634:7:84",
                      "nodeType": "YulTypedName",
                      "src": "13634:7:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "13696:7:84",
                        "nodeType": "YulIdentifier",
                        "src": "13696:7:84"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint8",
                      "nativeSrc": "13673:22:84",
                      "nodeType": "YulIdentifier",
                      "src": "13673:22:84"
                    },
                    "nativeSrc": "13673:31:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13673:31:84"
                  },
                  "nativeSrc": "13673:31:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "13673:31:84"
                },
                {
                  "nativeSrc": "13713:28:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "13713:28:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "13727:7:84",
                        "nodeType": "YulIdentifier",
                        "src": "13727:7:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "13736:4:84",
                        "nodeType": "YulLiteral",
                        "src": "13736:4:84",
                        "type": "",
                        "value": "0xff"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nativeSrc": "13723:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "13723:3:84"
                    },
                    "nativeSrc": "13723:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13723:18:84"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "13717:2:84",
                      "nodeType": "YulTypedName",
                      "src": "13717:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "13750:21:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "13750:21:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "13766:4:84",
                        "nodeType": "YulIdentifier",
                        "src": "13766:4:84"
                      }
                    ],
                    "functionName": {
                      "name": "sload",
                      "nativeSrc": "13760:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "13760:5:84"
                    },
                    "nativeSrc": "13760:11:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13760:11:84"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nativeSrc": "13754:2:84",
                      "nodeType": "YulTypedName",
                      "src": "13754:2:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "13787:4:84",
                        "nodeType": "YulIdentifier",
                        "src": "13787:4:84"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nativeSrc": "13800:2:84",
                                "nodeType": "YulIdentifier",
                                "src": "13800:2:84"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "13808:3:84",
                                    "nodeType": "YulLiteral",
                                    "src": "13808:3:84",
                                    "type": "",
                                    "value": "255"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "13804:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "13804:3:84"
                                },
                                "nativeSrc": "13804:8:84",
                                "nodeType": "YulFunctionCall",
                                "src": "13804:8:84"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "13796:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "13796:3:84"
                            },
                            "nativeSrc": "13796:17:84",
                            "nodeType": "YulFunctionCall",
                            "src": "13796:17:84"
                          },
                          {
                            "name": "_1",
                            "nativeSrc": "13815:2:84",
                            "nodeType": "YulIdentifier",
                            "src": "13815:2:84"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nativeSrc": "13793:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "13793:2:84"
                        },
                        "nativeSrc": "13793:25:84",
                        "nodeType": "YulFunctionCall",
                        "src": "13793:25:84"
                      }
                    ],
                    "functionName": {
                      "name": "sstore",
                      "nativeSrc": "13780:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "13780:6:84"
                    },
                    "nativeSrc": "13780:39:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13780:39:84"
                  },
                  "nativeSrc": "13780:39:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "13780:39:84"
                },
                {
                  "nativeSrc": "13828:43:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "13828:43:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "13860:5:84",
                            "nodeType": "YulIdentifier",
                            "src": "13860:5:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13867:2:84",
                            "nodeType": "YulLiteral",
                            "src": "13867:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "13856:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "13856:3:84"
                        },
                        "nativeSrc": "13856:14:84",
                        "nodeType": "YulFunctionCall",
                        "src": "13856:14:84"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "13843:12:84",
                      "nodeType": "YulIdentifier",
                      "src": "13843:12:84"
                    },
                    "nativeSrc": "13843:28:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13843:28:84"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nativeSrc": "13832:7:84",
                      "nodeType": "YulTypedName",
                      "src": "13832:7:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_2",
                        "nativeSrc": "13904:7:84",
                        "nodeType": "YulIdentifier",
                        "src": "13904:7:84"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "13880:23:84",
                      "nodeType": "YulIdentifier",
                      "src": "13880:23:84"
                    },
                    "nativeSrc": "13880:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13880:32:84"
                  },
                  "nativeSrc": "13880:32:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "13880:32:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "13928:4:84",
                        "nodeType": "YulIdentifier",
                        "src": "13928:4:84"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "_2",
                                    "nativeSrc": "13944:2:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "13944:2:84"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nativeSrc": "13952:20:84",
                                        "nodeType": "YulLiteral",
                                        "src": "13952:20:84",
                                        "type": "",
                                        "value": "0xffffffffffffffffff"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "not",
                                      "nativeSrc": "13948:3:84",
                                      "nodeType": "YulIdentifier",
                                      "src": "13948:3:84"
                                    },
                                    "nativeSrc": "13948:25:84",
                                    "nodeType": "YulFunctionCall",
                                    "src": "13948:25:84"
                                  }
                                ],
                                "functionName": {
                                  "name": "and",
                                  "nativeSrc": "13940:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "13940:3:84"
                                },
                                "nativeSrc": "13940:34:84",
                                "nodeType": "YulFunctionCall",
                                "src": "13940:34:84"
                              },
                              {
                                "name": "_1",
                                "nativeSrc": "13976:2:84",
                                "nodeType": "YulIdentifier",
                                "src": "13976:2:84"
                              }
                            ],
                            "functionName": {
                              "name": "or",
                              "nativeSrc": "13937:2:84",
                              "nodeType": "YulIdentifier",
                              "src": "13937:2:84"
                            },
                            "nativeSrc": "13937:42:84",
                            "nodeType": "YulFunctionCall",
                            "src": "13937:42:84"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "13989:1:84",
                                    "nodeType": "YulLiteral",
                                    "src": "13989:1:84",
                                    "type": "",
                                    "value": "8"
                                  },
                                  {
                                    "name": "value_2",
                                    "nativeSrc": "13992:7:84",
                                    "nodeType": "YulIdentifier",
                                    "src": "13992:7:84"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "13985:3:84",
                                  "nodeType": "YulIdentifier",
                                  "src": "13985:3:84"
                                },
                                "nativeSrc": "13985:15:84",
                                "nodeType": "YulFunctionCall",
                                "src": "13985:15:84"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "14002:20:84",
                                "nodeType": "YulLiteral",
                                "src": "14002:20:84",
                                "type": "",
                                "value": "0xffffffffffffffff00"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "13981:3:84",
                              "nodeType": "YulIdentifier",
                              "src": "13981:3:84"
                            },
                            "nativeSrc": "13981:42:84",
                            "nodeType": "YulFunctionCall",
                            "src": "13981:42:84"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nativeSrc": "13934:2:84",
                          "nodeType": "YulIdentifier",
                          "src": "13934:2:84"
                        },
                        "nativeSrc": "13934:90:84",
                        "nodeType": "YulFunctionCall",
                        "src": "13934:90:84"
                      }
                    ],
                    "functionName": {
                      "name": "sstore",
                      "nativeSrc": "13921:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "13921:6:84"
                    },
                    "nativeSrc": "13921:104:84",
                    "nodeType": "YulFunctionCall",
                    "src": "13921:104:84"
                  },
                  "nativeSrc": "13921:104:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "13921:104:84"
                }
              ]
            },
            "name": "update_storage_value_offset_0t_struct$_RadonSLA_$23503_calldata_ptr_to_t_struct$_RadonSLA_$23503_storage",
            "nativeSrc": "13489:542:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "slot",
                "nativeSrc": "13603:4:84",
                "nodeType": "YulTypedName",
                "src": "13603:4:84",
                "type": ""
              },
              {
                "name": "value",
                "nativeSrc": "13609:5:84",
                "nodeType": "YulTypedName",
                "src": "13609:5:84",
                "type": ""
              }
            ],
            "src": "13489:542:84"
          },
          {
            "body": {
              "nativeSrc": "14210:240:84",
              "nodeType": "YulBlock",
              "src": "14210:240:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "14227:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "14227:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "14238:2:84",
                        "nodeType": "YulLiteral",
                        "src": "14238:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14220:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "14220:6:84"
                    },
                    "nativeSrc": "14220:21:84",
                    "nodeType": "YulFunctionCall",
                    "src": "14220:21:84"
                  },
                  "nativeSrc": "14220:21:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "14220:21:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "14261:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "14261:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "14272:2:84",
                            "nodeType": "YulLiteral",
                            "src": "14272:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "14257:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "14257:3:84"
                        },
                        "nativeSrc": "14257:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "14257:18:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "14277:2:84",
                        "nodeType": "YulLiteral",
                        "src": "14277:2:84",
                        "type": "",
                        "value": "50"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14250:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "14250:6:84"
                    },
                    "nativeSrc": "14250:30:84",
                    "nodeType": "YulFunctionCall",
                    "src": "14250:30:84"
                  },
                  "nativeSrc": "14250:30:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "14250:30:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "14300:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "14300:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "14311:2:84",
                            "nodeType": "YulLiteral",
                            "src": "14311:2:84",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "14296:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "14296:3:84"
                        },
                        "nativeSrc": "14296:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "14296:18:84"
                      },
                      {
                        "hexValue": "5769746e65743a20747269656420746f206465636f64652076616c7565206672",
                        "kind": "string",
                        "nativeSrc": "14316:34:84",
                        "nodeType": "YulLiteral",
                        "src": "14316:34:84",
                        "type": "",
                        "value": "Witnet: tried to decode value fr"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14289:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "14289:6:84"
                    },
                    "nativeSrc": "14289:62:84",
                    "nodeType": "YulFunctionCall",
                    "src": "14289:62:84"
                  },
                  "nativeSrc": "14289:62:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "14289:62:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "14371:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "14371:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "14382:2:84",
                            "nodeType": "YulLiteral",
                            "src": "14382:2:84",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "14367:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "14367:3:84"
                        },
                        "nativeSrc": "14367:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "14367:18:84"
                      },
                      {
                        "hexValue": "6f6d206572726f72656420726573756c742e",
                        "kind": "string",
                        "nativeSrc": "14387:20:84",
                        "nodeType": "YulLiteral",
                        "src": "14387:20:84",
                        "type": "",
                        "value": "om errored result."
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14360:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "14360:6:84"
                    },
                    "nativeSrc": "14360:48:84",
                    "nodeType": "YulFunctionCall",
                    "src": "14360:48:84"
                  },
                  "nativeSrc": "14360:48:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "14360:48:84"
                },
                {
                  "nativeSrc": "14417:27:84",
                  "nodeType": "YulAssignment",
                  "src": "14417:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "14429:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "14429:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "14440:3:84",
                        "nodeType": "YulLiteral",
                        "src": "14440:3:84",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "14425:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "14425:3:84"
                    },
                    "nativeSrc": "14425:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "14425:19:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "14417:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "14417:4:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c540643114d8824fc67c5a3bcabc32e042f198b987f1133b221fc24db5c15b9a__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "14036:414:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "14187:9:84",
                "nodeType": "YulTypedName",
                "src": "14187:9:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "14201:4:84",
                "nodeType": "YulTypedName",
                "src": "14201:4:84",
                "type": ""
              }
            ],
            "src": "14036:414:84"
          },
          {
            "body": {
              "nativeSrc": "14584:119:84",
              "nodeType": "YulBlock",
              "src": "14584:119:84",
              "statements": [
                {
                  "nativeSrc": "14594:26:84",
                  "nodeType": "YulAssignment",
                  "src": "14594:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "14606:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "14606:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "14617:2:84",
                        "nodeType": "YulLiteral",
                        "src": "14617:2:84",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "14602:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "14602:3:84"
                    },
                    "nativeSrc": "14602:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "14602:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "14594:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "14594:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "14636:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "14636:9:84"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "14647:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "14647:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14629:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "14629:6:84"
                    },
                    "nativeSrc": "14629:25:84",
                    "nodeType": "YulFunctionCall",
                    "src": "14629:25:84"
                  },
                  "nativeSrc": "14629:25:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "14629:25:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "14674:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "14674:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "14685:2:84",
                            "nodeType": "YulLiteral",
                            "src": "14685:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "14670:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "14670:3:84"
                        },
                        "nativeSrc": "14670:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "14670:18:84"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "14690:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "14690:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14663:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "14663:6:84"
                    },
                    "nativeSrc": "14663:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "14663:34:84"
                  },
                  "nativeSrc": "14663:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "14663:34:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed",
            "nativeSrc": "14455:248:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "14545:9:84",
                "nodeType": "YulTypedName",
                "src": "14545:9:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "14556:6:84",
                "nodeType": "YulTypedName",
                "src": "14556:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "14564:6:84",
                "nodeType": "YulTypedName",
                "src": "14564:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "14575:4:84",
                "nodeType": "YulTypedName",
                "src": "14575:4:84",
                "type": ""
              }
            ],
            "src": "14455:248:84"
          },
          {
            "body": {
              "nativeSrc": "14882:231:84",
              "nodeType": "YulBlock",
              "src": "14882:231:84",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "14899:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "14899:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "14910:2:84",
                        "nodeType": "YulLiteral",
                        "src": "14910:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14892:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "14892:6:84"
                    },
                    "nativeSrc": "14892:21:84",
                    "nodeType": "YulFunctionCall",
                    "src": "14892:21:84"
                  },
                  "nativeSrc": "14892:21:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "14892:21:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "14933:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "14933:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "14944:2:84",
                            "nodeType": "YulLiteral",
                            "src": "14944:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "14929:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "14929:3:84"
                        },
                        "nativeSrc": "14929:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "14929:18:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "14949:2:84",
                        "nodeType": "YulLiteral",
                        "src": "14949:2:84",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14922:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "14922:6:84"
                    },
                    "nativeSrc": "14922:30:84",
                    "nodeType": "YulFunctionCall",
                    "src": "14922:30:84"
                  },
                  "nativeSrc": "14922:30:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "14922:30:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "14972:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "14972:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "14983:2:84",
                            "nodeType": "YulLiteral",
                            "src": "14983:2:84",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "14968:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "14968:3:84"
                        },
                        "nativeSrc": "14968:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "14968:18:84"
                      },
                      {
                        "hexValue": "4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520",
                        "kind": "string",
                        "nativeSrc": "14988:34:84",
                        "nodeType": "YulLiteral",
                        "src": "14988:34:84",
                        "type": "",
                        "value": "Ownable2Step: caller is not the "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14961:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "14961:6:84"
                    },
                    "nativeSrc": "14961:62:84",
                    "nodeType": "YulFunctionCall",
                    "src": "14961:62:84"
                  },
                  "nativeSrc": "14961:62:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "14961:62:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "15043:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "15043:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "15054:2:84",
                            "nodeType": "YulLiteral",
                            "src": "15054:2:84",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "15039:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "15039:3:84"
                        },
                        "nativeSrc": "15039:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "15039:18:84"
                      },
                      {
                        "hexValue": "6e6577206f776e6572",
                        "kind": "string",
                        "nativeSrc": "15059:11:84",
                        "nodeType": "YulLiteral",
                        "src": "15059:11:84",
                        "type": "",
                        "value": "new owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "15032:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "15032:6:84"
                    },
                    "nativeSrc": "15032:39:84",
                    "nodeType": "YulFunctionCall",
                    "src": "15032:39:84"
                  },
                  "nativeSrc": "15032:39:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "15032:39:84"
                },
                {
                  "nativeSrc": "15080:27:84",
                  "nodeType": "YulAssignment",
                  "src": "15080:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "15092:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "15092:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "15103:3:84",
                        "nodeType": "YulLiteral",
                        "src": "15103:3:84",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "15088:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "15088:3:84"
                    },
                    "nativeSrc": "15088:19:84",
                    "nodeType": "YulFunctionCall",
                    "src": "15088:19:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "15080:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "15080:4:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "14708:405:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "14859:9:84",
                "nodeType": "YulTypedName",
                "src": "14859:9:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "14873:4:84",
                "nodeType": "YulTypedName",
                "src": "14873:4:84",
                "type": ""
              }
            ],
            "src": "14708:405:84"
          },
          {
            "body": {
              "nativeSrc": "15208:245:84",
              "nodeType": "YulBlock",
              "src": "15208:245:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "15254:16:84",
                    "nodeType": "YulBlock",
                    "src": "15254:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "15263:1:84",
                              "nodeType": "YulLiteral",
                              "src": "15263:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "15266:1:84",
                              "nodeType": "YulLiteral",
                              "src": "15266:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "15256:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "15256:6:84"
                          },
                          "nativeSrc": "15256:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "15256:12:84"
                        },
                        "nativeSrc": "15256:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "15256:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "15229:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "15229:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "15238:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "15238:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "15225:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "15225:3:84"
                        },
                        "nativeSrc": "15225:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "15225:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "15250:2:84",
                        "nodeType": "YulLiteral",
                        "src": "15250:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "15221:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "15221:3:84"
                    },
                    "nativeSrc": "15221:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "15221:32:84"
                  },
                  "nativeSrc": "15218:52:84",
                  "nodeType": "YulIf",
                  "src": "15218:52:84"
                },
                {
                  "nativeSrc": "15279:30:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "15279:30:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "15299:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "15299:9:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "15293:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "15293:5:84"
                    },
                    "nativeSrc": "15293:16:84",
                    "nodeType": "YulFunctionCall",
                    "src": "15293:16:84"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "15283:6:84",
                      "nodeType": "YulTypedName",
                      "src": "15283:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "15352:16:84",
                    "nodeType": "YulBlock",
                    "src": "15352:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "15361:1:84",
                              "nodeType": "YulLiteral",
                              "src": "15361:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "15364:1:84",
                              "nodeType": "YulLiteral",
                              "src": "15364:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "15354:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "15354:6:84"
                          },
                          "nativeSrc": "15354:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "15354:12:84"
                        },
                        "nativeSrc": "15354:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "15354:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "15324:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "15324:6:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "15332:18:84",
                        "nodeType": "YulLiteral",
                        "src": "15332:18:84",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "15321:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "15321:2:84"
                    },
                    "nativeSrc": "15321:30:84",
                    "nodeType": "YulFunctionCall",
                    "src": "15321:30:84"
                  },
                  "nativeSrc": "15318:50:84",
                  "nodeType": "YulIf",
                  "src": "15318:50:84"
                },
                {
                  "nativeSrc": "15377:70:84",
                  "nodeType": "YulAssignment",
                  "src": "15377:70:84",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "15419:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "15419:9:84"
                          },
                          {
                            "name": "offset",
                            "nativeSrc": "15430:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "15430:6:84"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "15415:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "15415:3:84"
                        },
                        "nativeSrc": "15415:22:84",
                        "nodeType": "YulFunctionCall",
                        "src": "15415:22:84"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "15439:7:84",
                        "nodeType": "YulIdentifier",
                        "src": "15439:7:84"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes_fromMemory",
                      "nativeSrc": "15387:27:84",
                      "nodeType": "YulIdentifier",
                      "src": "15387:27:84"
                    },
                    "nativeSrc": "15387:60:84",
                    "nodeType": "YulFunctionCall",
                    "src": "15387:60:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "15377:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "15377:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes_memory_ptr_fromMemory",
            "nativeSrc": "15118:335:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "15174:9:84",
                "nodeType": "YulTypedName",
                "src": "15174:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "15185:7:84",
                "nodeType": "YulTypedName",
                "src": "15185:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "15197:6:84",
                "nodeType": "YulTypedName",
                "src": "15197:6:84",
                "type": ""
              }
            ],
            "src": "15118:335:84"
          },
          {
            "body": {
              "nativeSrc": "15527:176:84",
              "nodeType": "YulBlock",
              "src": "15527:176:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "15573:16:84",
                    "nodeType": "YulBlock",
                    "src": "15573:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "15582:1:84",
                              "nodeType": "YulLiteral",
                              "src": "15582:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "15585:1:84",
                              "nodeType": "YulLiteral",
                              "src": "15585:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "15575:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "15575:6:84"
                          },
                          "nativeSrc": "15575:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "15575:12:84"
                        },
                        "nativeSrc": "15575:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "15575:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "15548:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "15548:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "15557:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "15557:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "15544:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "15544:3:84"
                        },
                        "nativeSrc": "15544:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "15544:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "15569:2:84",
                        "nodeType": "YulLiteral",
                        "src": "15569:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "15540:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "15540:3:84"
                    },
                    "nativeSrc": "15540:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "15540:32:84"
                  },
                  "nativeSrc": "15537:52:84",
                  "nodeType": "YulIf",
                  "src": "15537:52:84"
                },
                {
                  "nativeSrc": "15598:36:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "15598:36:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "15624:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "15624:9:84"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "15611:12:84",
                      "nodeType": "YulIdentifier",
                      "src": "15611:12:84"
                    },
                    "nativeSrc": "15611:23:84",
                    "nodeType": "YulFunctionCall",
                    "src": "15611:23:84"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "15602:5:84",
                      "nodeType": "YulTypedName",
                      "src": "15602:5:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "15667:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "15667:5:84"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "15643:23:84",
                      "nodeType": "YulIdentifier",
                      "src": "15643:23:84"
                    },
                    "nativeSrc": "15643:30:84",
                    "nodeType": "YulFunctionCall",
                    "src": "15643:30:84"
                  },
                  "nativeSrc": "15643:30:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "15643:30:84"
                },
                {
                  "nativeSrc": "15682:15:84",
                  "nodeType": "YulAssignment",
                  "src": "15682:15:84",
                  "value": {
                    "name": "value",
                    "nativeSrc": "15692:5:84",
                    "nodeType": "YulIdentifier",
                    "src": "15692:5:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "15682:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "15682:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint64",
            "nativeSrc": "15458:245:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "15493:9:84",
                "nodeType": "YulTypedName",
                "src": "15493:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "15504:7:84",
                "nodeType": "YulTypedName",
                "src": "15504:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "15516:6:84",
                "nodeType": "YulTypedName",
                "src": "15516:6:84",
                "type": ""
              }
            ],
            "src": "15458:245:84"
          },
          {
            "body": {
              "nativeSrc": "15776:175:84",
              "nodeType": "YulBlock",
              "src": "15776:175:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "15822:16:84",
                    "nodeType": "YulBlock",
                    "src": "15822:16:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "15831:1:84",
                              "nodeType": "YulLiteral",
                              "src": "15831:1:84",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "15834:1:84",
                              "nodeType": "YulLiteral",
                              "src": "15834:1:84",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "15824:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "15824:6:84"
                          },
                          "nativeSrc": "15824:12:84",
                          "nodeType": "YulFunctionCall",
                          "src": "15824:12:84"
                        },
                        "nativeSrc": "15824:12:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "15824:12:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "15797:7:84",
                            "nodeType": "YulIdentifier",
                            "src": "15797:7:84"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "15806:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "15806:9:84"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "15793:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "15793:3:84"
                        },
                        "nativeSrc": "15793:23:84",
                        "nodeType": "YulFunctionCall",
                        "src": "15793:23:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "15818:2:84",
                        "nodeType": "YulLiteral",
                        "src": "15818:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "15789:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "15789:3:84"
                    },
                    "nativeSrc": "15789:32:84",
                    "nodeType": "YulFunctionCall",
                    "src": "15789:32:84"
                  },
                  "nativeSrc": "15786:52:84",
                  "nodeType": "YulIf",
                  "src": "15786:52:84"
                },
                {
                  "nativeSrc": "15847:36:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "15847:36:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "15873:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "15873:9:84"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "15860:12:84",
                      "nodeType": "YulIdentifier",
                      "src": "15860:12:84"
                    },
                    "nativeSrc": "15860:23:84",
                    "nodeType": "YulFunctionCall",
                    "src": "15860:23:84"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "15851:5:84",
                      "nodeType": "YulTypedName",
                      "src": "15851:5:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "15915:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "15915:5:84"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint8",
                      "nativeSrc": "15892:22:84",
                      "nodeType": "YulIdentifier",
                      "src": "15892:22:84"
                    },
                    "nativeSrc": "15892:29:84",
                    "nodeType": "YulFunctionCall",
                    "src": "15892:29:84"
                  },
                  "nativeSrc": "15892:29:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "15892:29:84"
                },
                {
                  "nativeSrc": "15930:15:84",
                  "nodeType": "YulAssignment",
                  "src": "15930:15:84",
                  "value": {
                    "name": "value",
                    "nativeSrc": "15940:5:84",
                    "nodeType": "YulIdentifier",
                    "src": "15940:5:84"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "15930:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "15930:6:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint8",
            "nativeSrc": "15708:243:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "15742:9:84",
                "nodeType": "YulTypedName",
                "src": "15742:9:84",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "15753:7:84",
                "nodeType": "YulTypedName",
                "src": "15753:7:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "15765:6:84",
                "nodeType": "YulTypedName",
                "src": "15765:6:84",
                "type": ""
              }
            ],
            "src": "15708:243:84"
          },
          {
            "body": {
              "nativeSrc": "16003:88:84",
              "nodeType": "YulBlock",
              "src": "16003:88:84",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "16034:22:84",
                    "nodeType": "YulBlock",
                    "src": "16034:22:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "16036:16:84",
                            "nodeType": "YulIdentifier",
                            "src": "16036:16:84"
                          },
                          "nativeSrc": "16036:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "16036:18:84"
                        },
                        "nativeSrc": "16036:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "16036:18:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "16019:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "16019:5:84"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "16030:1:84",
                            "nodeType": "YulLiteral",
                            "src": "16030:1:84",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nativeSrc": "16026:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "16026:3:84"
                        },
                        "nativeSrc": "16026:6:84",
                        "nodeType": "YulFunctionCall",
                        "src": "16026:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nativeSrc": "16016:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "16016:2:84"
                    },
                    "nativeSrc": "16016:17:84",
                    "nodeType": "YulFunctionCall",
                    "src": "16016:17:84"
                  },
                  "nativeSrc": "16013:43:84",
                  "nodeType": "YulIf",
                  "src": "16013:43:84"
                },
                {
                  "nativeSrc": "16065:20:84",
                  "nodeType": "YulAssignment",
                  "src": "16065:20:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "16076:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "16076:5:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "16083:1:84",
                        "nodeType": "YulLiteral",
                        "src": "16083:1:84",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "16072:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "16072:3:84"
                    },
                    "nativeSrc": "16072:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "16072:13:84"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nativeSrc": "16065:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "16065:3:84"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nativeSrc": "15956:135:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "15985:5:84",
                "nodeType": "YulTypedName",
                "src": "15985:5:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nativeSrc": "15995:3:84",
                "nodeType": "YulTypedName",
                "src": "15995:3:84",
                "type": ""
              }
            ],
            "src": "15956:135:84"
          },
          {
            "body": {
              "nativeSrc": "16144:77:84",
              "nodeType": "YulBlock",
              "src": "16144:77:84",
              "statements": [
                {
                  "nativeSrc": "16154:16:84",
                  "nodeType": "YulAssignment",
                  "src": "16154:16:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nativeSrc": "16165:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "16165:1:84"
                      },
                      {
                        "name": "y",
                        "nativeSrc": "16168:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "16168:1:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "16161:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "16161:3:84"
                    },
                    "nativeSrc": "16161:9:84",
                    "nodeType": "YulFunctionCall",
                    "src": "16161:9:84"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nativeSrc": "16154:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "16154:3:84"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "16193:22:84",
                    "nodeType": "YulBlock",
                    "src": "16193:22:84",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "16195:16:84",
                            "nodeType": "YulIdentifier",
                            "src": "16195:16:84"
                          },
                          "nativeSrc": "16195:18:84",
                          "nodeType": "YulFunctionCall",
                          "src": "16195:18:84"
                        },
                        "nativeSrc": "16195:18:84",
                        "nodeType": "YulExpressionStatement",
                        "src": "16195:18:84"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "x",
                        "nativeSrc": "16185:1:84",
                        "nodeType": "YulIdentifier",
                        "src": "16185:1:84"
                      },
                      {
                        "name": "sum",
                        "nativeSrc": "16188:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "16188:3:84"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "16182:2:84",
                      "nodeType": "YulIdentifier",
                      "src": "16182:2:84"
                    },
                    "nativeSrc": "16182:10:84",
                    "nodeType": "YulFunctionCall",
                    "src": "16182:10:84"
                  },
                  "nativeSrc": "16179:36:84",
                  "nodeType": "YulIf",
                  "src": "16179:36:84"
                }
              ]
            },
            "name": "checked_add_t_uint256",
            "nativeSrc": "16096:125:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "16127:1:84",
                "nodeType": "YulTypedName",
                "src": "16127:1:84",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "16130:1:84",
                "nodeType": "YulTypedName",
                "src": "16130:1:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nativeSrc": "16136:3:84",
                "nodeType": "YulTypedName",
                "src": "16136:3:84",
                "type": ""
              }
            ],
            "src": "16096:125:84"
          },
          {
            "body": {
              "nativeSrc": "16325:87:84",
              "nodeType": "YulBlock",
              "src": "16325:87:84",
              "statements": [
                {
                  "nativeSrc": "16335:26:84",
                  "nodeType": "YulAssignment",
                  "src": "16335:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "16347:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "16347:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "16358:2:84",
                        "nodeType": "YulLiteral",
                        "src": "16358:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "16343:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "16343:3:84"
                    },
                    "nativeSrc": "16343:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "16343:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "16335:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "16335:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "16377:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "16377:9:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "16392:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "16392:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "16400:4:84",
                            "nodeType": "YulLiteral",
                            "src": "16400:4:84",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "16388:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "16388:3:84"
                        },
                        "nativeSrc": "16388:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "16388:17:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "16370:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "16370:6:84"
                    },
                    "nativeSrc": "16370:36:84",
                    "nodeType": "YulFunctionCall",
                    "src": "16370:36:84"
                  },
                  "nativeSrc": "16370:36:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "16370:36:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint8__to_t_uint256__fromStack_reversed",
            "nativeSrc": "16226:186:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "16294:9:84",
                "nodeType": "YulTypedName",
                "src": "16294:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "16305:6:84",
                "nodeType": "YulTypedName",
                "src": "16305:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "16316:4:84",
                "nodeType": "YulTypedName",
                "src": "16316:4:84",
                "type": ""
              }
            ],
            "src": "16226:186:84"
          },
          {
            "body": {
              "nativeSrc": "16542:141:84",
              "nodeType": "YulBlock",
              "src": "16542:141:84",
              "statements": [
                {
                  "nativeSrc": "16552:26:84",
                  "nodeType": "YulAssignment",
                  "src": "16552:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "16564:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "16564:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "16575:2:84",
                        "nodeType": "YulLiteral",
                        "src": "16575:2:84",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "16560:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "16560:3:84"
                    },
                    "nativeSrc": "16560:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "16560:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "16552:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "16552:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "16594:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "16594:9:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "16609:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "16609:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "16617:4:84",
                            "nodeType": "YulLiteral",
                            "src": "16617:4:84",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "16605:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "16605:3:84"
                        },
                        "nativeSrc": "16605:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "16605:17:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "16587:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "16587:6:84"
                    },
                    "nativeSrc": "16587:36:84",
                    "nodeType": "YulFunctionCall",
                    "src": "16587:36:84"
                  },
                  "nativeSrc": "16587:36:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "16587:36:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "16643:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "16643:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "16654:2:84",
                            "nodeType": "YulLiteral",
                            "src": "16654:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "16639:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "16639:3:84"
                        },
                        "nativeSrc": "16639:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "16639:18:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "16663:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "16663:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "16671:4:84",
                            "nodeType": "YulLiteral",
                            "src": "16671:4:84",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "16659:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "16659:3:84"
                        },
                        "nativeSrc": "16659:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "16659:17:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "16632:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "16632:6:84"
                    },
                    "nativeSrc": "16632:45:84",
                    "nodeType": "YulFunctionCall",
                    "src": "16632:45:84"
                  },
                  "nativeSrc": "16632:45:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "16632:45:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint8_t_uint8__to_t_uint256_t_uint256__fromStack_reversed",
            "nativeSrc": "16417:266:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "16503:9:84",
                "nodeType": "YulTypedName",
                "src": "16503:9:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "16514:6:84",
                "nodeType": "YulTypedName",
                "src": "16514:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "16522:6:84",
                "nodeType": "YulTypedName",
                "src": "16522:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "16533:4:84",
                "nodeType": "YulTypedName",
                "src": "16533:4:84",
                "type": ""
              }
            ],
            "src": "16417:266:84"
          },
          {
            "body": {
              "nativeSrc": "16825:150:84",
              "nodeType": "YulBlock",
              "src": "16825:150:84",
              "statements": [
                {
                  "nativeSrc": "16835:27:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "16835:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "16855:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "16855:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "16849:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "16849:5:84"
                    },
                    "nativeSrc": "16849:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "16849:13:84"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "16839:6:84",
                      "nodeType": "YulTypedName",
                      "src": "16839:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "16910:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "16910:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "16918:4:84",
                            "nodeType": "YulLiteral",
                            "src": "16918:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "16906:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "16906:3:84"
                        },
                        "nativeSrc": "16906:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "16906:17:84"
                      },
                      {
                        "name": "pos",
                        "nativeSrc": "16925:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "16925:3:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "16930:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "16930:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nativeSrc": "16871:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "16871:34:84"
                    },
                    "nativeSrc": "16871:66:84",
                    "nodeType": "YulFunctionCall",
                    "src": "16871:66:84"
                  },
                  "nativeSrc": "16871:66:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "16871:66:84"
                },
                {
                  "nativeSrc": "16946:23:84",
                  "nodeType": "YulAssignment",
                  "src": "16946:23:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "16957:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "16957:3:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "16962:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "16962:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "16953:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "16953:3:84"
                    },
                    "nativeSrc": "16953:16:84",
                    "nodeType": "YulFunctionCall",
                    "src": "16953:16:84"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "16946:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "16946:3:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "16688:287:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "16801:3:84",
                "nodeType": "YulTypedName",
                "src": "16801:3:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "16806:6:84",
                "nodeType": "YulTypedName",
                "src": "16806:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "16817:3:84",
                "nodeType": "YulTypedName",
                "src": "16817:3:84",
                "type": ""
              }
            ],
            "src": "16688:287:84"
          },
          {
            "body": {
              "nativeSrc": "17163:309:84",
              "nodeType": "YulBlock",
              "src": "17163:309:84",
              "statements": [
                {
                  "nativeSrc": "17173:27:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "17173:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "17193:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "17193:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "17187:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "17187:5:84"
                    },
                    "nativeSrc": "17187:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "17187:13:84"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "17177:6:84",
                      "nodeType": "YulTypedName",
                      "src": "17177:6:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "17248:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "17248:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "17256:4:84",
                            "nodeType": "YulLiteral",
                            "src": "17256:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "17244:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "17244:3:84"
                        },
                        "nativeSrc": "17244:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "17244:17:84"
                      },
                      {
                        "name": "pos",
                        "nativeSrc": "17263:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "17263:3:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "17268:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "17268:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nativeSrc": "17209:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "17209:34:84"
                    },
                    "nativeSrc": "17209:66:84",
                    "nodeType": "YulFunctionCall",
                    "src": "17209:66:84"
                  },
                  "nativeSrc": "17209:66:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "17209:66:84"
                },
                {
                  "nativeSrc": "17284:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "17284:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "17301:3:84",
                        "nodeType": "YulIdentifier",
                        "src": "17301:3:84"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "17306:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "17306:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "17297:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "17297:3:84"
                    },
                    "nativeSrc": "17297:16:84",
                    "nodeType": "YulFunctionCall",
                    "src": "17297:16:84"
                  },
                  "variables": [
                    {
                      "name": "end_1",
                      "nativeSrc": "17288:5:84",
                      "nodeType": "YulTypedName",
                      "src": "17288:5:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "17322:29:84",
                  "nodeType": "YulVariableDeclaration",
                  "src": "17322:29:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "17344:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "17344:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "17338:5:84",
                      "nodeType": "YulIdentifier",
                      "src": "17338:5:84"
                    },
                    "nativeSrc": "17338:13:84",
                    "nodeType": "YulFunctionCall",
                    "src": "17338:13:84"
                  },
                  "variables": [
                    {
                      "name": "length_1",
                      "nativeSrc": "17326:8:84",
                      "nodeType": "YulTypedName",
                      "src": "17326:8:84",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "17399:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "17399:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "17407:4:84",
                            "nodeType": "YulLiteral",
                            "src": "17407:4:84",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "17395:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "17395:3:84"
                        },
                        "nativeSrc": "17395:17:84",
                        "nodeType": "YulFunctionCall",
                        "src": "17395:17:84"
                      },
                      {
                        "name": "end_1",
                        "nativeSrc": "17414:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "17414:5:84"
                      },
                      {
                        "name": "length_1",
                        "nativeSrc": "17421:8:84",
                        "nodeType": "YulIdentifier",
                        "src": "17421:8:84"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nativeSrc": "17360:34:84",
                      "nodeType": "YulIdentifier",
                      "src": "17360:34:84"
                    },
                    "nativeSrc": "17360:70:84",
                    "nodeType": "YulFunctionCall",
                    "src": "17360:70:84"
                  },
                  "nativeSrc": "17360:70:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "17360:70:84"
                },
                {
                  "nativeSrc": "17439:27:84",
                  "nodeType": "YulAssignment",
                  "src": "17439:27:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "end_1",
                        "nativeSrc": "17450:5:84",
                        "nodeType": "YulIdentifier",
                        "src": "17450:5:84"
                      },
                      {
                        "name": "length_1",
                        "nativeSrc": "17457:8:84",
                        "nodeType": "YulIdentifier",
                        "src": "17457:8:84"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "17446:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "17446:3:84"
                    },
                    "nativeSrc": "17446:20:84",
                    "nodeType": "YulFunctionCall",
                    "src": "17446:20:84"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "17439:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "17439:3:84"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "16980:492:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "17131:3:84",
                "nodeType": "YulTypedName",
                "src": "17131:3:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "17136:6:84",
                "nodeType": "YulTypedName",
                "src": "17136:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "17144:6:84",
                "nodeType": "YulTypedName",
                "src": "17144:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "17155:3:84",
                "nodeType": "YulTypedName",
                "src": "17155:3:84",
                "type": ""
              }
            ],
            "src": "16980:492:84"
          },
          {
            "body": {
              "nativeSrc": "17606:119:84",
              "nodeType": "YulBlock",
              "src": "17606:119:84",
              "statements": [
                {
                  "nativeSrc": "17616:26:84",
                  "nodeType": "YulAssignment",
                  "src": "17616:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "17628:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "17628:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "17639:2:84",
                        "nodeType": "YulLiteral",
                        "src": "17639:2:84",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "17624:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "17624:3:84"
                    },
                    "nativeSrc": "17624:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "17624:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "17616:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "17616:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "17658:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "17658:9:84"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "17669:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "17669:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "17651:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "17651:6:84"
                    },
                    "nativeSrc": "17651:25:84",
                    "nodeType": "YulFunctionCall",
                    "src": "17651:25:84"
                  },
                  "nativeSrc": "17651:25:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "17651:25:84"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "17696:9:84",
                            "nodeType": "YulIdentifier",
                            "src": "17696:9:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "17707:2:84",
                            "nodeType": "YulLiteral",
                            "src": "17707:2:84",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "17692:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "17692:3:84"
                        },
                        "nativeSrc": "17692:18:84",
                        "nodeType": "YulFunctionCall",
                        "src": "17692:18:84"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "17712:6:84",
                        "nodeType": "YulIdentifier",
                        "src": "17712:6:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "17685:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "17685:6:84"
                    },
                    "nativeSrc": "17685:34:84",
                    "nodeType": "YulFunctionCall",
                    "src": "17685:34:84"
                  },
                  "nativeSrc": "17685:34:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "17685:34:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed",
            "nativeSrc": "17477:248:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "17567:9:84",
                "nodeType": "YulTypedName",
                "src": "17567:9:84",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "17578:6:84",
                "nodeType": "YulTypedName",
                "src": "17578:6:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "17586:6:84",
                "nodeType": "YulTypedName",
                "src": "17586:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "17597:4:84",
                "nodeType": "YulTypedName",
                "src": "17597:4:84",
                "type": ""
              }
            ],
            "src": "17477:248:84"
          },
          {
            "body": {
              "nativeSrc": "17830:101:84",
              "nodeType": "YulBlock",
              "src": "17830:101:84",
              "statements": [
                {
                  "nativeSrc": "17840:26:84",
                  "nodeType": "YulAssignment",
                  "src": "17840:26:84",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "17852:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "17852:9:84"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "17863:2:84",
                        "nodeType": "YulLiteral",
                        "src": "17863:2:84",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "17848:3:84",
                      "nodeType": "YulIdentifier",
                      "src": "17848:3:84"
                    },
                    "nativeSrc": "17848:18:84",
                    "nodeType": "YulFunctionCall",
                    "src": "17848:18:84"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "17840:4:84",
                      "nodeType": "YulIdentifier",
                      "src": "17840:4:84"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "17882:9:84",
                        "nodeType": "YulIdentifier",
                        "src": "17882:9:84"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "17897:6:84",
                            "nodeType": "YulIdentifier",
                            "src": "17897:6:84"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "17905:18:84",
                            "nodeType": "YulLiteral",
                            "src": "17905:18:84",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "17893:3:84",
                          "nodeType": "YulIdentifier",
                          "src": "17893:3:84"
                        },
                        "nativeSrc": "17893:31:84",
                        "nodeType": "YulFunctionCall",
                        "src": "17893:31:84"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "17875:6:84",
                      "nodeType": "YulIdentifier",
                      "src": "17875:6:84"
                    },
                    "nativeSrc": "17875:50:84",
                    "nodeType": "YulFunctionCall",
                    "src": "17875:50:84"
                  },
                  "nativeSrc": "17875:50:84",
                  "nodeType": "YulExpressionStatement",
                  "src": "17875:50:84"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint64__to_t_uint256__fromStack_reversed",
            "nativeSrc": "17730:201:84",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "17799:9:84",
                "nodeType": "YulTypedName",
                "src": "17799:9:84",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "17810:6:84",
                "nodeType": "YulTypedName",
                "src": "17810:6:84",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "17821:4:84",
                "nodeType": "YulTypedName",
                "src": "17821:4:84",
                "type": ""
              }
            ],
            "src": "17730:201:84"
          }
        ]
      },
      "contents": "{\n    { }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_6aa2932fe75962e4eb862ba4982429ce713637712a759cb9d40b6d5260a002eb_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n    {\n        mstore(pos, \"not implemented: 0x\")\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), add(pos, 19), length)\n        let _1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), add(_1, 19), length_1)\n        let _2 := add(_1, length_1)\n        let length_2 := mload(value2)\n        copy_memory_to_memory_with_cleanup(add(value2, 0x20), add(_2, 19), length_2)\n        let _3 := add(_2, length_2)\n        let length_3 := mload(value3)\n        copy_memory_to_memory_with_cleanup(add(value3, 0x20), add(_3, 19), length_3)\n        end := add(add(_3, length_3), 19)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bytes32_t_uint64_t_bytes32_t_uint256__to_t_bytes32_t_uint64_t_bytes32_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function validator_revert_uint32(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint32t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_uint32(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffff))\n    }\n    function abi_encode_tuple_t_contract$_WitnetOracle_$749__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_enum$_ResponseStatus_$23496__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        if iszero(lt(value0, 6))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_struct$_RadonSLA_$23503_memory_ptr__to_t_struct$_RadonSLA_$23503_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(mload(value0), 0xff))\n        mstore(add(headStart, 0x20), and(mload(add(value0, 0x20)), 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_tuple_t_struct$_RadonSLA_$23503_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := headStart\n    }\n    function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffff))\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        mstore(end_1, \": \")\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), add(end_1, 2), length_1)\n        end := add(add(end_1, length_1), 2)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint8(x, y) -> r\n    {\n        let y_1 := and(y, 0xff)\n        if iszero(y_1) { panic_error_0x12() }\n        r := div(and(x, 0xff), y_1)\n    }\n    function checked_add_t_uint8(x, y) -> sum\n    {\n        sum := add(and(x, 0xff), and(y, 0xff))\n        if gt(sum, 0xff) { panic_error_0x11() }\n    }\n    function mod_t_uint8(x, y) -> r\n    {\n        let y_1 := and(y, 0xff)\n        if iszero(y_1) { panic_error_0x12() }\n        r := mod(and(x, 0xff), y_1)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_enum$_ResponseStatus_$23496_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(lt(value, 6)) { revert(0, 0) }\n        value0 := value\n    }\n    function allocate_memory() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0xa0)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function validator_revert_uint64(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_bytes_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0xffffffffffffffff\n        if gt(_1, _2) { panic_error_0x41() }\n        let _3 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(offset, 0x20), add(memPtr, 0x20), _1)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_struct$_Response_$23488_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if slt(sub(dataEnd, _2), 0xa0) { revert(0, 0) }\n        let value := allocate_memory()\n        let value_1 := mload(_2)\n        validator_revert_address(value_1)\n        mstore(value, value_1)\n        let value_2 := mload(add(_2, 32))\n        validator_revert_uint64(value_2)\n        mstore(add(value, 32), value_2)\n        let value_3 := mload(add(_2, 64))\n        validator_revert_uint32(value_3)\n        mstore(add(value, 64), value_3)\n        mstore(add(value, 96), mload(add(_2, 96)))\n        let offset_1 := mload(add(_2, 128))\n        if gt(offset_1, _1) { revert(0, 0) }\n        mstore(add(value, 128), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_struct_RadonSLA_storage(value, pos)\n    {\n        let slotValue := sload(value)\n        mstore(pos, and(slotValue, 0xff))\n        mstore(add(pos, 0x20), and(shr(8, slotValue), 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bytes32_t_struct$_RadonSLA_$23503_storage__to_t_bytes32_t_struct$_RadonSLA_$23503_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        abi_encode_struct_RadonSLA_storage(value1, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256_t_struct$_RadonSLA_$23503_storage__to_t_uint256_t_uint256_t_uint256_t_uint256_t_struct$_RadonSLA_$23503_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 192)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        abi_encode_struct_RadonSLA_storage(value4, add(headStart, 128))\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_uint256_t_uint16__to_t_uint256_t_uint16__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffff))\n    }\n    function checked_add_t_uint16(x, y) -> sum\n    {\n        let _1 := 0xffff\n        sum := add(and(x, _1), and(y, _1))\n        if gt(sum, _1) { panic_error_0x11() }\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function panic_error_0x01()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n    function validator_revert_uint8(value)\n    {\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n    }\n    function update_storage_value_offset_0t_struct$_RadonSLA_$23503_calldata_ptr_to_t_struct$_RadonSLA_$23503_storage(slot, value)\n    {\n        let value_1 := calldataload(value)\n        validator_revert_uint8(value_1)\n        let _1 := and(value_1, 0xff)\n        let _2 := sload(slot)\n        sstore(slot, or(and(_2, not(255)), _1))\n        let value_2 := calldataload(add(value, 32))\n        validator_revert_uint64(value_2)\n        sstore(slot, or(or(and(_2, not(0xffffffffffffffffff)), _1), and(shl(8, value_2), 0xffffffffffffffff00)))\n    }\n    function abi_encode_tuple_t_stringliteral_c540643114d8824fc67c5a3bcabc32e042f198b987f1133b221fc24db5c15b9a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"Witnet: tried to decode value fr\")\n        mstore(add(headStart, 96), \"om errored result.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Ownable2Step: caller is not the \")\n        mstore(add(headStart, 96), \"new owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes_fromMemory(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_uint64(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_uint64(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint8(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_uint8(value)\n        value0 := value\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_uint8_t_uint8__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xff))\n        mstore(add(headStart, 32), and(value1, 0xff))\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n        end := add(end_1, length_1)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_uint64__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n}",
      "id": 84,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "387:21272:23:-:0;;;1169:1618;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1308:7;1276:9;-1:-1:-1;;;;;1273:26:1;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:1;;1350:1;1322:31;;;748:51:84;721:18;;1322:31:1;;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;-1:-1:-1;;;;;;;;1219:47:16;;:4;-1:-1:-1;;;;;1219:10:16;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;1219:47:16;;1197:134;;;;-1:-1:-1;;;1197:134:16;;1307:2:84;1197:134:16;;;1289:21:84;1346:2;1326:18;;;1319:30;1385:34;1365:18;;;1358:62;-1:-1:-1;;;1436:18:84;;;1429:35;1481:19;;1197:134:16;1105:401:84;1197:134:16;-1:-1:-1;;;;;1342:15:16;;;;;1389:355;;;;;;;;;1543:2;1389:355;;1696:11;1389:355;;;;;1368:18;:376;;;-1:-1:-1;;;;;;1368:376:16;;;;;;1765:33;:38;;-1:-1:-1;;1765:38:16;1801:2;1765:38;;;1333:176:23::2;::::0;1356:30;::::2;::::0;;:101:::2;;;-1:-1:-1::0;;;;;;;;1407:50:23::2;;:7;-1:-1:-1::0;;;;;1407:13:23::2;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;1407:50:23::2;;1356:101;1333:176;::::0;;;;::::2;::::0;;;::::2;::::0;;::::2;;::::0;::::2;::::0;:8:::2;:176::i;:::-;1520:32;1555:8;:6;:8::i;:::-;-1:-1:-1::0;;;;;1555:17:23::2;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1684:16;::::0;;1698:1:::2;1684:16:::0;;;;;::::2;::::0;;;1520:54;;-1:-1:-1;1653:28:23::2;::::0;1684:16;::::2;::::0;;::::2;::::0;;::::2;::::0;::::2;-1:-1:-1::0;;1913:18:23::2;::::0;;1929:1:::2;1913:18:::0;;;::::2;::::0;::::2;::::0;;;1653:47;;-1:-1:-1;;;;;;1732:30:23;::::2;::::0;::::2;::::0;-1:-1:-1;1781:34:23::2;::::0;1913:18:::2;::::0;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;1732:289;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1715:11;1727:1;1715:14;;;;;;;;:::i;:::-;;;;;;:306;;;::::0;::::2;2036:36;2087:19;2109:9;-1:-1:-1::0;;;;;2109:28:23::2;;2138:144;;;;;;;;2185:31;2138:144;;;;;;;;:::i;:::-;;;;;2244:8;2138:144;;::::0;2109:174:::2;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2087:196;;2298:14;2315:9;-1:-1:-1::0;;;;;2315:28:23::2;;2344:158;;;;;;;;2391:45;2344:158:::0;::::2;;;;;;;:::i;:::-;;;;;2464:8;2344:158;;::::0;2315:188:::2;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2298:205;;2534:9;-1:-1:-1::0;;;;;2534:28:23::2;;2581:11;2611;2641:6;2666:2;2734:11;:18;-1:-1:-1::0;;;;;2719:34:23::2;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2534:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2518:250;::::0;-1:-1:-1;387:21272:23;;-1:-1:-1;;;;;;387:21272:23;1478:156:79;1568:13;1561:20;;-1:-1:-1;;;;;;1561:20:79;;;1592:34;1617:8;1592:24;:34::i;:::-;1478:156;:::o;19954:204:23:-;20095:10;20090:61;;20122:17;20130:8;20122:7;:17::i;:::-;19954:204;;:::o;3544:155::-;3634:12;3671:20;2377:8:16;;;2298:95;3671:20:23;3664:27;;3544:155;:::o;2912:187:1:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:1;;;-1:-1:-1;;;;;;3020:17:1;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;20166:235:23:-;3366:29;;;;;;;;;;;;-1:-1:-1;;;3366:29:23;;;;20358:8;20274:107;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;20274:107:23;;;;;;;;;;-1:-1:-1;;;20246:147:23;;;;;;;:::i;387:21272::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:145:84:-;-1:-1:-1;;;;;103:31:84;;93:42;;83:70;;149:1;146;139:12;164:433;263:6;271;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;372:9;366:16;391:45;430:5;391:45;:::i;:::-;505:2;490:18;;484:25;455:5;;-1:-1:-1;518:47:84;484:25;518:47;:::i;:::-;584:7;574:17;;;164:433;;;;;:::o;810:290::-;879:6;932:2;920:9;911:7;907:23;903:32;900:52;;;948:1;945;938:12;900:52;974:16;;-1:-1:-1;;;;;;1019:32:84;;1009:43;;999:71;;1066:1;1063;1056:12;999:71;1089:5;810:290;-1:-1:-1;;;810:290:84:o;1511:295::-;1611:6;1664:2;1652:9;1643:7;1639:23;1635:32;1632:52;;;1680:1;1677;1670:12;1632:52;1712:9;1706:16;1731:45;1770:5;1731:45;:::i;1811:127::-;1872:10;1867:3;1863:20;1860:1;1853:31;1903:4;1900:1;1893:15;1927:4;1924:1;1917:15;1943:127;2004:10;1999:3;1995:20;1992:1;1985:31;2035:4;2032:1;2025:15;2059:4;2056:1;2049:15;2075:250;2160:1;2170:113;2184:6;2181:1;2178:13;2170:113;;;2260:11;;;2254:18;2241:11;;;2234:39;2206:2;2199:10;2170:113;;;-1:-1:-1;;2317:1:84;2299:16;;2292:27;2075:250::o;2330:271::-;2372:3;2410:5;2404:12;2437:6;2432:3;2425:19;2453:76;2522:6;2515:4;2510:3;2506:14;2499:4;2492:5;2488:16;2453:76;:::i;:::-;2583:2;2562:15;-1:-1:-1;;2558:29:84;2549:39;;;;2590:4;2545:50;;2330:271;-1:-1:-1;;2330:271:84:o;2768:2087::-;3333:4;3373:1;3365:6;3362:13;3352:47;;3379:18;;:::i;:::-;3426:6;3415:9;3408:25;3452:2;3490:3;3485:2;3474:9;3470:18;3463:31;3513:1;3551;3545:3;3534:9;3530:19;3523:30;3572:2;3610:3;3605:2;3594:9;3590:18;3583:31;3651:1;3645:3;3634:9;3630:19;3623:30;3696:3;3685:9;3681:19;3736:3;3731:2;3720:9;3716:18;3709:31;3760:11;3800:6;3794:13;3836:6;3823:11;3816:27;3862:3;3852:13;;3896:2;3885:9;3881:18;3874:25;;3958:2;3948:6;3945:1;3941:14;3930:9;3926:30;3922:39;3908:53;;3996:2;3988:6;3984:15;4017:1;4027:708;4041:6;4038:1;4035:13;4027:708;;;4106:22;;;-1:-1:-1;;4102:37:84;4090:50;;4163:13;;4110:6;4263:15;;;4333:2;4348:278;4364:4;4359:3;4356:13;4348:278;;;4449:6;4441;4437:19;4430:5;4423:34;4484:42;4519:6;4508:8;4502:15;4484:42;:::i;:::-;4555:17;;;;4598:14;;;;4474:52;-1:-1:-1;4388:1:84;4379:11;4348:278;;;-1:-1:-1;4649:6:84;-1:-1:-1;;;4713:12:84;;;;4678:15;;;;4063:1;4056:9;4027:708;;;-1:-1:-1;;;;4772:22:84;;;4766:3;4751:19;;4744:51;2683:1;2671:14;;-1:-1:-1;;;2710:4:84;2701:14;;2694:35;2754:2;2745:12;;4804:45;2768:2087;-1:-1:-1;;;;;;;;2768:2087:84:o;4860:184::-;4930:6;4983:2;4971:9;4962:7;4958:23;4954:32;4951:52;;;4999:1;4996;4989:12;4951:52;-1:-1:-1;5022:16:84;;4860:184;-1:-1:-1;4860:184:84:o;5049:127::-;5110:10;5105:3;5101:20;5098:1;5091:31;5141:4;5138:1;5131:15;5165:4;5162:1;5155:15;5181:1310;5335:4;5364:2;5393;5382:9;5375:21;5434:2;5423:9;5419:18;5462:6;5456:13;5495:2;5491;5488:10;5478:44;;5502:18;;:::i;:::-;5538;;;5531:30;5596:15;;;5590:22;5631:4;5651:20;;;5644:34;;;5727:19;;5755:22;;;;5808:3;5858:1;5854:14;;;5839:30;;5835:40;;;5898:21;;;;5793:19;;;;5937:1;5947:515;5961:6;5958:1;5955:13;5947:515;;;6026:22;;;-1:-1:-1;;6022:37:84;6010:50;;6083:13;;6119:9;;6158:2;6151:10;;6141:44;;6165:18;;:::i;:::-;6198;;6257:11;;6251:18;6289:15;;;6282:27;;;6332:50;6366:15;;;6251:18;6332:50;:::i;:::-;6322:60;-1:-1:-1;;6405:15:84;;;;6440:12;;;;5983:1;5976:9;5947:515;;;-1:-1:-1;6479:6:84;;5181:1310;-1:-1:-1;;;;;;;;5181:1310:84:o;6496:2225::-;6926:3;6939:22;;;7010:13;;6911:19;;;7032:22;;;6878:4;;7108;;7085:3;7070:19;;;7135:15;;;6878:4;7178:169;7192:6;7189:1;7186:13;7178:169;;;7253:13;;7241:26;;7287:12;;;;7322:15;;;;7214:1;7207:9;7178:169;;;7182:3;;;7383:6;7378:2;7367:9;7363:18;7356:34;7426:6;7421:2;7410:9;7406:18;7399:34;7481:6;7473;7469:19;7464:2;7453:9;7449:18;7442:47;7535:9;7530:3;7526:19;7520:3;7509:9;7505:19;7498:48;7568:3;7602:6;7596:13;7630:8;7625:3;7618:21;7666:2;7661:3;7657:12;7648:21;;7688:1;7744:2;7732:8;7729:1;7725:16;7720:3;7716:26;7712:35;7784:2;7776:6;7772:15;7807:1;7817:875;7833:8;7828:3;7825:17;7817:875;;;-1:-1:-1;;7936:16:84;;;7932:25;;7918:40;;7981:15;;8057:9;;8079:24;;;8235:11;;;;8125:15;;;;8183:17;;;8171:30;;8167:39;;8270:1;8284:291;8300:8;8295:3;8292:17;8284:291;;;8402:2;8393:6;8385;8381:19;8377:28;8370:5;8363:43;8433:42;8468:6;8457:8;8451:15;8433:42;:::i;:::-;8504:17;;;;8547:14;;;;8423:52;-1:-1:-1;8328:1:84;8319:11;8284:291;;;-1:-1:-1;8668:14:84;;;;8598:6;-1:-1:-1;;;8629:17:84;;;;-1:-1:-1;;7861:1:84;7852:11;7817:875;;;-1:-1:-1;8709:6:84;;6496:2225;-1:-1:-1;;;;;;;;;;;;;6496:2225:84:o;8726:641::-;9006:3;9044:6;9038:13;9060:66;9119:6;9114:3;9107:4;9099:6;9095:17;9060:66;:::i;:::-;-1:-1:-1;;;9148:16:84;;;9173:19;;;9217:13;;9239:78;9217:13;9304:1;9293:13;;9286:4;9274:17;;9239:78;:::i;:::-;9337:20;9359:1;9333:28;;8726:641;-1:-1:-1;;;;8726:641:84:o;9372:220::-;9521:2;9510:9;9503:21;9484:4;9541:45;9582:2;9571:9;9567:18;9559:6;9541:45;:::i;9372:220::-;387:21272:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "387:21272:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:32;;;;;;;;;;;;;;-1:-1:-1;;;2841:32:23;;;:7;:32::i;:::-;387:21272;;2937:325;3019:42;3051:7;;3038:22;;3019:18;:42::i;:::-;3076:47;3095:27;3108:7;;3095:27;;;3076:18;:47::i;:::-;3138:48;3157:28;3170:7;;3157:28;;;3138:18;:48::i;:::-;3201;3220:28;3233:7;;3220:28;;;3201:18;:48::i;:::-;2952:308;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2937:7;:325::i;7974:1714::-;;;;;;;;;;-1:-1:-1;7974:1714:23;;;;;:::i;:::-;;:::i;:::-;;;;1760:25:84;;;-1:-1:-1;;;;;1821:31:84;;;1816:2;1801:18;;1794:59;1869:18;;;1862:34;1927:2;1912:18;;1905:34;1747:3;1732:19;7974:1714:23;;;;;;;;15348:434;;;;;;;;;;-1:-1:-1;15348:434:23;;;;;:::i;:::-;;:::i;:::-;;;2636:10:84;2624:23;;;2606:42;;2594:2;2579:18;15348:434:23;2462:192:84;3544:155:23;;;;;;;;;;-1:-1:-1;2377:8:16;3544:155:23;;;-1:-1:-1;;;;;2843:32:84;;;2825:51;;2813:2;2798:18;3544:155:23;2659:223:84;1113:47:23;;;;;;;;;;;;;;;;;;3033:25:84;;;3021:2;3006:18;1113:47:23;2887:177:84;16070:1381:23;;;:::i;2293:101:1:-;;;;;;;;;;;;;:::i;13209:1057:23:-;;;;;;;;;;-1:-1:-1;13209:1057:23;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;18214:162::-;;;;;;;;;;;;;:::i;5180:302::-;;;;;;;;;;-1:-1:-1;5180:302:23;;;;;:::i;:::-;;:::i;18569:172::-;;;;;;;;;;-1:-1:-1;18686:7:23;1710:6:1;-1:-1:-1;;;;;1710:6:1;18569:172:23;3544:155;9775:170;;;;;;;;;;;;;:::i;17791:169::-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;17927:25:23;;;;;;;17934:18;17927:25;;;;;;;-1:-1:-1;;;;;17927:25:23;;;;;;;;;;;;17791:169;;4144:43:84;;;4229:24;;4225:49;4203:20;;;4196:79;;;;4117:18;17791:169:23;3944:337:84;14480:237:23;;;;;;;;;;-1:-1:-1;14480:237:23;;;;;:::i;:::-;;:::i;:::-;;;4451:14:84;;4444:22;4426:41;;4414:2;4399:18;14480:237:23;4286:187:84;10566:500:23;;;;;;;;;;-1:-1:-1;10566:500:23;;;;;:::i;:::-;;:::i;:::-;;;;4680:25:84;;;4736:2;4721:18;;4714:34;;;;4764:18;;;4757:34;4668:2;4653:18;10566:500:23;4478:319:84;4104:363:23;;;;;;;;;;-1:-1:-1;4104:363:23;;;;;:::i;:::-;;:::i;3411:125::-;;;;;;;;;;-1:-1:-1;3411:125:23;;-1:-1:-1;;;4946:52:84;;4934:2;4919:18;3411:125:23;4802:202:84;19172:225:23;;;;;;;;;;-1:-1:-1;19172:225:23;;;;;:::i;:::-;;:::i;3278:125::-;;;;;;;;;;-1:-1:-1;3366:29:23;;;;;;;;;;;-1:-1:-1;;;3366:29:23;;;;3278:125;;;;3366:29;3278:125;:::i;12067:451::-;;;;;;;;;;-1:-1:-1;12067:451:23;;;;;:::i;:::-;;:::i;19405:295::-;;;;;;;;;;-1:-1:-1;19405:295:23;;;;;:::i;:::-;;:::i;11354:418::-;;;;;;;;;;-1:-1:-1;11354:418:23;;;;;:::i;:::-;;:::i;18749:196::-;;;;;;;;;;;;;:::i;18384:177::-;;;;;;;;;;-1:-1:-1;18520:33:23;;18384:177;;18520:33;;;;6031:38:84;;6019:2;6004:18;18384:177:23;5887:188:84;18957:207:23;;;;;;;;;;-1:-1:-1;18957:207:23;;;;;:::i;:::-;;:::i;20166:235::-;3366:29;;;;;;;;;;;;-1:-1:-1;;;3366:29:23;;;;20358:8;20274:107;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;20274:107:23;;;;;;;;;;-1:-1:-1;;;20246:147:23;;;;;;;:::i;:::-;;;;;;;;19878:397:64;19999:12;;;20009:1;19999:12;;;;;;;;;19950:13;;19981:15;;19999:12;;;;;;;;;;;-1:-1:-1;;19981:30:64;-1:-1:-1;20022:8:64;20039:7;20044:2;20039;:7;:::i;:::-;20033:19;;20050:2;20033:19;:::i;:::-;20022:30;-1:-1:-1;20063:8:64;20080:7;20085:2;20080;:7;:::i;:::-;20074:19;;20091:2;20074:19;:::i;:::-;20063:30;;20113:2;20108;:7;;;20104:33;;;20130:7;20136:1;20130:7;;:::i;:::-;;;20104:33;20157:2;20152;:7;;;20148:33;;;20174:7;20180:1;20174:7;;:::i;:::-;;;20148:33;20207:2;20200:10;;20192:2;20195:1;20192:5;;;;;;;;:::i;:::-;;;;:18;-1:-1:-1;;;;;20192:18:64;;;;;;;;;20236:2;20229:10;;20221:2;20224:1;20221:5;;;;;;;;:::i;:::-;;;;:18;-1:-1:-1;;;;;20221:18:64;;;;;;;;-1:-1:-1;20264:2:64;;19878:397;-1:-1:-1;;;;19878:397:64:o;7974:1714:23:-;8112:31;8158:30;8203;8248:34;8314:11;:9;:11::i;:::-;:36;;;;:22;;;;;:36;;;;;:50;:55;;8310:138;;8401:35;8423:12;8401:21;:35::i;:::-;8386:50;;8310:138;8460:29;8492:11;:9;:11::i;:::-;:22;;:36;8515:12;8492:36;;;;;;;;;;;8460:68;;8539:22;8564:11;:25;;;8539:50;;8600:85;8623:14;8641:1;8623:19;;8600:85;;;;;;;;;;;;;-1:-1:-1;;;8600:85:23;;;:8;:85::i;:::-;8740:47;;-1:-1:-1;;;8740:47:23;;;;;3033:25:84;;;8706:31:23;;8740:8;-1:-1:-1;;;;;8740:31:23;;;;3006:18:84;;8740:47:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8706:81;-1:-1:-1;8813:29:23;8802:7;:40;;;;;;;;:::i;:::-;;8798:883;;8907:41;;-1:-1:-1;;;8907:41:23;;;;;3033:25:84;;;8859:45:23;;8907:8;-1:-1:-1;;;;;8907:25:23;;;;3006:18:84;;8907:41:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8907:41:23;;;;;;;;;;;;:::i;:::-;8859:89;;8988:20;:36;;;8963:61;;;;9064:20;:36;;;9039:61;;9144:20;:29;;;-1:-1:-1;;;;;9115:58:23;;;9214:65;:53;:20;:36;;;:51;:53::i;:::-;:63;:65::i;:::-;9188:91;;8844:449;8798:883;;;9314:29;9303:7;:40;;;;;;;;:::i;:::-;;9299:382;;9390:21;;;;9426:104;;;;;;;;;;;;-1:-1:-1;;;9426:104:23;;;;;;9453:24;;;;9426:8;:104::i;:::-;9552:46;9578:19;9552:25;:46::i;:::-;9545:53;;;;;;;;;;;;;;9299:382;9641:28;;;;;;;;;;;;;;-1:-1:-1;;;9641:28:23;;;:7;:28::i;:::-;8299:1389;;;7974:1714;;;;;;:::o;15348:434::-;15485:6;15516:258;15559:6;15580;15662:10;15695:34;15716:12;15695:20;:34::i;:::-;15629:119;;;-1:-1:-1;;;;;10735:32:84;;;15629:119:23;;;10717:51:84;10784:18;;10777:34;10690:18;;15629:119:23;;;;;;;;;;;;15601:162;;;;;;15516:28;:258::i;:::-;15509:265;;15348:434;;;;;;:::o;3671:20::-;3664:27;;3544:155;:::o;16070:1381::-;16161:24;16240:12;16207:11;:9;:11::i;:::-;:30;:45;16203:1072;;;16288:9;16269:28;;16364:19;16386:8;-1:-1:-1;;;;;16386:20:23;;16432:16;16482:13;16514:18;16386:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16364:185;;16612:29;16644:11;:9;:11::i;:::-;16667:12;16644:36;;;;:22;;;;;:36;;;;;16695:42;;;16644:36;-1:-1:-1;16809:11:23;:9;:11::i;:::-;:30;16854:21;;;:34;;;16809:30;-1:-1:-1;16950:12:23;16903:11;:9;:11::i;:::-;:34;;;;:22;;;;;:34;;;;;:44;;:59;17010:12;16977:11;:9;:11::i;:::-;:45;17071:192;;;;;;17101:12;;17132:11;;17162:16;;17197:14;;17230:18;;17071:192;:::i;:::-;;;;;;;;16254:1021;;;16203:1072;17348:9;17329:16;:28;17325:119;;;17382:10;17374:58;17403:28;17415:16;17403:9;:28;:::i;:::-;17374:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17325:119;16070:1381;:::o;2293:101:1:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;13209:1057:23:-;13325:23;13370:11;:9;:11::i;:::-;:36;;;;:22;;;;;:36;;;;;:50;:55;;13366:138;;13457:35;13479:12;13457:21;:35::i;:::-;13442:50;;13366:138;13514:22;13539:11;:9;:11::i;:::-;:36;;;;:22;;;;;:36;;;;;:50;;-1:-1:-1;13604:19:23;;;13600:659;;-1:-1:-1;13647:28:23;;13209:1057;-1:-1:-1;;13209:1057:23:o;13600:659::-;13752:47;;-1:-1:-1;;;13752:47:23;;;;;3033:25:84;;;13718:31:23;;13752:8;-1:-1:-1;;;;;13752:31:23;;;;3006:18:84;;13752:47:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13718:81;-1:-1:-1;13829:29:23;13818:7;:40;;;;;;;;:::i;:::-;;13814:434;;13879:27;13909:11;:9;:11::i;:::-;:36;;;;:22;;;;;:36;;;;;:46;;;;-1:-1:-1;13978:24:23;;13974:204;;14034:39;14053:19;14034:18;:39::i;:::-;14027:46;13209:1057;-1:-1:-1;;;;;13209:1057:23:o;13974:204::-;-1:-1:-1;14129:29:23;;13209:1057;-1:-1:-1;;;;13209:1057:23:o;13974:204::-;13860:333;13814:434;13703:556;13355:911;13209:1057;;;:::o;18214:162::-;18338:30;:28;:30::i;5180:302::-;5297:7;5382:12;5413:35;5435:12;5413:21;:35::i;:::-;5353:110;;;;;;12424:25:84;;;;12465:18;;12458:34;12397:18;;5353:110:23;;;;;;;;;;;;5329:145;;;;;;5322:152;;5180:302;;;:::o;9775:170::-;9875:7;9907:11;:9;:11::i;:::-;:30;;9775:170;-1:-1:-1;9775:170:23:o;14480:237::-;14589:4;14669:29;14633:32;14652:12;14633:18;:32::i;:::-;:65;;;;;;;;:::i;:::-;;;14480:237;-1:-1:-1;;14480:237:23:o;10566:500::-;10695:22;10732:27;10774;10829:29;10861:11;:9;:11::i;:::-;:36;;;;:22;;;;:36;;;;;;10925:25;;10983:21;;;;11037;;;;;10925:25;;10983:21;;11037;-1:-1:-1;10566:500:23;-1:-1:-1;;;10566:500:23:o;4104:363::-;4329:112;;-1:-1:-1;;;4329:112:23;;;;;12675:25:84;;;4419:2:23;12716:18:84;;;12709:47;4221:7:23;;4456:3;;-1:-1:-1;;;;;4329:8:23;:24;;;;12648:18:84;;4329:112:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4275:33;;4269:39;;4275:33;;4269:3;:39;:::i;:::-;4268:173;;;;;;:::i;:::-;4253:206;;;;:::i;:::-;4246:213;4104:363;-1:-1:-1;;4104:363:23:o;19172:225::-;1531:13:1;:11;:13::i;:::-;19327:33:23::1;:62:::0;;-1:-1:-1;;19327:62:23::1;;::::0;;;::::1;::::0;;;::::1;::::0;;19172:225::o;12067:451::-;12185:7;12232:1;12217:12;:16;12210:24;;;;:::i;:::-;12245:15;12263:11;:9;:11::i;:::-;:30;;-1:-1:-1;12313:22:23;;;12312:187;;12426:73;12443:12;12457:11;:9;:11::i;:::-;:31;;;;:22;;;;:31;;;;;:41;;12426:16;:73::i;:::-;12312:187;;19405:295;1531:13:1;:11;:13::i;:::-;19558:87:23::1;19581:25;:15;:23;:25::i;:::-;19558:87;;;;;;;;;;;;;-1:-1:-1::0;;;19558:87:23::1;;::::0;:8:::1;:87::i;:::-;19677:15:::0;19656:18:::1;:36;19677:15:::0;19656:18;:36:::1;:::i;:::-;-1:-1:-1::0;;;19405:295:23:o;11354:418::-;11472:7;11506:11;:9;:11::i;:::-;:36;;;;:22;;;;;:36;;;;;:50;:55;;11505:248;;11691:62;11708:12;11722:11;:9;:11::i;:::-;:30;11691:16;:62::i;:::-;11505:248;;;11578:11;:9;:11::i;:::-;:36;;;;:22;;:36;;-1:-1:-1;11578:36:23;;;:46;;;;11354:418::o;18749:196::-;18878:7;18910:27;887:13:79;;-1:-1:-1;;;;;887:13:79;;807:101;18957:207:23;1531:13:1;:11;:13::i;:::-;19120:36:23::1;19146:9;19120:25;:36::i;:::-;18957:207:::0;:::o;21511:145::-;21625:13;;21511:145::o;19954:204::-;20095:10;20090:61;;20122:17;20130:8;20122:7;:17::i;:::-;19954:204;;:::o;22195:250:64:-;22284:20;;:::i;:::-;22322:32;22357:31;22378:9;22357:20;:31::i;:::-;22322:66;;22406:31;22427:9;22406:20;:31::i;26954:181::-;27069:7;27043:6;25524;:14;;;25516:77;;;;-1:-1:-1;;;25516:77:64;;;;;;;:::i;:::-;27101:26:::1;27111:15;27119:6;27111:7;:15::i;:::-;27101:9;:26::i;4316:338:70:-:0;4430:6;4455:15;-1:-1:-1;;;;;4534:4:70;4540:5;4523:23;;;;;;;;12424:25:84;;;12480:2;12465:18;;12458:34;12412:2;12397:18;;12250:248;4523:23:70;;;;-1:-1:-1;;4523:23:70;;;;;;;;;4495:66;;4523:23;4495:66;;;;4473:123;;-1:-1:-1;4642:3:70;4622:15;;;;4473:123;4622:15;:::i;:::-;4621:24;;;4316:338;-1:-1:-1;;;;;4316:338:70:o;1796:162:1:-;18686:7:23;1710:6:1;-1:-1:-1;;;;;1710:6:1;735:10:3;1855:23:1;1851:101;;1901:40;;-1:-1:-1;;;1901:40:1;;735:10:3;1901:40:1;;;2825:51:84;2798:18;;1901:40:1;2659:223:84;1478:156:79;1568:13;1561:20;;-1:-1:-1;;;;;;1561:20:79;;;1592:34;1617:8;1592:24;:34::i;1719:245::-;735:10:3;;1816:14:79;:12;:14::i;:::-;-1:-1:-1;;;;;1816:24:79;;1812:108;;1857:51;;-1:-1:-1;;;1857:51:79;;14910:2:84;1857:51:79;;;14892:21:84;14949:2;14929:18;;;14922:30;14988:34;14968:18;;;14961:62;-1:-1:-1;;;15039:18:84;;;15032:39;15088:19;;1857:51:79;14708:405:84;1812:108:79;1930:26;1949:6;1930:18;:26::i;5494:1242:23:-;5597:7;5626:11;:9;:11::i;:::-;:36;;;;:22;;;;;:36;;;;;:50;:55;;5622:138;;5713:35;5735:12;5713:21;:35::i;:::-;5698:50;;5622:138;5772:29;5804:11;:9;:11::i;:::-;:22;;:36;5827:12;5804:36;;;;;;;;;;;5772:68;;5851:22;5876:11;:25;;;5851:50;;5912:85;5935:14;5953:1;5935:19;;5912:85;;;;;;;;;;;;;-1:-1:-1;;;5912:85:23;;;:8;:85::i;:::-;6052:47;;-1:-1:-1;;;6052:47:23;;;;;3033:25:84;;;6018:31:23;;6052:8;-1:-1:-1;;;;;6052:31:23;;;;3006:18:84;;6052:47:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6018:81;-1:-1:-1;6125:29:23;6114:7;:40;;;;;;;;:::i;:::-;;6110:619;;6197:48;;-1:-1:-1;;;6197:48:23;;;;;3033:25:84;;;6197:121:23;;:87;;-1:-1:-1;;;;;6197:8:23;:32;;;;3006:18:84;;6197:48:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6197:48:23;;;;;;;;;;;;:::i;:::-;:85;:87::i;6110:619::-;6366:29;6355:7;:40;;;;;;;;:::i;:::-;;6351:378;;6442:21;;;;6478:104;;;;;;;;;;;;-1:-1:-1;;;6478:104:23;;;;;;6505:24;;;;6478:8;:104::i;:::-;6604:42;6626:19;6604:21;:42::i;:::-;6597:49;5494:1242;-1:-1:-1;;;;;;5494:1242:23:o;6351:378::-;6689:28;;;;;;;;;;;;;;-1:-1:-1;;;6689:28:23;;;:7;:28::i;21066:256::-;21149:7;21188;21178;:17;21177:126;;21235:68;21252:7;21261:11;:9;:11::i;:::-;:31;;;;:22;;;;:31;;;;;:41;;21235:16;:68::i;21177:126::-;-1:-1:-1;21212:7:23;21169:145;-1:-1:-1;21066:256:23:o;3081:220:70:-;3144:4;;3183:24;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3183:28:70;;:71;;;;-1:-1:-1;3253:1:70;3233:17;;;;:3;:17;:::i;:::-;:21;;;3183:71;:99;;;;-1:-1:-1;3279:3:70;3258:17;;;;:3;:17;:::i;:::-;:24;;;;3161:132;3081:220;-1:-1:-1;;3081:220:70:o;20587:292:23:-;20670:7;20710;20699;:18;;20698:162;;20792:68;20809:7;20818:11;:9;:11::i;:::-;:31;;;;:22;;;;:31;;;;;:41;;20792:16;:68::i;20698:162::-;20735:11;:9;:11::i;:::-;:31;;;;:22;;:31;;-1:-1:-1;20735:31:23;;;:41;;;;20587:292;-1:-1:-1;20587:292:23:o;2543:215:1:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:1;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:1;;2700:1:::1;2672:31;::::0;::::1;2825:51:84::0;2798:18;;2672:31:1::1;2659:223:84::0;2488:204:66;2563:11;;:::i;:::-;2622:32;;;;;;;;;;;;2586:33;2622:32;;;;2668:18;2622:32;2668:10;:18::i;31124:414:64:-;31223:20;;:::i;:::-;-1:-1:-1;31470:8:64;;;;31502:28;;;;;;;;;-1:-1:-1;;;;;31470:14:64;;;31482:2;31470:14;;31502:28;;;;;;;;;;31124:414::o;26428:181::-;26540:12;26515:6;25524;:14;;;25516:77;;;;-1:-1:-1;;;25516:77:64;;;;;;;:::i;:::-;26577:24:::1;:6;:12;;;:22;:24::i;22867:122::-:0;22930:7;22957:24;22970:6;22978:2;22957:12;:24::i;2912:187:1:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:1;;;-1:-1:-1;;;;;;3020:17:1;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;3010:1033:66:-;3120:11;;:::i;:::-;1949;;:18;3098:6;;1949:11;:23;1945:79;;1990:26;;-1:-1:-1;;;1990:26:66;;;;;;;;;;;1945:79;3143:17:::1;3185:3;3143:17:::0;-1:-1:-1;;;;;3143:17:66;3293:4:::1;3304:492;3311:8;3304:492;;;3401:18;:6;:16;:18::i;:::-;3387:32:::0;-1:-1:-1;3428:6:66;::::1;::::0;::::1;:::i;:::-;3455:16:::0;3470:1:::1;3455:16:::0;;;;;-1:-1:-1;3518:4:66::1;3504:18:::0;::::1;::::0;-1:-1:-1;3428:6:66;-1:-1:-1;;;;3569:27:66;;3565:224:::1;;3624:13;::::0;::::1;::::0;3654:41:::1;3624:6:::0;3673:21;3654:10:::1;:41::i;:::-;3648:47;;3729:7;3713:6;:13;;;:23;;;;:::i;:::-;3706:30;::::0;;::::1;:::i;:::-;;;3598:148;3304:492;;3565:224;-1:-1:-1::0;3774:5:66::1;3304:492;;;1320:1;3806:35;::::0;::::1;;3802:96;;;3859:31;::::0;-1:-1:-1;;;3859:31:66;;16400:4:84;16388:17;;3859:31:66::1;::::0;::::1;16370:36:84::0;16343:18;;3859:31:66::1;16226:186:84::0;3802:96:66::1;-1:-1:-1::0;3911:126:66::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;::::0;;;;-1:-1:-1;;;;;3911:126:66;;::::1;::::0;;;;::::1;::::0;;;;-1:-1:-1;3911:126:66;;3010:1033;-1:-1:-1;3010:1033:66:o;10269:921::-;10380:19;10342:4;1071:1;1787:8;1769:26;;:4;:14;;;:26;;;1765:101;;1833:14;;;;;1813:45;;-1:-1:-1;;;1813:45:66;;16617:4:84;16605:17;;;1813:45:66;;;16587:36:84;16659:17;;;16639:18;;;16632:45;16560:18;;1813:45:66;16417:266:84;1765:101:66;10422:72:::1;10441:4;:11;;;10461:4;:26;;;10422:10;:72::i;:::-;-1:-1:-1::0;;;;;10411:83:66::1;:8;::::0;::::1;:83:::0;;;-1:-1:-1;;10505:22:66;10501:684:::1;;10626:13;10649:83;10687:4;:11;;;10709:4;:14;;;10649:27;:83::i;:::-;10626:107:::0;-1:-1:-1;1366:16:66::1;10746:19:::0;;::::1;;10742:372;;;10804:11:::0;;:24:::1;::::0;::::1;::::0;;::::1;::::0;:16:::1;:24;:::i;:::-;10787:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;10778:51;;10856:89;10896:4;:11;;;10920:4;:14;;;10856:27;:89::i;:::-;10840:106:::0;-1:-1:-1;1366:16:66::1;10961:19:::0;;::::1;;10957:148;;;11056:11:::0;;11035:6;;11056:24:::1;::::0;::::1;::::0;;::::1;::::0;:16:::1;:24;:::i;:::-;11004:89;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10995:98;;10529:592;10501:684;;;11167:8;::::0;::::1;::::0;11143:11;;:34:::1;::::0;::::1;::::0;;::::1;::::0;:16:::1;:34;:::i;:::-;11136:41;;;;22997:413:64::0;23098:16;23152:2;23139:9;:15;;;;23132:23;;;;:::i;:::-;23191:9;23219;23203:25;;:6;:13;:25;:53;;23243:6;:13;23203:53;;;23231:9;23203:53;;;23191:65;;23276:7;23271:121;23294:4;23289:2;:9;23271:121;;;23369:2;23374:1;23369:6;23346;23353:2;23346:10;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;23346:10:64;23338:38;;23326:50;;;;;23300:5;;23271:121;;;;23166:237;22997:413;;;;:::o;13731:315:65:-;13857:11;13808:6;:13;;;13823:6;:11;;;:18;1012:6;1004:5;:14;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:65;;;;;12424:25:84;;;12465:18;;;12458:34;;;12397:18;;1036:31:65;12250:248:84;1000:75:65;13900:11;;13932:13:::1;::::0;::::1;::::0;;13985:25;;;13999:1:::1;13985:25:::0;13979:32;;-1:-1:-1;13932:13:65;;;14024:16:::1;13932:13:::0;14024:16:::1;:::i;:::-;;;::::0;::::1;13873:173;;13731:315:::0;;;;;:::o;8833:697:66:-;8972:6;9018:2;8994:21;:26;;;8990:77;;;-1:-1:-1;9031:28:66;;;;;8990:77;9077:21;:27;;9102:2;9077:27;9073:75;;9122:18;:6;:16;:18::i;:::-;9115:25;;;;;;9073:75;9158:21;:27;;9183:2;9158:27;9154:76;;9203:19;:6;:17;:19::i;:::-;9196:26;;;;;;9154:76;9240:21;:27;;9265:2;9240:27;9236:76;;9285:19;:6;:17;:19::i;:::-;9278:26;;;;;;9236:76;9322:21;:27;;9347:2;9322:27;9318:76;;9367:19;:6;:17;:19::i;:::-;9360:26;;;;9318:76;9404:21;:27;;9429:2;9404:27;9400:67;;-1:-1:-1;;;;;;9442:17:66;;9400:67;9480:44;;-1:-1:-1;;;9480:44:66;;16400:4:84;16388:17;;9480:44:66;;;16370:36:84;16343:18;;9480:44:66;16226:186:84;18997:541:66;19139:10;19161:17;19181:18;:6;:16;:18::i;:::-;19161:38;;19210:11;:19;;19225:4;19210:19;19206:59;;-1:-1:-1;;;;;19240:17:66;;;;;19206:59;19277;19296:6;19311:11;19325:4;19311:18;19277:10;:59::i;:::-;19271:65;-1:-1:-1;;;;;;19347:17:66;;;;19343:190;;19382:26;;-1:-1:-1;;;19382:26:66;;-1:-1:-1;;;;;17893:31:84;;19382:26:66;;;17875:50:84;17848:18;;19382:26:66;17730:201:84;19343:190:66;19440:16;19426:31;;19440:16;19455:1;19440:16;;;;19426:31;19422:111;;19475:50;;-1:-1:-1;;;19475:50:66;;19496:16;19511:1;19496:16;;;;19475:50;;;16587:36:84;19496:16:66;16659:17:84;;16639:18;;;16632:45;16560:18;;19475:50:66;16417:266:84;19422:111:66;19154:384;18997:541;;;;:::o;5250:934:65:-;5393:19;5351:6;5335;:13;;;:22;;;;:::i;:::-;5359:11;;:18;1004:14;;;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:65;;;;;12424:25:84;;;12465:18;;;12458:34;;;12397:18;;1036:31:65;12250:248:84;1000:75:65;5497:6:::1;-1:-1:-1::0;;;;;5487:17:65::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;5487:17:65::1;-1:-1:-1::0;5478:26:65;-1:-1:-1;5567:10:65;;5563:616:::1;;5609:11:::0;;5643:13:::1;::::0;;::::1;::::0;;5815:27;;;;;;5874:15;::::1;5963:85;5874:15:::0;5815:27;6033:6;5963::::1;:85::i;:::-;6109:62;6124:6;6141;6158:4;6109;:62::i;:::-;;5579:600;;;;5250:934:::0;;;;;;:::o;14288:323::-;14419:12;14366:6;:13;;;14382:1;14366:17;;;;:::i;:::-;14385:11;;:18;1004:14;;;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:65;;;;;12424:25:84;;;12465:18;;;12458:34;;;12397:18;;1036:31:65;12250:248:84;1000:75:65;14463:11;;14495:13:::1;::::0;::::1;::::0;;14562:1:::1;14548:25:::0;;;;;14542:32;;-1:-1:-1;14495:13:65;;14587:18:::1;14562:1:::0;14495:13;14587:18:::1;:::i;:::-;::::0;;-1:-1:-1;14288:323:65;;;-1:-1:-1;;;;;14288:323:65:o;14853:::-;14984:12;14931:6;:13;;;14947:1;14931:17;;;;:::i;:::-;14950:11;;:18;1004:14;;;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:65;;;;;12424:25:84;;;12465:18;;;12458:34;;;12397:18;;1036:31:65;12250:248:84;1000:75:65;15028:11;;15060:13:::1;::::0;::::1;::::0;;15127:1:::1;15113:25:::0;;;;;15107:32;;-1:-1:-1;15060:13:65;;15152:18:::1;15127:1:::0;15060:13;15152:18:::1;:::i;15418:323::-:0;15549:12;15496:6;:13;;;15512:1;15496:17;;;;:::i;:::-;15515:11;;:18;1004:14;;;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:65;;;;;12424:25:84;;;12465:18;;;12458:34;;;12397:18;;1036:31:65;12250:248:84;1000:75:65;15593:11;;15625:13:::1;::::0;::::1;::::0;;15692:1:::1;15678:25:::0;;;;;15672:32;;-1:-1:-1;15625:13:65;;15717:18:::1;15692:1:::0;15625:13;15717:18:::1;:::i;23103:622::-:0;23274:147;23288:2;23281:3;:9;23274:147;;23349:10;;23336:24;;23389:2;23381:10;;;;23402:9;;;;-1:-1:-1;;23292:9:65;23274:147;;;23433:7;;23429:284;;23572:10;;23627:11;;23507:2;:8;;;23499:3;:17;-1:-1:-1;;23499:21:65;23584:10;;23568:27;;;23623:23;;23671:21;23658:35;;23103:622;;;:::o;21757:329::-;21927:4;21885:6;21893;:11;;;:18;1012:6;1004:5;:14;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:65;;;;;12424:25:84;;;12465:18;;;12458:34;;;12397:18;;1036:31:65;12250:248:84;1000:75:65;21982:8:::1;21978:54;;;22011:13;::::0;::::1;::::0;22001:23:::1;::::0;;::::1;:::i;:::-;;;21978:54;-1:-1:-1::0;;;;22038:13:65::1;::::0;;;::::1;:22:::0;;;;21757:329::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:250:84:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:84;238:16;;231:27;14:250::o;269:1072::-;-1:-1:-1;;;670:3:84;663:34;645:3;726:6;720:13;742:75;810:6;805:2;800:3;796:12;789:4;781:6;777:17;742:75;:::i;:::-;877:13;;836:16;;;;899:76;877:13;961:2;953:11;;946:4;934:17;;899:76;:::i;:::-;1036:13;;994:17;;;1058:76;1036:13;1120:2;1112:11;;1105:4;1093:17;;1058:76;:::i;:::-;1195:13;;1153:17;;;1217:76;1195:13;1279:2;1271:11;;1264:4;1252:17;;1217:76;:::i;:::-;1313:17;1332:2;1309:26;;269:1072;-1:-1:-1;;;;;;269:1072:84:o;1346:180::-;1405:6;1458:2;1446:9;1437:7;1433:23;1429:32;1426:52;;;1474:1;1471;1464:12;1426:52;-1:-1:-1;1497:23:84;;1346:180;-1:-1:-1;1346:180:84:o;1950:121::-;2035:10;2028:5;2024:22;2017:5;2014:33;2004:61;;2061:1;2058;2051:12;2076:381;2152:6;2160;2168;2221:2;2209:9;2200:7;2196:23;2192:32;2189:52;;;2237:1;2234;2227:12;2189:52;2276:9;2263:23;2295:30;2319:5;2295:30;:::i;:::-;2344:5;2396:2;2381:18;;2368:32;;-1:-1:-1;2447:2:84;2432:18;;;2419:32;;2076:381;-1:-1:-1;;;2076:381:84:o;3251:127::-;3312:10;3307:3;3303:20;3300:1;3293:31;3343:4;3340:1;3333:15;3367:4;3364:1;3357:15;3383:348;3535:2;3520:18;;3568:1;3557:13;;3547:144;;3613:10;3608:3;3604:20;3601:1;3594:31;3648:4;3645:1;3638:15;3676:4;3673:1;3666:15;3547:144;3700:25;;;3383:348;:::o;5009:272::-;5067:6;5120:2;5108:9;5099:7;5095:23;5091:32;5088:52;;;5136:1;5133;5126:12;5088:52;5175:9;5162:23;5225:6;5218:5;5214:18;5207:5;5204:29;5194:57;;5247:1;5244;5237:12;5286:396;5435:2;5424:9;5417:21;5398:4;5467:6;5461:13;5510:6;5505:2;5494:9;5490:18;5483:34;5526:79;5598:6;5593:2;5582:9;5578:18;5573:2;5565:6;5561:15;5526:79;:::i;:::-;5666:2;5645:15;-1:-1:-1;;5641:29:84;5626:45;;;;5673:2;5622:54;;5286:396;-1:-1:-1;;5286:396:84:o;5687:195::-;5775:6;5828:2;5816:9;5807:7;5803:23;5799:32;5796:52;;;5844:1;5841;5834:12;6080:131;-1:-1:-1;;;;;6155:31:84;;6145:42;;6135:70;;6201:1;6198;6191:12;6216:247;6275:6;6328:2;6316:9;6307:7;6303:23;6299:32;6296:52;;;6344:1;6341;6334:12;6296:52;6383:9;6370:23;6402:31;6427:5;6402:31;:::i;6468:641::-;6748:3;6786:6;6780:13;6802:66;6861:6;6856:3;6849:4;6841:6;6837:17;6802:66;:::i;:::-;-1:-1:-1;;;6890:16:84;;;6915:19;;;6959:13;;6981:78;6959:13;7046:1;7035:13;;7028:4;7016:17;;6981:78;:::i;:::-;7079:20;7101:1;7075:28;;6468:641;-1:-1:-1;;;;6468:641:84:o;7114:127::-;7175:10;7170:3;7166:20;7163:1;7156:31;7206:4;7203:1;7196:15;7230:4;7227:1;7220:15;7246:127;7307:10;7302:3;7298:20;7295:1;7288:31;7338:4;7335:1;7328:15;7362:4;7359:1;7352:15;7378:127;7439:10;7434:3;7430:20;7427:1;7420:31;7470:4;7467:1;7460:15;7494:4;7491:1;7484:15;7510:165;7548:1;7582:4;7579:1;7575:12;7606:3;7596:37;;7613:18;;:::i;:::-;7665:3;7658:4;7655:1;7651:12;7647:22;7642:27;;;7510:165;;;;:::o;7680:148::-;7768:4;7747:12;;;7761;;;7743:31;;7786:13;;7783:39;;;7802:18;;:::i;7833:157::-;7863:1;7897:4;7894:1;7890:12;7921:3;7911:37;;7928:18;;:::i;:::-;7980:3;7973:4;7970:1;7966:12;7962:22;7957:27;;;7833:157;;;;:::o;7995:127::-;8056:10;8051:3;8047:20;8044:1;8037:31;8087:4;8084:1;8077:15;8111:4;8108:1;8101:15;8127:280;8217:6;8270:2;8258:9;8249:7;8245:23;8241:32;8238:52;;;8286:1;8283;8276:12;8238:52;8318:9;8312:16;8357:1;8350:5;8347:12;8337:40;;8373:1;8370;8363:12;8412:248;8479:2;8473:9;8521:4;8509:17;;-1:-1:-1;;;;;8541:34:84;;8577:22;;;8538:62;8535:88;;;8603:18;;:::i;:::-;8639:2;8632:22;8412:248;:::o;8665:129::-;-1:-1:-1;;;;;8743:5:84;8739:30;8732:5;8729:41;8719:69;;8784:1;8781;8774:12;8799:698;8852:5;8905:3;8898:4;8890:6;8886:17;8882:27;8872:55;;8923:1;8920;8913:12;8872:55;8952:6;8946:13;-1:-1:-1;;;;;9015:2:84;9011;9008:10;9005:36;;;9021:18;;:::i;:::-;9096:2;9090:9;9064:2;9150:13;;-1:-1:-1;;9146:22:84;;;9170:2;9142:31;9138:40;9126:53;;;9194:18;;;9214:22;;;9191:46;9188:72;;;9240:18;;:::i;:::-;9280:10;9276:2;9269:22;9315:2;9307:6;9300:18;9361:3;9354:4;9349:2;9341:6;9337:15;9333:26;9330:35;9327:55;;;9378:1;9375;9368:12;9327:55;9391:76;9464:2;9457:4;9449:6;9445:17;9438:4;9430:6;9426:17;9391:76;:::i;9502:1036::-;9599:6;9652:2;9640:9;9631:7;9627:23;9623:32;9620:52;;;9668:1;9665;9658:12;9620:52;9701:9;9695:16;-1:-1:-1;;;;;9771:2:84;9763:6;9760:14;9757:34;;;9787:1;9784;9777:12;9757:34;9810:22;;;;9866:4;9848:16;;;9844:27;9841:47;;;9884:1;9881;9874:12;9841:47;9910:17;;:::i;:::-;9957:2;9951:9;9969:33;9994:7;9969:33;:::i;:::-;10011:22;;10071:2;10063:11;;10057:18;10084:32;10057:18;10084:32;:::i;:::-;10143:2;10132:14;;10125:31;10194:2;10186:11;;10180:18;10207:32;10180:18;10207:32;:::i;:::-;10266:2;10255:14;;10248:31;10325:2;10317:11;;;10311:18;10295:14;;;10288:42;10369:3;10361:12;;10355:19;10386:16;;;10383:36;;;10415:1;10412;10405:12;10383:36;10452:55;10499:7;10488:8;10484:2;10480:17;10452:55;:::i;:::-;10446:3;10435:15;;10428:80;-1:-1:-1;10439:5:84;9502:1036;-1:-1:-1;;;;;9502:1036:84:o;11049:327::-;11274:25;;;11262:2;11247:18;;11308:62;11366:2;11351:18;;11343:6;10909:12;10957:4;10942:20;;10930:33;;11003:1;10999:17;-1:-1:-1;;;;;10995:42:84;10988:4;10979:14;;;10972:66;10822:222;11381:184;11451:6;11504:2;11492:9;11483:7;11479:23;11475:32;11472:52;;;11520:1;11517;11510:12;11472:52;-1:-1:-1;11543:16:84;;11381:184;-1:-1:-1;11381:184:84:o;11570:542::-;11825:4;11867:3;11856:9;11852:19;11844:27;;11898:6;11887:9;11880:25;11941:6;11936:2;11925:9;11921:18;11914:34;11984:6;11979:2;11968:9;11964:18;11957:34;12027:6;12022:2;12011:9;12007:18;12000:34;12043:63;12101:3;12090:9;12086:19;12078:6;10909:12;10957:4;10942:20;;10930:33;;11003:1;10999:17;-1:-1:-1;;;;;10995:42:84;10988:4;10979:14;;;10972:66;10822:222;12117:128;12184:9;;;12205:11;;;12202:37;;;12219:18;;:::i;12767:168::-;12834:6;12860:10;;;12872;;;12856:27;;12895:11;;;12892:37;;;12909:18;;:::i;12940:168::-;13013:9;;;13044;;13061:15;;;13055:22;;13041:37;13031:71;;13082:18;;:::i;13113:120::-;13153:1;13179;13169:35;;13184:18;;:::i;:::-;-1:-1:-1;13218:9:84;;13113:120::o;13238:127::-;13299:10;13294:3;13290:20;13287:1;13280:31;13330:4;13327:1;13320:15;13354:4;13351:1;13344:15;13370:114;13454:4;13447:5;13443:16;13436:5;13433:27;13423:55;;13474:1;13471;13464:12;13489:542;13658:5;13645:19;13673:31;13696:7;13673:31;:::i;:::-;13736:4;13727:7;13723:18;13713:28;;13766:4;13760:11;13815:2;13808:3;13804:8;13800:2;13796:17;13793:25;13787:4;13780:39;13867:2;13860:5;13856:14;13843:28;13880:32;13904:7;13880:32;:::i;:::-;14002:20;13992:7;13989:1;13985:15;13981:42;13976:2;13952:20;13948:25;13944:2;13940:34;13937:42;13934:90;13928:4;13921:104;;;;13489:542;;:::o;14036:414::-;14238:2;14220:21;;;14277:2;14257:18;;;14250:30;14316:34;14311:2;14296:18;;14289:62;-1:-1:-1;;;14382:2:84;14367:18;;14360:48;14440:3;14425:19;;14036:414::o;15118:335::-;15197:6;15250:2;15238:9;15229:7;15225:23;15221:32;15218:52;;;15266:1;15263;15256:12;15218:52;15299:9;15293:16;-1:-1:-1;;;;;15324:6:84;15321:30;15318:50;;;15364:1;15361;15354:12;15318:50;15387:60;15439:7;15430:6;15419:9;15415:22;15387:60;:::i;:::-;15377:70;15118:335;-1:-1:-1;;;;15118:335:84:o;15458:245::-;15516:6;15569:2;15557:9;15548:7;15544:23;15540:32;15537:52;;;15585:1;15582;15575:12;15537:52;15624:9;15611:23;15643:30;15667:5;15643:30;:::i;15708:243::-;15765:6;15818:2;15806:9;15797:7;15793:23;15789:32;15786:52;;;15834:1;15831;15824:12;15786:52;15873:9;15860:23;15892:29;15915:5;15892:29;:::i;15956:135::-;15995:3;16016:17;;;16013:43;;16036:18;;:::i;:::-;-1:-1:-1;16083:1:84;16072:13;;15956:135::o;16096:125::-;16161:9;;;16182:10;;;16179:36;;;16195:18;;:::i;16688:287::-;16817:3;16855:6;16849:13;16871:66;16930:6;16925:3;16918:4;16910:6;16906:17;16871:66;:::i;:::-;16953:16;;;;;16688:287;-1:-1:-1;;16688:287:84:o;16980:492::-;17155:3;17193:6;17187:13;17209:66;17268:6;17263:3;17256:4;17248:6;17244:17;17209:66;:::i;:::-;17338:13;;17297:16;;;;17360:70;17338:13;17297:16;17407:4;17395:17;;17360:70;:::i;:::-;17446:20;;16980:492;-1:-1:-1;;;;16980:492:84:o",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.8.0 <0.9.0;\r\n\r\nimport \"../WitnetRandomness.sol\";\r\nimport \"../apps/UsingWitnet.sol\";\r\nimport \"../interfaces/IWitnetRandomnessAdmin.sol\";\r\nimport \"../patterns/Ownable2Step.sol\";\r\n\r\n/// @title WitnetRandomnessV2: Unmalleable and provably-fair randomness generation based on the Witnet Oracle v2.*.\r\n/// @author The Witnet Foundation.\r\ncontract WitnetRandomnessV2\r\n    is\r\n        Ownable2Step,\r\n        UsingWitnet,\r\n        WitnetRandomness,\r\n        IWitnetRandomnessAdmin\r\n{\r\n    using Witnet for bytes;\r\n    using Witnet for Witnet.Result;\r\n    using WitnetV2 for WitnetV2.RadonSLA;\r\n\r\n    struct Randomize {\r\n        uint256 witnetQueryId;\r\n        uint256 prevBlock;\r\n        uint256 nextBlock;\r\n    }\r\n\r\n    struct Storage {\r\n        uint256 lastRandomizeBlock;\r\n        mapping (uint256 => Randomize) randomize_;\r\n    }\r\n\r\n    /// @notice Unique identifier of the RNG data request used on the Witnet Oracle blockchain for solving randomness.\r\n    /// @dev Can be used to track all randomness requests solved so far on the Witnet Oracle blockchain.\r\n    bytes32 immutable public override witnetRadHash;\r\n\r\n    constructor(\r\n            WitnetOracle _witnet,\r\n            address _operator\r\n        )\r\n        Ownable(_operator)\r\n        UsingWitnet(_witnet)\r\n    {\r\n        _require(\r\n            address(_witnet) == address(0)\r\n                || _witnet.specs() == type(IWitnetOracle).interfaceId,\r\n            \"uncompliant WitnetOracle\"\r\n        );\r\n        WitnetRequestBytecodes _registry = witnet().registry();\r\n        {\r\n            // Build own Witnet Randomness Request:\r\n            bytes32[] memory _retrievals = new bytes32[](1);\r\n            _retrievals[0] = _registry.verifyRadonRetrieval(\r\n                Witnet.RadonDataRequestMethods.RNG,\r\n                \"\", // no request url\r\n                \"\", // no request body\r\n                new string[2][](0), // no request headers\r\n                hex\"80\" // no request Radon script\r\n            );\r\n            Witnet.RadonFilter[] memory _filters;\r\n            bytes32 _aggregator = _registry.verifyRadonReducer(Witnet.RadonReducer({\r\n                opcode: Witnet.RadonReducerOpcodes.Mode,\r\n                filters: _filters // no filters\r\n            }));\r\n            bytes32 _tally = _registry.verifyRadonReducer(Witnet.RadonReducer({\r\n                opcode: Witnet.RadonReducerOpcodes.ConcatenateAndHash,\r\n                filters: _filters // no filters\r\n            }));\r\n            witnetRadHash = _registry.verifyRadonRequest(\r\n                _retrievals,\r\n                _aggregator,\r\n                _tally,\r\n                32, // 256 bits of pure entropy ;-)\r\n                new string[][](_retrievals.length)\r\n            );\r\n        }\r\n    }\r\n\r\n    receive() virtual external payable {\r\n        _revert(\"no transfers accepted\");\r\n    }\r\n\r\n    fallback() virtual external payable { \r\n        _revert(string(abi.encodePacked(\r\n            \"not implemented: 0x\",\r\n            Witnet.toHexString(uint8(bytes1(msg.sig))),\r\n            Witnet.toHexString(uint8(bytes1(msg.sig << 8))),\r\n            Witnet.toHexString(uint8(bytes1(msg.sig << 16))),\r\n            Witnet.toHexString(uint8(bytes1(msg.sig << 24)))\r\n        )));\r\n    }\r\n\r\n    function class() virtual override public pure returns (string memory) {\r\n        return type(WitnetRandomnessV2).name;\r\n    }\r\n\r\n    function specs() virtual override external pure returns (bytes4) {\r\n        return type(WitnetRandomness).interfaceId;\r\n    }\r\n\r\n    function witnet() override (IWitnetRandomness, UsingWitnet)\r\n        public view returns (WitnetOracle)\r\n    {\r\n        return UsingWitnet.witnet();\r\n    }\r\n\r\n    \r\n    /// ===============================================================================================================\r\n    /// --- 'IWitnetRandomness' implementation ------------------------------------------------------------------------\r\n\r\n    /// Returns amount of wei required to be paid as a fee when requesting randomization with a \r\n    /// transaction gas price as the one given.\r\n    function estimateRandomizeFee(uint256 _evmGasPrice)\r\n        public view\r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        return (\r\n            (100 + __witnetBaseFeeOverheadPercentage)\r\n                * __witnet.estimateBaseFee(\r\n                    _evmGasPrice, \r\n                    uint16(34)\r\n                ) \r\n        ) / 100;\r\n    }\r\n\r\n    /// @notice Retrieves the result of keccak256-hashing the given block number with the randomness value \r\n    /// @notice generated by the Witnet Oracle blockchain in response to the first non-errored randomize request solved \r\n    /// @notice after such block number.\r\n    /// @dev Reverts if:\r\n    /// @dev   i.   no `randomize()` was requested on neither the given block, nor afterwards.\r\n    /// @dev   ii.  the first non-errored `randomize()` request found on or after the given block is not solved yet.\r\n    /// @dev   iii. all `randomize()` requests that took place on or after the given block were solved with errors.\r\n    /// @param _blockNumber Block number from which the search will start\r\n    function fetchRandomnessAfter(uint256 _blockNumber)\r\n        public view\r\n        virtual override\r\n        returns (bytes32)\r\n    {\r\n        return keccak256(\r\n            abi.encode(\r\n                _blockNumber,\r\n                _fetchRandomnessAfter(_blockNumber)\r\n            )\r\n        );\r\n    }\r\n    \r\n    function _fetchRandomnessAfter(uint256 _blockNumber)\r\n        virtual internal view \r\n        returns (bytes32)\r\n    {\r\n        if (__storage().randomize_[_blockNumber].witnetQueryId == 0) {\r\n            _blockNumber = getRandomizeNextBlock(_blockNumber);\r\n        }\r\n\r\n        Randomize storage __randomize = __storage().randomize_[_blockNumber];\r\n        uint256 _witnetQueryId = __randomize.witnetQueryId;\r\n        _require(\r\n            _witnetQueryId != 0, \r\n            \"not randomized\"\r\n        );\r\n        \r\n        WitnetV2.ResponseStatus _status = __witnet.getQueryResponseStatus(_witnetQueryId);\r\n        if (_status == WitnetV2.ResponseStatus.Ready) {\r\n            return (\r\n                __witnet.getQueryResultCborBytes(_witnetQueryId)\r\n                    .toWitnetResult()\r\n                    .asBytes32()\r\n            );\r\n        } else if (_status == WitnetV2.ResponseStatus.Error) {\r\n            uint256 _nextRandomizeBlock = __randomize.nextBlock;\r\n            _require(\r\n                _nextRandomizeBlock != 0, \r\n                \"faulty randomize\"\r\n            );\r\n            return _fetchRandomnessAfter(_nextRandomizeBlock);\r\n        \r\n        } else {\r\n            _revert(\"pending randomize\");\r\n        }\r\n    }\r\n\r\n    /// @notice Retrieves the actual random value, unique hash and timestamp of the witnessing commit/reveal act that took\r\n    /// @notice place in the Witnet Oracle blockchain in response to the first non-errored randomize request\r\n    /// @notice solved after the given block number.\r\n    /// @dev Reverts if:\r\n    /// @dev   i.   no `randomize()` was requested on neither the given block, nor afterwards.\r\n    /// @dev   ii.  the first non-errored `randomize()` request found on or after the given block is not solved yet.\r\n    /// @dev   iii. all `randomize()` requests that took place on or after the given block were solved with errors.\r\n    /// @param _blockNumber Block number from which the search will start.\r\n    /// @return _witnetResultRandomness Random value provided by the Witnet blockchain and used for solving randomness after given block.\r\n    /// @return _witnetResultTimestamp Timestamp at which the randomness value was generated by the Witnet blockchain.\r\n    /// @return _witnetResultTallyHash Hash of the witnessing commit/reveal act that took place on the Witnet blockchain.\r\n    /// @return _witnetResultFinalityBlock EVM block number from which the provided randomness can be considered to be final.\r\n    function fetchRandomnessAfterProof(uint256 _blockNumber) \r\n        virtual override\r\n        public view \r\n        returns (\r\n            bytes32 _witnetResultRandomness,\r\n            uint64  _witnetResultTimestamp,\r\n            bytes32 _witnetResultTallyHash,\r\n            uint256 _witnetResultFinalityBlock\r\n        )\r\n    {\r\n        if (__storage().randomize_[_blockNumber].witnetQueryId == 0) {\r\n            _blockNumber = getRandomizeNextBlock(_blockNumber);\r\n        }\r\n\r\n        Randomize storage __randomize = __storage().randomize_[_blockNumber];\r\n        uint256 _witnetQueryId = __randomize.witnetQueryId;\r\n        _require(\r\n            _witnetQueryId != 0, \r\n            \"not randomized\"\r\n        );\r\n        \r\n        WitnetV2.ResponseStatus _status = __witnet.getQueryResponseStatus(_witnetQueryId);\r\n        if (_status == WitnetV2.ResponseStatus.Ready) {\r\n            WitnetV2.Response memory _witnetQueryResponse = __witnet.getQueryResponse(_witnetQueryId);\r\n            _witnetResultTimestamp = _witnetQueryResponse.resultTimestamp;\r\n            _witnetResultTallyHash = _witnetQueryResponse.resultTallyHash;\r\n            _witnetResultFinalityBlock = _witnetQueryResponse.finality;\r\n            _witnetResultRandomness = _witnetQueryResponse.resultCborBytes.toWitnetResult().asBytes32();\r\n\r\n        } else if (_status == WitnetV2.ResponseStatus.Error) {\r\n            uint256 _nextRandomizeBlock = __randomize.nextBlock;\r\n            _require(\r\n                _nextRandomizeBlock != 0, \r\n                \"faulty randomize\"\r\n            );\r\n            return fetchRandomnessAfterProof(_nextRandomizeBlock);\r\n        \r\n        } else {\r\n            _revert(\"pending randomize\");\r\n        }\r\n    }\r\n\r\n    /// @notice Returns last block number on which a randomize was requested.\r\n    function getLastRandomizeBlock()\r\n        virtual override\r\n        external view\r\n        returns (uint256)\r\n    {\r\n        return __storage().lastRandomizeBlock;\r\n    }\r\n\r\n    /// @notice Retrieves metadata related to the randomize request that got posted to the \r\n    /// @notice Witnet Oracle contract on the given block number.\r\n    /// @dev Returns zero values if no randomize request was actually posted on the given block.\r\n    /// @return _witnetQueryId Identifier of the underlying Witnet query created on the given block number. \r\n    /// @return _prevRandomizeBlock Block number in which a randomize request got posted just before this one. 0 if none.\r\n    /// @return _nextRandomizeBlock Block number in which a randomize request got posted just after this one, 0 if none.\r\n    function getRandomizeData(uint256 _blockNumber)\r\n        external view\r\n        virtual override\r\n        returns (\r\n            uint256 _witnetQueryId,\r\n            uint256 _prevRandomizeBlock,\r\n            uint256 _nextRandomizeBlock\r\n        )\r\n    {\r\n        Randomize storage __randomize = __storage().randomize_[_blockNumber];\r\n        _witnetQueryId = __randomize.witnetQueryId;\r\n        _prevRandomizeBlock = __randomize.prevBlock;\r\n        _nextRandomizeBlock = __randomize.nextBlock;\r\n    }\r\n\r\n    /// @notice Returns the number of the next block in which a randomize request was posted after the given one. \r\n    /// @param _blockNumber Block number from which the search will start.\r\n    /// @return Number of the first block found after the given one, or `0` otherwise.\r\n    function getRandomizeNextBlock(uint256 _blockNumber)\r\n        public view\r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        return ((__storage().randomize_[_blockNumber].witnetQueryId != 0)\r\n            ? __storage().randomize_[_blockNumber].nextBlock\r\n            // start search from the latest block\r\n            : _searchNextBlock(_blockNumber, __storage().lastRandomizeBlock)\r\n        );\r\n    }\r\n\r\n    /// @notice Returns the number of the previous block in which a randomize request was posted before the given one.\r\n    /// @param _blockNumber Block number from which the search will start. Cannot be zero.\r\n    /// @return First block found before the given one, or `0` otherwise.\r\n    function getRandomizePrevBlock(uint256 _blockNumber)\r\n        public view\r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        assert(_blockNumber > 0);\r\n        uint256 _latest = __storage().lastRandomizeBlock;\r\n        return ((_blockNumber > _latest)\r\n            ? _latest\r\n            // start search from the latest block\r\n            : _searchPrevBlock(_blockNumber, __storage().randomize_[_latest].prevBlock)\r\n        );\r\n    }\r\n\r\n    /// @notice Returns status of the first non-errored randomize request posted on or after the given block number.\r\n    /// @dev Possible values:\r\n    /// @dev - 0 -> Void: no randomize request was actually posted on or after the given block number.\r\n    /// @dev - 1 -> Awaiting: a randomize request was found but it's not yet solved by the Witnet blockchain.\r\n    /// @dev - 2 -> Ready: a successfull randomize value was reported and ready to be read.\r\n    /// @dev - 3 -> Error: all randomize requests after the given block were solved with errors.\r\n    /// @dev - 4 -> Finalizing: a randomize resolution has been reported from the Witnet blockchain, but it's not yet final.  \r\n    function getRandomizeStatus(uint256 _blockNumber)\r\n        virtual override\r\n        public view \r\n        returns (WitnetV2.ResponseStatus)\r\n    {\r\n        if (__storage().randomize_[_blockNumber].witnetQueryId == 0) {\r\n            _blockNumber = getRandomizeNextBlock(_blockNumber);\r\n        }\r\n        uint256 _witnetQueryId = __storage().randomize_[_blockNumber].witnetQueryId;\r\n        if (_witnetQueryId == 0) {\r\n            return WitnetV2.ResponseStatus.Void;\r\n        \r\n        } else {\r\n            WitnetV2.ResponseStatus _status = __witnet.getQueryResponseStatus(_witnetQueryId);\r\n            if (_status == WitnetV2.ResponseStatus.Error) {\r\n                uint256 _nextRandomizeBlock = __storage().randomize_[_blockNumber].nextBlock;\r\n                if (_nextRandomizeBlock != 0) {\r\n                    return getRandomizeStatus(_nextRandomizeBlock);\r\n                } else {\r\n                    return WitnetV2.ResponseStatus.Error;\r\n                }\r\n            } else {\r\n                return _status;\r\n            }\r\n        }\r\n    }\r\n\r\n    /// @notice Returns `true` only if a successfull resolution from the Witnet blockchain is found for the first \r\n    /// @notice non-errored randomize request posted on or after the given block number.\r\n    function isRandomized(uint256 _blockNumber)\r\n        public view\r\n        virtual override\r\n        returns (bool)\r\n    {\r\n        return (\r\n            getRandomizeStatus(_blockNumber) == WitnetV2.ResponseStatus.Ready\r\n        );\r\n    }\r\n\r\n    /// @notice Generates a pseudo-random number uniformly distributed within the range [0 .. _range), by using \r\n    /// @notice the given `nonce` and the randomness returned by `getRandomnessAfter(blockNumber)`. \r\n    /// @dev Fails under same conditions as `getRandomnessAfter(uint256)` does.\r\n    /// @param _range Range within which the uniformly-distributed random number will be generated.\r\n    /// @param _nonce Nonce value enabling multiple random numbers from the same randomness value.\r\n    /// @param _blockNumber Block number from which the search for the first randomize request solved aftewards will start.\r\n    function random(uint32 _range, uint256 _nonce, uint256 _blockNumber)\r\n        external view \r\n        virtual override\r\n        returns (uint32)\r\n    {\r\n        return WitnetV2.randomUniformUint32(\r\n            _range,\r\n            _nonce,\r\n            keccak256(\r\n                abi.encode(\r\n                    msg.sender,\r\n                    fetchRandomnessAfter(_blockNumber)\r\n                )\r\n            )\r\n        );\r\n    }\r\n\r\n    /// @notice Requests the Witnet oracle to generate an EVM-agnostic and trustless source of randomness. \r\n    /// @dev Only one randomness request per block will be actually posted to the Witnet Oracle. \r\n    /// @return _evmRandomizeFee Funds actually paid as randomize fee.\r\n    function randomize()\r\n        external payable\r\n        virtual override\r\n        returns (uint256 _evmRandomizeFee)\r\n    {\r\n        if (__storage().lastRandomizeBlock < block.number) {\r\n            _evmRandomizeFee = msg.value;\r\n            // Post the Witnet Randomness request:\r\n            uint _witnetQueryId = __witnet.postRequest{\r\n                value: _evmRandomizeFee\r\n            }(\r\n                witnetRadHash,\r\n                __witnetDefaultSLA  \r\n            );\r\n            // Keep Randomize data in storage:\r\n            Randomize storage __randomize = __storage().randomize_[block.number];\r\n            __randomize.witnetQueryId = _witnetQueryId;\r\n            // Update block links:\r\n            uint256 _prevBlock = __storage().lastRandomizeBlock;\r\n            __randomize.prevBlock = _prevBlock;\r\n            __storage().randomize_[_prevBlock].nextBlock = block.number;\r\n            __storage().lastRandomizeBlock = block.number;\r\n            // Throw event:\r\n            emit Randomizing(\r\n                block.number,\r\n                tx.gasprice,\r\n                _evmRandomizeFee,\r\n                _witnetQueryId,\r\n                __witnetDefaultSLA\r\n            );\r\n        }\r\n        // Transfer back unused funds:\r\n        if (_evmRandomizeFee < msg.value) {\r\n            payable(msg.sender).transfer(msg.value - _evmRandomizeFee);\r\n        }\r\n    }\r\n\r\n    /// @notice Returns the SLA parameters required for the Witnet Oracle blockchain to fulfill \r\n    /// @notice when solving randomness requests:\r\n    /// @notice - number of witnessing nodes contributing to randomness generation\r\n    /// @notice - reward in $nanoWIT received by every contributing node in the Witnet blockchain\r\n    function witnetQuerySLA() \r\n        virtual override\r\n        external view\r\n        returns (WitnetV2.RadonSLA memory)\r\n    {\r\n        return __witnetDefaultSLA;\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- 'IWitnetRandomnessAdmin' implementation -------------------------------------------------------------------\r\n\r\n    function acceptOwnership()\r\n        virtual override (IWitnetRandomnessAdmin, Ownable2Step)\r\n        public\r\n    {\r\n        Ownable2Step.acceptOwnership();\r\n    }\r\n\r\n    function baseFeeOverheadPercentage()\r\n        virtual override\r\n        external view \r\n        returns (uint16)\r\n    {\r\n        return __witnetBaseFeeOverheadPercentage;\r\n    }\r\n\r\n    function owner()\r\n        virtual override (IWitnetRandomnessAdmin, Ownable)\r\n        public view \r\n        returns (address)\r\n    {\r\n        return Ownable.owner();\r\n    }\r\n\r\n    function pendingOwner() \r\n        virtual override (IWitnetRandomnessAdmin, Ownable2Step)\r\n        public view\r\n        returns (address)\r\n    {\r\n        return Ownable2Step.pendingOwner();\r\n    }\r\n    \r\n    function transferOwnership(address _newOwner)\r\n        virtual override (IWitnetRandomnessAdmin, Ownable2Step)\r\n        public \r\n        onlyOwner\r\n    {\r\n        Ownable.transferOwnership(_newOwner);\r\n    }\r\n\r\n    function settleBaseFeeOverheadPercentage(uint16 _baseFeeOverheadPercentage)\r\n        virtual override\r\n        external\r\n        onlyOwner\r\n    {\r\n        __witnetBaseFeeOverheadPercentage = _baseFeeOverheadPercentage;\r\n    }\r\n\r\n    function settleWitnetQuerySLA(WitnetV2.RadonSLA calldata _witnetQuerySLA)\r\n        virtual override\r\n        external\r\n        onlyOwner\r\n    {\r\n        _require(\r\n            _witnetQuerySLA.isValid(),\r\n            \"invalid SLA\"\r\n        );\r\n        __witnetDefaultSLA = _witnetQuerySLA;\r\n    }\r\n\r\n\r\n    // ================================================================================================================\r\n    // --- Internal methods -------------------------------------------------------------------------------------------\r\n\r\n    function _require(\r\n            bool _condition, \r\n            string memory _message\r\n        )\r\n        internal pure\r\n    {\r\n        if (!_condition) {\r\n            _revert(_message);\r\n        }\r\n    }\r\n\r\n    function _revert(string memory _message)\r\n        internal pure\r\n    {\r\n        revert(\r\n            string(abi.encodePacked(\r\n                class(),\r\n                \": \",\r\n                _message\r\n            ))\r\n        );\r\n    }\r\n\r\n    /// @dev Recursively searches for the number of the first block after the given one in which a Witnet \r\n    /// @dev randomness request was posted. Returns 0 if none found.\r\n    function _searchNextBlock(uint256 _target, uint256 _latest) internal view returns (uint256) {\r\n        return ((_target >= _latest) \r\n            ? __storage().randomize_[_latest].nextBlock\r\n            : _searchNextBlock(_target, __storage().randomize_[_latest].prevBlock)\r\n        );\r\n    }\r\n\r\n    /// @dev Recursively searches for the number of the first block before the given one in which a Witnet \r\n    /// @dev randomness request was posted. Returns 0 if none found.\r\n    function _searchPrevBlock(uint256 _target, uint256 _latest) internal view returns (uint256) {\r\n        return ((_target > _latest)\r\n            ? _latest\r\n            : _searchPrevBlock(_target, __storage().randomize_[_latest].prevBlock)\r\n        );\r\n    }\r\n\r\n    bytes32 private constant _STORAGE_SLOT = \r\n        // keccak256(\"io.witnet.apps.randomness.v20\")\r\n        0x643778935c57df947f6944f6a5242a3e91445f6337f4b2ec670c8642153b614f;\r\n\r\n    function __storage() internal pure returns (Storage storage _ptr) {\r\n        assembly {\r\n            _ptr.slot := _STORAGE_SLOT\r\n        }\r\n    }\r\n}\r\n",
  "sourcePath": "C:\\Users\\guill\\github\\witnet\\witnet-solidity-bridge\\contracts\\apps\\WitnetRandomnessV2.sol",
  "ast": {
    "absolutePath": "project:/contracts/apps/WitnetRandomnessV2.sol",
    "exportedSymbols": {
      "Context": [
        509
      ],
      "IWitnetOracle": [
        13265
      ],
      "IWitnetOracleEvents": [
        13315
      ],
      "IWitnetRandomness": [
        13639
      ],
      "IWitnetRandomnessAdmin": [
        13677
      ],
      "IWitnetRandomnessEvents": [
        13696
      ],
      "IWitnetRequestBytecodes": [
        13979
      ],
      "IWitnetRequestFactory": [
        14002
      ],
      "Ownable": [
        401
      ],
      "Ownable2Step": [
        24094
      ],
      "UsingWitnet": [
        1157
      ],
      "Witnet": [
        17557
      ],
      "WitnetBuffer": [
        19191
      ],
      "WitnetCBOR": [
        20734
      ],
      "WitnetOracle": [
        749
      ],
      "WitnetRandomness": [
        794
      ],
      "WitnetRandomnessV2": [
        3137
      ],
      "WitnetRequestBytecodes": [
        849
      ],
      "WitnetRequestFactory": [
        880
      ],
      "WitnetV2": [
        23640
      ]
    },
    "id": 3138,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1994,
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:23"
      },
      {
        "absolutePath": "project:/contracts/WitnetRandomness.sol",
        "file": "../WitnetRandomness.sol",
        "id": 1995,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 3138,
        "sourceUnit": 795,
        "src": "70:33:23",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/apps/UsingWitnet.sol",
        "file": "../apps/UsingWitnet.sol",
        "id": 1996,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 3138,
        "sourceUnit": 1158,
        "src": "105:33:23",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/IWitnetRandomnessAdmin.sol",
        "file": "../interfaces/IWitnetRandomnessAdmin.sol",
        "id": 1997,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 3138,
        "sourceUnit": 13678,
        "src": "140:50:23",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/patterns/Ownable2Step.sol",
        "file": "../patterns/Ownable2Step.sol",
        "id": 1998,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 3138,
        "sourceUnit": 24095,
        "src": "192:38:23",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 2000,
              "name": "Ownable2Step",
              "nameLocations": [
                "432:12:23"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 24094,
              "src": "432:12:23"
            },
            "id": 2001,
            "nodeType": "InheritanceSpecifier",
            "src": "432:12:23"
          },
          {
            "baseName": {
              "id": 2002,
              "name": "UsingWitnet",
              "nameLocations": [
                "455:11:23"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 1157,
              "src": "455:11:23"
            },
            "id": 2003,
            "nodeType": "InheritanceSpecifier",
            "src": "455:11:23"
          },
          {
            "baseName": {
              "id": 2004,
              "name": "WitnetRandomness",
              "nameLocations": [
                "477:16:23"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 794,
              "src": "477:16:23"
            },
            "id": 2005,
            "nodeType": "InheritanceSpecifier",
            "src": "477:16:23"
          },
          {
            "baseName": {
              "id": 2006,
              "name": "IWitnetRandomnessAdmin",
              "nameLocations": [
                "504:22:23"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 13677,
              "src": "504:22:23"
            },
            "id": 2007,
            "nodeType": "InheritanceSpecifier",
            "src": "504:22:23"
          }
        ],
        "canonicalName": "WitnetRandomnessV2",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 1999,
          "nodeType": "StructuredDocumentation",
          "src": "234:153:23",
          "text": "@title WitnetRandomnessV2: Unmalleable and provably-fair randomness generation based on the Witnet Oracle v2.*.\n @author The Witnet Foundation."
        },
        "fullyImplemented": true,
        "id": 3137,
        "linearizedBaseContracts": [
          3137,
          13677,
          794,
          13696,
          13639,
          1157,
          13315,
          24094,
          401,
          509
        ],
        "name": "WitnetRandomnessV2",
        "nameLocation": "396:18:23",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 2010,
            "libraryName": {
              "id": 2008,
              "name": "Witnet",
              "nameLocations": [
                "541:6:23"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 17557,
              "src": "541:6:23"
            },
            "nodeType": "UsingForDirective",
            "src": "535:23:23",
            "typeName": {
              "id": 2009,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "552:5:23",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            }
          },
          {
            "global": false,
            "id": 2014,
            "libraryName": {
              "id": 2011,
              "name": "Witnet",
              "nameLocations": [
                "570:6:23"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 17557,
              "src": "570:6:23"
            },
            "nodeType": "UsingForDirective",
            "src": "564:31:23",
            "typeName": {
              "id": 2013,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 2012,
                "name": "Witnet.Result",
                "nameLocations": [
                  "581:6:23",
                  "588:6:23"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 16042,
                "src": "581:13:23"
              },
              "referencedDeclaration": 16042,
              "src": "581:13:23",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                "typeString": "struct Witnet.Result"
              }
            }
          },
          {
            "global": false,
            "id": 2018,
            "libraryName": {
              "id": 2015,
              "name": "WitnetV2",
              "nameLocations": [
                "607:8:23"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 23640,
              "src": "607:8:23"
            },
            "nodeType": "UsingForDirective",
            "src": "601:37:23",
            "typeName": {
              "id": 2017,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 2016,
                "name": "WitnetV2.RadonSLA",
                "nameLocations": [
                  "620:8:23",
                  "629:8:23"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 23503,
                "src": "620:17:23"
              },
              "referencedDeclaration": 23503,
              "src": "620:17:23",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_RadonSLA_$23503_storage_ptr",
                "typeString": "struct WitnetV2.RadonSLA"
              }
            }
          },
          {
            "canonicalName": "WitnetRandomnessV2.Randomize",
            "id": 2025,
            "members": [
              {
                "constant": false,
                "id": 2020,
                "mutability": "mutable",
                "name": "witnetQueryId",
                "nameLocation": "682:13:23",
                "nodeType": "VariableDeclaration",
                "scope": 2025,
                "src": "674:21:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2019,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "674:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2022,
                "mutability": "mutable",
                "name": "prevBlock",
                "nameLocation": "714:9:23",
                "nodeType": "VariableDeclaration",
                "scope": 2025,
                "src": "706:17:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2021,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "706:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2024,
                "mutability": "mutable",
                "name": "nextBlock",
                "nameLocation": "742:9:23",
                "nodeType": "VariableDeclaration",
                "scope": 2025,
                "src": "734:17:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2023,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "734:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Randomize",
            "nameLocation": "653:9:23",
            "nodeType": "StructDefinition",
            "scope": 3137,
            "src": "646:113:23",
            "visibility": "public"
          },
          {
            "canonicalName": "WitnetRandomnessV2.Storage",
            "id": 2033,
            "members": [
              {
                "constant": false,
                "id": 2027,
                "mutability": "mutable",
                "name": "lastRandomizeBlock",
                "nameLocation": "801:18:23",
                "nodeType": "VariableDeclaration",
                "scope": 2033,
                "src": "793:26:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2026,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "793:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2032,
                "mutability": "mutable",
                "name": "randomize_",
                "nameLocation": "861:10:23",
                "nodeType": "VariableDeclaration",
                "scope": 2033,
                "src": "830:41:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                  "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize)"
                },
                "typeName": {
                  "id": 2031,
                  "keyName": "",
                  "keyNameLocation": "-1:-1:-1",
                  "keyType": {
                    "id": 2028,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "839:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "830:30:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                    "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize)"
                  },
                  "valueName": "",
                  "valueNameLocation": "-1:-1:-1",
                  "valueType": {
                    "id": 2030,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2029,
                      "name": "Randomize",
                      "nameLocations": [
                        "850:9:23"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2025,
                      "src": "850:9:23"
                    },
                    "referencedDeclaration": 2025,
                    "src": "850:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                      "typeString": "struct WitnetRandomnessV2.Randomize"
                    }
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Storage",
            "nameLocation": "774:7:23",
            "nodeType": "StructDefinition",
            "scope": 3137,
            "src": "767:112:23",
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13638
            ],
            "constant": false,
            "documentation": {
              "id": 2034,
              "nodeType": "StructuredDocumentation",
              "src": "887:220:23",
              "text": "@notice Unique identifier of the RNG data request used on the Witnet Oracle blockchain for solving randomness.\n @dev Can be used to track all randomness requests solved so far on the Witnet Oracle blockchain."
            },
            "functionSelector": "613e9978",
            "id": 2037,
            "mutability": "immutable",
            "name": "witnetRadHash",
            "nameLocation": "1147:13:23",
            "nodeType": "VariableDeclaration",
            "overrides": {
              "id": 2036,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1138:8:23"
            },
            "scope": 3137,
            "src": "1113:47:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 2035,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "1113:7:23",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 2164,
              "nodeType": "Block",
              "src": "1322:1465:23",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 2069,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 2060,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "id": 2054,
                                "name": "_witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2040,
                                "src": "1364:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_WitnetOracle_$749",
                                  "typeString": "contract WitnetOracle"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_WitnetOracle_$749",
                                  "typeString": "contract WitnetOracle"
                                }
                              ],
                              "id": 2053,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1356:7:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 2052,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1356:7:23",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 2055,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1356:16:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 2058,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1384:1:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 2057,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1376:7:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 2056,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1376:7:23",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 2059,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1376:10:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1356:30:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          },
                          "id": 2068,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "id": 2061,
                                "name": "_witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2040,
                                "src": "1407:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_WitnetOracle_$749",
                                  "typeString": "contract WitnetOracle"
                                }
                              },
                              "id": 2062,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1415:5:23",
                              "memberName": "specs",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 748,
                              "src": "1407:13:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_bytes4_$",
                                "typeString": "function () view external returns (bytes4)"
                              }
                            },
                            "id": 2063,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1407:15:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 2065,
                                  "name": "IWitnetOracle",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13265,
                                  "src": "1431:13:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_IWitnetOracle_$13265_$",
                                    "typeString": "type(contract IWitnetOracle)"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_type$_t_contract$_IWitnetOracle_$13265_$",
                                    "typeString": "type(contract IWitnetOracle)"
                                  }
                                ],
                                "id": 2064,
                                "name": "type",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967269,
                                "src": "1426:4:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                  "typeString": "function () pure"
                                }
                              },
                              "id": 2066,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1426:19:23",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_meta_type_t_contract$_IWitnetOracle_$13265",
                                "typeString": "type(contract IWitnetOracle)"
                              }
                            },
                            "id": 2067,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "1446:11:23",
                            "memberName": "interfaceId",
                            "nodeType": "MemberAccess",
                            "src": "1426:31:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          },
                          "src": "1407:50:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1356:101:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "756e636f6d706c69616e74205769746e65744f7261636c65",
                        "id": 2070,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1472:26:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_98c42522887e2e66d5e822d8a9a13397d343c9bcc32d75b082108d48d1e12bfa",
                          "typeString": "literal_string \"uncompliant WitnetOracle\""
                        },
                        "value": "uncompliant WitnetOracle"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_98c42522887e2e66d5e822d8a9a13397d343c9bcc32d75b082108d48d1e12bfa",
                          "typeString": "literal_string \"uncompliant WitnetOracle\""
                        }
                      ],
                      "id": 2051,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3045,
                      "src": "1333:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2071,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1333:176:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2072,
                  "nodeType": "ExpressionStatement",
                  "src": "1333:176:23"
                },
                {
                  "assignments": [
                    2075
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2075,
                      "mutability": "mutable",
                      "name": "_registry",
                      "nameLocation": "1543:9:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 2164,
                      "src": "1520:32:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                        "typeString": "contract WitnetRequestBytecodes"
                      },
                      "typeName": {
                        "id": 2074,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 2073,
                          "name": "WitnetRequestBytecodes",
                          "nameLocations": [
                            "1520:22:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 849,
                          "src": "1520:22:23"
                        },
                        "referencedDeclaration": 849,
                        "src": "1520:22:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                          "typeString": "contract WitnetRequestBytecodes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2080,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 2076,
                          "name": "witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            2275
                          ],
                          "referencedDeclaration": 2275,
                          "src": "1555:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_WitnetOracle_$749_$",
                            "typeString": "function () view returns (contract WitnetOracle)"
                          }
                        },
                        "id": 2077,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1555:8:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_WitnetOracle_$749",
                          "typeString": "contract WitnetOracle"
                        }
                      },
                      "id": 2078,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1564:8:23",
                      "memberName": "registry",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 743,
                      "src": "1555:17:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_WitnetRequestBytecodes_$849_$",
                        "typeString": "function () view external returns (contract WitnetRequestBytecodes)"
                      }
                    },
                    "id": 2079,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1555:19:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                      "typeString": "contract WitnetRequestBytecodes"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1520:54:23"
                },
                {
                  "id": 2163,
                  "nodeType": "Block",
                  "src": "1585:1195:23",
                  "statements": [
                    {
                      "assignments": [
                        2085
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2085,
                          "mutability": "mutable",
                          "name": "_retrievals",
                          "nameLocation": "1670:11:23",
                          "nodeType": "VariableDeclaration",
                          "scope": 2163,
                          "src": "1653:28:23",
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[]"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 2083,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "1653:7:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "id": 2084,
                            "nodeType": "ArrayTypeName",
                            "src": "1653:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                              "typeString": "bytes32[]"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 2091,
                      "initialValue": {
                        "arguments": [
                          {
                            "hexValue": "31",
                            "id": 2089,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1698:1:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            }
                          ],
                          "id": 2088,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "1684:13:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (bytes32[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 2086,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "1688:7:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "id": 2087,
                            "nodeType": "ArrayTypeName",
                            "src": "1688:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                              "typeString": "bytes32[]"
                            }
                          }
                        },
                        "id": 2090,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1684:16:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1653:47:23"
                    },
                    {
                      "expression": {
                        "id": 2111,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "baseExpression": {
                            "id": 2092,
                            "name": "_retrievals",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2085,
                            "src": "1715:11:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 2094,
                          "indexExpression": {
                            "hexValue": "30",
                            "id": 2093,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1727:1:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "1715:14:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "arguments": [
                            {
                              "expression": {
                                "expression": {
                                  "id": 2097,
                                  "name": "Witnet",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17557,
                                  "src": "1781:6:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                    "typeString": "type(library Witnet)"
                                  }
                                },
                                "id": 2098,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "1788:23:23",
                                "memberName": "RadonDataRequestMethods",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 16410,
                                "src": "1781:30:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_RadonDataRequestMethods_$16410_$",
                                  "typeString": "type(enum Witnet.RadonDataRequestMethods)"
                                }
                              },
                              "id": 2099,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "1812:3:23",
                              "memberName": "RNG",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 16407,
                              "src": "1781:34:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_RadonDataRequestMethods_$16410",
                                "typeString": "enum Witnet.RadonDataRequestMethods"
                              }
                            },
                            {
                              "hexValue": "",
                              "id": 2100,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1834:2:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              "value": ""
                            },
                            {
                              "hexValue": "",
                              "id": 2101,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1873:2:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              "value": ""
                            },
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 2107,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1929:1:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 2106,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "1913:15:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (string memory[2] memory[] memory)"
                                },
                                "typeName": {
                                  "baseType": {
                                    "baseType": {
                                      "id": 2102,
                                      "name": "string",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1917:6:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage_ptr",
                                        "typeString": "string"
                                      }
                                    },
                                    "id": 2104,
                                    "length": {
                                      "hexValue": "32",
                                      "id": 2103,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "1924:1:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_2_by_1",
                                        "typeString": "int_const 2"
                                      },
                                      "value": "2"
                                    },
                                    "nodeType": "ArrayTypeName",
                                    "src": "1917:9:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr",
                                      "typeString": "string[2]"
                                    }
                                  },
                                  "id": 2105,
                                  "nodeType": "ArrayTypeName",
                                  "src": "1917:11:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr",
                                    "typeString": "string[2][]"
                                  }
                                }
                              },
                              "id": 2108,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1913:18:23",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr",
                                "typeString": "string memory[2] memory[] memory"
                              }
                            },
                            {
                              "hexValue": "80",
                              "id": 2109,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "hexString",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1972:7:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
                                "typeString": "literal_string hex\"80\""
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_enum$_RadonDataRequestMethods_$16410",
                                "typeString": "enum Witnet.RadonDataRequestMethods"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              {
                                "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr",
                                "typeString": "string memory[2] memory[] memory"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
                                "typeString": "literal_string hex\"80\""
                              }
                            ],
                            "expression": {
                              "id": 2095,
                              "name": "_registry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2075,
                              "src": "1732:9:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                                "typeString": "contract WitnetRequestBytecodes"
                              }
                            },
                            "id": 2096,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1742:20:23",
                            "memberName": "verifyRadonRetrieval",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 13947,
                            "src": "1732:30:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_enum$_RadonDataRequestMethods_$16410_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (enum Witnet.RadonDataRequestMethods,string memory,string memory,string memory[2] memory[] memory,bytes memory) external returns (bytes32)"
                            }
                          },
                          "id": 2110,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1732:289:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "1715:306:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "id": 2112,
                      "nodeType": "ExpressionStatement",
                      "src": "1715:306:23"
                    },
                    {
                      "assignments": [
                        2118
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2118,
                          "mutability": "mutable",
                          "name": "_filters",
                          "nameLocation": "2064:8:23",
                          "nodeType": "VariableDeclaration",
                          "scope": 2163,
                          "src": "2036:36:23",
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_RadonFilter_$16439_memory_ptr_$dyn_memory_ptr",
                            "typeString": "struct Witnet.RadonFilter[]"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 2116,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 2115,
                                "name": "Witnet.RadonFilter",
                                "nameLocations": [
                                  "2036:6:23",
                                  "2043:11:23"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 16439,
                                "src": "2036:18:23"
                              },
                              "referencedDeclaration": 16439,
                              "src": "2036:18:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RadonFilter_$16439_storage_ptr",
                                "typeString": "struct Witnet.RadonFilter"
                              }
                            },
                            "id": 2117,
                            "nodeType": "ArrayTypeName",
                            "src": "2036:20:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_RadonFilter_$16439_storage_$dyn_storage_ptr",
                              "typeString": "struct Witnet.RadonFilter[]"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 2119,
                      "nodeType": "VariableDeclarationStatement",
                      "src": "2036:36:23"
                    },
                    {
                      "assignments": [
                        2121
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2121,
                          "mutability": "mutable",
                          "name": "_aggregator",
                          "nameLocation": "2095:11:23",
                          "nodeType": "VariableDeclaration",
                          "scope": 2163,
                          "src": "2087:19:23",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 2120,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2087:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 2132,
                      "initialValue": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "expression": {
                                  "expression": {
                                    "id": 2126,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17557,
                                    "src": "2185:6:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 2127,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "2192:19:23",
                                  "memberName": "RadonReducerOpcodes",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16474,
                                  "src": "2185:26:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_RadonReducerOpcodes_$16474_$",
                                    "typeString": "type(enum Witnet.RadonReducerOpcodes)"
                                  }
                                },
                                "id": 2128,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "2212:4:23",
                                "memberName": "Mode",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 16464,
                                "src": "2185:31:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_RadonReducerOpcodes_$16474",
                                  "typeString": "enum Witnet.RadonReducerOpcodes"
                                }
                              },
                              {
                                "id": 2129,
                                "name": "_filters",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2118,
                                "src": "2244:8:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_RadonFilter_$16439_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "struct Witnet.RadonFilter memory[] memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_RadonReducerOpcodes_$16474",
                                  "typeString": "enum Witnet.RadonReducerOpcodes"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_struct$_RadonFilter_$16439_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "struct Witnet.RadonFilter memory[] memory"
                                }
                              ],
                              "expression": {
                                "id": 2124,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17557,
                                "src": "2138:6:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 2125,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2145:12:23",
                              "memberName": "RadonReducer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 16460,
                              "src": "2138:19:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_RadonReducer_$16460_storage_ptr_$",
                                "typeString": "type(struct Witnet.RadonReducer storage pointer)"
                              }
                            },
                            "id": 2130,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "nameLocations": [
                              "2177:6:23",
                              "2235:7:23"
                            ],
                            "names": [
                              "opcode",
                              "filters"
                            ],
                            "nodeType": "FunctionCall",
                            "src": "2138:144:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RadonReducer_$16460_memory_ptr",
                              "typeString": "struct Witnet.RadonReducer memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_RadonReducer_$16460_memory_ptr",
                              "typeString": "struct Witnet.RadonReducer memory"
                            }
                          ],
                          "expression": {
                            "id": 2122,
                            "name": "_registry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2075,
                            "src": "2109:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                              "typeString": "contract WitnetRequestBytecodes"
                            }
                          },
                          "id": 2123,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2119:18:23",
                          "memberName": "verifyRadonReducer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13955,
                          "src": "2109:28:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_struct$_RadonReducer_$16460_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (struct Witnet.RadonReducer memory) external returns (bytes32)"
                          }
                        },
                        "id": 2131,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2109:174:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "2087:196:23"
                    },
                    {
                      "assignments": [
                        2134
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2134,
                          "mutability": "mutable",
                          "name": "_tally",
                          "nameLocation": "2306:6:23",
                          "nodeType": "VariableDeclaration",
                          "scope": 2163,
                          "src": "2298:14:23",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 2133,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2298:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 2145,
                      "initialValue": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "expression": {
                                  "expression": {
                                    "id": 2139,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17557,
                                    "src": "2391:6:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 2140,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "2398:19:23",
                                  "memberName": "RadonReducerOpcodes",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16474,
                                  "src": "2391:26:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_RadonReducerOpcodes_$16474_$",
                                    "typeString": "type(enum Witnet.RadonReducerOpcodes)"
                                  }
                                },
                                "id": 2141,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "2418:18:23",
                                "memberName": "ConcatenateAndHash",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 16473,
                                "src": "2391:45:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_RadonReducerOpcodes_$16474",
                                  "typeString": "enum Witnet.RadonReducerOpcodes"
                                }
                              },
                              {
                                "id": 2142,
                                "name": "_filters",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2118,
                                "src": "2464:8:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_RadonFilter_$16439_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "struct Witnet.RadonFilter memory[] memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_RadonReducerOpcodes_$16474",
                                  "typeString": "enum Witnet.RadonReducerOpcodes"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_struct$_RadonFilter_$16439_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "struct Witnet.RadonFilter memory[] memory"
                                }
                              ],
                              "expression": {
                                "id": 2137,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17557,
                                "src": "2344:6:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 2138,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2351:12:23",
                              "memberName": "RadonReducer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 16460,
                              "src": "2344:19:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_RadonReducer_$16460_storage_ptr_$",
                                "typeString": "type(struct Witnet.RadonReducer storage pointer)"
                              }
                            },
                            "id": 2143,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "nameLocations": [
                              "2383:6:23",
                              "2455:7:23"
                            ],
                            "names": [
                              "opcode",
                              "filters"
                            ],
                            "nodeType": "FunctionCall",
                            "src": "2344:158:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RadonReducer_$16460_memory_ptr",
                              "typeString": "struct Witnet.RadonReducer memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_RadonReducer_$16460_memory_ptr",
                              "typeString": "struct Witnet.RadonReducer memory"
                            }
                          ],
                          "expression": {
                            "id": 2135,
                            "name": "_registry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2075,
                            "src": "2315:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                              "typeString": "contract WitnetRequestBytecodes"
                            }
                          },
                          "id": 2136,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2325:18:23",
                          "memberName": "verifyRadonReducer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13955,
                          "src": "2315:28:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_struct$_RadonReducer_$16460_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (struct Witnet.RadonReducer memory) external returns (bytes32)"
                          }
                        },
                        "id": 2144,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2315:188:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "2298:205:23"
                    },
                    {
                      "expression": {
                        "id": 2161,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "id": 2146,
                          "name": "witnetRadHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2037,
                          "src": "2518:13:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "arguments": [
                            {
                              "id": 2149,
                              "name": "_retrievals",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2085,
                              "src": "2581:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "id": 2150,
                              "name": "_aggregator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2121,
                              "src": "2611:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "id": 2151,
                              "name": "_tally",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2134,
                              "src": "2641:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "hexValue": "3332",
                              "id": 2152,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2666:2:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_32_by_1",
                                "typeString": "int_const 32"
                              },
                              "value": "32"
                            },
                            {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 2157,
                                    "name": "_retrievals",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2085,
                                    "src": "2734:11:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 2158,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "2746:6:23",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "2734:18:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 2156,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "2719:14:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (string memory[] memory[] memory)"
                                },
                                "typeName": {
                                  "baseType": {
                                    "baseType": {
                                      "id": 2153,
                                      "name": "string",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "2723:6:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage_ptr",
                                        "typeString": "string"
                                      }
                                    },
                                    "id": 2154,
                                    "nodeType": "ArrayTypeName",
                                    "src": "2723:8:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                                      "typeString": "string[]"
                                    }
                                  },
                                  "id": 2155,
                                  "nodeType": "ArrayTypeName",
                                  "src": "2723:10:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_array$_t_string_storage_$dyn_storage_$dyn_storage_ptr",
                                    "typeString": "string[][]"
                                  }
                                }
                              },
                              "id": 2159,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2719:34:23",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr",
                                "typeString": "string memory[] memory[] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_rational_32_by_1",
                                "typeString": "int_const 32"
                              },
                              {
                                "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr",
                                "typeString": "string memory[] memory[] memory"
                              }
                            ],
                            "expression": {
                              "id": 2147,
                              "name": "_registry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2075,
                              "src": "2534:9:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                                "typeString": "contract WitnetRequestBytecodes"
                              }
                            },
                            "id": 2148,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2544:18:23",
                            "memberName": "verifyRadonRequest",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 13973,
                            "src": "2534:28:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$_t_uint16_$_t_array$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes32[] memory,bytes32,bytes32,uint16,string memory[] memory[] memory) external returns (bytes32)"
                            }
                          },
                          "id": 2160,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2534:234:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "2518:250:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "id": 2162,
                      "nodeType": "ExpressionStatement",
                      "src": "2518:250:23"
                    }
                  ]
                }
              ]
            },
            "id": 2165,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 2045,
                    "name": "_operator",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2042,
                    "src": "1276:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 2046,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 2044,
                  "name": "Ownable",
                  "nameLocations": [
                    "1268:7:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 401,
                  "src": "1268:7:23"
                },
                "nodeType": "ModifierInvocation",
                "src": "1268:18:23"
              },
              {
                "arguments": [
                  {
                    "id": 2048,
                    "name": "_witnet",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2040,
                    "src": "1308:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetOracle_$749",
                      "typeString": "contract WitnetOracle"
                    }
                  }
                ],
                "id": 2049,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 2047,
                  "name": "UsingWitnet",
                  "nameLocations": [
                    "1296:11:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1157,
                  "src": "1296:11:23"
                },
                "nodeType": "ModifierInvocation",
                "src": "1296:20:23"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2043,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2040,
                  "mutability": "mutable",
                  "name": "_witnet",
                  "nameLocation": "1208:7:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2165,
                  "src": "1195:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_WitnetOracle_$749",
                    "typeString": "contract WitnetOracle"
                  },
                  "typeName": {
                    "id": 2039,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2038,
                      "name": "WitnetOracle",
                      "nameLocations": [
                        "1195:12:23"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 749,
                      "src": "1195:12:23"
                    },
                    "referencedDeclaration": 749,
                    "src": "1195:12:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetOracle_$749",
                      "typeString": "contract WitnetOracle"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2042,
                  "mutability": "mutable",
                  "name": "_operator",
                  "nameLocation": "1238:9:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2165,
                  "src": "1230:17:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2041,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1230:7:23",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1180:78:23"
            },
            "returnParameters": {
              "id": 2050,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1322:0:23"
            },
            "scope": 3137,
            "src": "1169:1618:23",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2172,
              "nodeType": "Block",
              "src": "2830:51:23",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "6e6f207472616e7366657273206163636570746564",
                        "id": 2169,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2849:23:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f6a3de9692f94e64d352d00a12d05352c77c858c192f0bd7d2824e77178191cf",
                          "typeString": "literal_string \"no transfers accepted\""
                        },
                        "value": "no transfers accepted"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_f6a3de9692f94e64d352d00a12d05352c77c858c192f0bd7d2824e77178191cf",
                          "typeString": "literal_string \"no transfers accepted\""
                        }
                      ],
                      "id": 2168,
                      "name": "_revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3064,
                      "src": "2841:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 2170,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2841:32:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2171,
                  "nodeType": "ExpressionStatement",
                  "src": "2841:32:23"
                }
              ]
            },
            "id": 2173,
            "implemented": true,
            "kind": "receive",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2166,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2802:2:23"
            },
            "returnParameters": {
              "id": 2167,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2830:0:23"
            },
            "scope": 3137,
            "src": "2795:86:23",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": {
              "id": 2236,
              "nodeType": "Block",
              "src": "2925:345:23",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "6e6f7420696d706c656d656e7465643a203078",
                                "id": 2181,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2983:21:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_6aa2932fe75962e4eb862ba4982429ce713637712a759cb9d40b6d5260a002eb",
                                  "typeString": "literal_string \"not implemented: 0x\""
                                },
                                "value": "not implemented: 0x"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "expression": {
                                              "id": 2188,
                                              "name": "msg",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4294967281,
                                              "src": "3051:3:23",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                              }
                                            },
                                            "id": 2189,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "3055:3:23",
                                            "memberName": "sig",
                                            "nodeType": "MemberAccess",
                                            "src": "3051:7:23",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          ],
                                          "id": 2187,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "3044:6:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 2186,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "3044:6:23",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 2190,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3044:15:23",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      ],
                                      "id": 2185,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "3038:5:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 2184,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3038:5:23",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 2191,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "3038:22:23",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 2182,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17557,
                                    "src": "3019:6:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 2183,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "3026:11:23",
                                  "memberName": "toHexString",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16596,
                                  "src": "3019:18:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_string_memory_ptr_$",
                                    "typeString": "function (uint8) pure returns (string memory)"
                                  }
                                },
                                "id": 2192,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3019:42:23",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            },
                                            "id": 2202,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "expression": {
                                                "id": 2199,
                                                "name": "msg",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4294967281,
                                                "src": "3108:3:23",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_magic_message",
                                                  "typeString": "msg"
                                                }
                                              },
                                              "id": 2200,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberLocation": "3112:3:23",
                                              "memberName": "sig",
                                              "nodeType": "MemberAccess",
                                              "src": "3108:7:23",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes4",
                                                "typeString": "bytes4"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<<",
                                            "rightExpression": {
                                              "hexValue": "38",
                                              "id": 2201,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "3119:1:23",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_8_by_1",
                                                "typeString": "int_const 8"
                                              },
                                              "value": "8"
                                            },
                                            "src": "3108:12:23",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          ],
                                          "id": 2198,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "3101:6:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 2197,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "3101:6:23",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 2203,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3101:20:23",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      ],
                                      "id": 2196,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "3095:5:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 2195,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3095:5:23",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 2204,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "3095:27:23",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 2193,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17557,
                                    "src": "3076:6:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 2194,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "3083:11:23",
                                  "memberName": "toHexString",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16596,
                                  "src": "3076:18:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_string_memory_ptr_$",
                                    "typeString": "function (uint8) pure returns (string memory)"
                                  }
                                },
                                "id": 2205,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3076:47:23",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            },
                                            "id": 2215,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "expression": {
                                                "id": 2212,
                                                "name": "msg",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4294967281,
                                                "src": "3170:3:23",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_magic_message",
                                                  "typeString": "msg"
                                                }
                                              },
                                              "id": 2213,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberLocation": "3174:3:23",
                                              "memberName": "sig",
                                              "nodeType": "MemberAccess",
                                              "src": "3170:7:23",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes4",
                                                "typeString": "bytes4"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<<",
                                            "rightExpression": {
                                              "hexValue": "3136",
                                              "id": 2214,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "3181:2:23",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_16_by_1",
                                                "typeString": "int_const 16"
                                              },
                                              "value": "16"
                                            },
                                            "src": "3170:13:23",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          ],
                                          "id": 2211,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "3163:6:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 2210,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "3163:6:23",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 2216,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3163:21:23",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      ],
                                      "id": 2209,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "3157:5:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 2208,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3157:5:23",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 2217,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "3157:28:23",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 2206,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17557,
                                    "src": "3138:6:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 2207,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "3145:11:23",
                                  "memberName": "toHexString",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16596,
                                  "src": "3138:18:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_string_memory_ptr_$",
                                    "typeString": "function (uint8) pure returns (string memory)"
                                  }
                                },
                                "id": 2218,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3138:48:23",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            },
                                            "id": 2228,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "expression": {
                                                "id": 2225,
                                                "name": "msg",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4294967281,
                                                "src": "3233:3:23",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_magic_message",
                                                  "typeString": "msg"
                                                }
                                              },
                                              "id": 2226,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberLocation": "3237:3:23",
                                              "memberName": "sig",
                                              "nodeType": "MemberAccess",
                                              "src": "3233:7:23",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes4",
                                                "typeString": "bytes4"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<<",
                                            "rightExpression": {
                                              "hexValue": "3234",
                                              "id": 2227,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "3244:2:23",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_24_by_1",
                                                "typeString": "int_const 24"
                                              },
                                              "value": "24"
                                            },
                                            "src": "3233:13:23",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          ],
                                          "id": 2224,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "3226:6:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 2223,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "3226:6:23",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 2229,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3226:21:23",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      ],
                                      "id": 2222,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "3220:5:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 2221,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3220:5:23",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 2230,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "3220:28:23",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 2219,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17557,
                                    "src": "3201:6:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 2220,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "3208:11:23",
                                  "memberName": "toHexString",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16596,
                                  "src": "3201:18:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_string_memory_ptr_$",
                                    "typeString": "function (uint8) pure returns (string memory)"
                                  }
                                },
                                "id": 2231,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3201:48:23",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_6aa2932fe75962e4eb862ba4982429ce713637712a759cb9d40b6d5260a002eb",
                                  "typeString": "literal_string \"not implemented: 0x\""
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "expression": {
                                "id": 2179,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "2952:3:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 2180,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "2956:12:23",
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "src": "2952:16:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 2232,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2952:308:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 2178,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2945:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                            "typeString": "type(string storage pointer)"
                          },
                          "typeName": {
                            "id": 2177,
                            "name": "string",
                            "nodeType": "ElementaryTypeName",
                            "src": "2945:6:23",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 2233,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2945:316:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 2176,
                      "name": "_revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3064,
                      "src": "2937:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 2234,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2937:325:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2235,
                  "nodeType": "ExpressionStatement",
                  "src": "2937:325:23"
                }
              ]
            },
            "id": 2237,
            "implemented": true,
            "kind": "fallback",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2174,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2897:2:23"
            },
            "returnParameters": {
              "id": 2175,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2925:0:23"
            },
            "scope": 3137,
            "src": "2889:381:23",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              788
            ],
            "body": {
              "id": 2248,
              "nodeType": "Block",
              "src": "3348:55:23",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "arguments": [
                        {
                          "id": 2244,
                          "name": "WitnetRandomnessV2",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3137,
                          "src": "3371:18:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitnetRandomnessV2_$3137_$",
                            "typeString": "type(contract WitnetRandomnessV2)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_type$_t_contract$_WitnetRandomnessV2_$3137_$",
                            "typeString": "type(contract WitnetRandomnessV2)"
                          }
                        ],
                        "id": 2243,
                        "name": "type",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967269,
                        "src": "3366:4:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 2245,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3366:24:23",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_meta_type_t_contract$_WitnetRandomnessV2_$3137",
                        "typeString": "type(contract WitnetRandomnessV2)"
                      }
                    },
                    "id": 2246,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "3391:4:23",
                    "memberName": "name",
                    "nodeType": "MemberAccess",
                    "src": "3366:29:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 2242,
                  "id": 2247,
                  "nodeType": "Return",
                  "src": "3359:36:23"
                }
              ]
            },
            "functionSelector": "bff852fa",
            "id": 2249,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "class",
            "nameLocation": "3287:5:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2239,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3303:8:23"
            },
            "parameters": {
              "id": 2238,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3292:2:23"
            },
            "returnParameters": {
              "id": 2242,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2241,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2249,
                  "src": "3333:13:23",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2240,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3333:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3332:15:23"
            },
            "scope": 3137,
            "src": "3278:125:23",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              793
            ],
            "body": {
              "id": 2260,
              "nodeType": "Block",
              "src": "3476:60:23",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "arguments": [
                        {
                          "id": 2256,
                          "name": "WitnetRandomness",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 794,
                          "src": "3499:16:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitnetRandomness_$794_$",
                            "typeString": "type(contract WitnetRandomness)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_type$_t_contract$_WitnetRandomness_$794_$",
                            "typeString": "type(contract WitnetRandomness)"
                          }
                        ],
                        "id": 2255,
                        "name": "type",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967269,
                        "src": "3494:4:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 2257,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3494:22:23",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_meta_type_t_contract$_WitnetRandomness_$794",
                        "typeString": "type(contract WitnetRandomness)"
                      }
                    },
                    "id": 2258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "3517:11:23",
                    "memberName": "interfaceId",
                    "nodeType": "MemberAccess",
                    "src": "3494:34:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 2254,
                  "id": 2259,
                  "nodeType": "Return",
                  "src": "3487:41:23"
                }
              ]
            },
            "functionSelector": "adb7c3f7",
            "id": 2261,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "specs",
            "nameLocation": "3420:5:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2251,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3436:8:23"
            },
            "parameters": {
              "id": 2250,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3425:2:23"
            },
            "returnParameters": {
              "id": 2254,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2253,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2261,
                  "src": "3468:6:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 2252,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "3468:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3467:8:23"
            },
            "scope": 3137,
            "src": "3411:125:23",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1086,
              13625
            ],
            "body": {
              "id": 2274,
              "nodeType": "Block",
              "src": "3653:46:23",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 2270,
                        "name": "UsingWitnet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1157,
                        "src": "3671:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_UsingWitnet_$1157_$",
                          "typeString": "type(contract UsingWitnet)"
                        }
                      },
                      "id": 2271,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3683:6:23",
                      "memberName": "witnet",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1086,
                      "src": "3671:18:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_WitnetOracle_$749_$",
                        "typeString": "function () view returns (contract WitnetOracle)"
                      }
                    },
                    "id": 2272,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3671:20:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetOracle_$749",
                      "typeString": "contract WitnetOracle"
                    }
                  },
                  "functionReturnParameters": 2269,
                  "id": 2273,
                  "nodeType": "Return",
                  "src": "3664:27:23"
                }
              ]
            },
            "functionSelector": "46d1d21a",
            "id": 2275,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "witnet",
            "nameLocation": "3553:6:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2265,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 2263,
                  "name": "IWitnetRandomness",
                  "nameLocations": [
                    "3572:17:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 13639,
                  "src": "3572:17:23"
                },
                {
                  "id": 2264,
                  "name": "UsingWitnet",
                  "nameLocations": [
                    "3591:11:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1157,
                  "src": "3591:11:23"
                }
              ],
              "src": "3562:41:23"
            },
            "parameters": {
              "id": 2262,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3559:2:23"
            },
            "returnParameters": {
              "id": 2269,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2268,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2275,
                  "src": "3634:12:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_WitnetOracle_$749",
                    "typeString": "contract WitnetOracle"
                  },
                  "typeName": {
                    "id": 2267,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2266,
                      "name": "WitnetOracle",
                      "nameLocations": [
                        "3634:12:23"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 749,
                      "src": "3634:12:23"
                    },
                    "referencedDeclaration": 749,
                    "src": "3634:12:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetOracle_$749",
                      "typeString": "contract WitnetOracle"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3633:14:23"
            },
            "scope": 3137,
            "src": "3544:155:23",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13527
            ],
            "body": {
              "id": 2301,
              "nodeType": "Block",
              "src": "4235:232:23",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2299,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2296,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "components": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint16",
                                  "typeString": "uint16"
                                },
                                "id": 2286,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "hexValue": "313030",
                                  "id": 2284,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4269:3:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_100_by_1",
                                    "typeString": "int_const 100"
                                  },
                                  "value": "100"
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 2285,
                                  "name": "__witnetBaseFeeOverheadPercentage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1023,
                                  "src": "4275:33:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint16",
                                    "typeString": "uint16"
                                  }
                                },
                                "src": "4269:39:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint16",
                                  "typeString": "uint16"
                                }
                              }
                            ],
                            "id": 2287,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "4268:41:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "arguments": [
                              {
                                "id": 2290,
                                "name": "_evmGasPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2278,
                                "src": "4376:12:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "hexValue": "3334",
                                    "id": 2293,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4419:2:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_34_by_1",
                                      "typeString": "int_const 34"
                                    },
                                    "value": "34"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_34_by_1",
                                      "typeString": "int_const 34"
                                    }
                                  ],
                                  "id": 2292,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4412:6:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint16_$",
                                    "typeString": "type(uint16)"
                                  },
                                  "typeName": {
                                    "id": 2291,
                                    "name": "uint16",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4412:6:23",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 2294,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4412:10:23",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint16",
                                  "typeString": "uint16"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint16",
                                  "typeString": "uint16"
                                }
                              ],
                              "expression": {
                                "id": 2288,
                                "name": "__witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1016,
                                "src": "4329:8:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_WitnetOracle_$749",
                                  "typeString": "contract WitnetOracle"
                                }
                              },
                              "id": 2289,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "4338:15:23",
                              "memberName": "estimateBaseFee",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 13105,
                              "src": "4329:24:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint16_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint16) view external returns (uint256)"
                              }
                            },
                            "id": 2295,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4329:112:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "4268:173:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 2297,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "4253:200:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "hexValue": "313030",
                      "id": 2298,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4456:3:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_100_by_1",
                        "typeString": "int_const 100"
                      },
                      "value": "100"
                    },
                    "src": "4253:206:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2283,
                  "id": 2300,
                  "nodeType": "Return",
                  "src": "4246:213:23"
                }
              ]
            },
            "documentation": {
              "id": 2276,
              "nodeType": "StructuredDocumentation",
              "src": "3957:141:23",
              "text": "Returns amount of wei required to be paid as a fee when requesting randomization with a \n transaction gas price as the one given."
            },
            "functionSelector": "a60ee268",
            "id": 2302,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "estimateRandomizeFee",
            "nameLocation": "4113:20:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2280,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4194:8:23"
            },
            "parameters": {
              "id": 2279,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2278,
                  "mutability": "mutable",
                  "name": "_evmGasPrice",
                  "nameLocation": "4142:12:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2302,
                  "src": "4134:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2277,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4134:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4133:22:23"
            },
            "returnParameters": {
              "id": 2283,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2282,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2302,
                  "src": "4221:7:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2281,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4221:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4220:9:23"
            },
            "scope": 3137,
            "src": "4104:363:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13535
            ],
            "body": {
              "id": 2321,
              "nodeType": "Block",
              "src": "5311:171:23",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 2314,
                            "name": "_blockNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2305,
                            "src": "5382:12:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "id": 2316,
                                "name": "_blockNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2305,
                                "src": "5435:12:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 2315,
                              "name": "_fetchRandomnessAfter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2422,
                              "src": "5413:21:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bytes32_$",
                                "typeString": "function (uint256) view returns (bytes32)"
                              }
                            },
                            "id": 2317,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5413:35:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "id": 2312,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "5353:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 2313,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "5357:6:23",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "5353:10:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 2318,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5353:110:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 2311,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "5329:9:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 2319,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5329:145:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2310,
                  "id": 2320,
                  "nodeType": "Return",
                  "src": "5322:152:23"
                }
              ]
            },
            "documentation": {
              "id": 2303,
              "nodeType": "StructuredDocumentation",
              "src": "4475:699:23",
              "text": "@notice Retrieves the result of keccak256-hashing the given block number with the randomness value \n @notice generated by the Witnet Oracle blockchain in response to the first non-errored randomize request solved \n @notice after such block number.\n @dev Reverts if:\n @dev   i.   no `randomize()` was requested on neither the given block, nor afterwards.\n @dev   ii.  the first non-errored `randomize()` request found on or after the given block is not solved yet.\n @dev   iii. all `randomize()` requests that took place on or after the given block were solved with errors.\n @param _blockNumber Block number from which the search will start"
            },
            "functionSelector": "82b1c174",
            "id": 2322,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "fetchRandomnessAfter",
            "nameLocation": "5189:20:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2307,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5270:8:23"
            },
            "parameters": {
              "id": 2306,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2305,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "5218:12:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2322,
                  "src": "5210:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2304,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5210:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5209:22:23"
            },
            "returnParameters": {
              "id": 2310,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2309,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2322,
                  "src": "5297:7:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2308,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5297:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5296:9:23"
            },
            "scope": 3137,
            "src": "5180:302:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2421,
              "nodeType": "Block",
              "src": "5611:1125:23",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2336,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "baseExpression": {
                          "expression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 2329,
                              "name": "__storage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3136,
                              "src": "5626:9:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                              }
                            },
                            "id": 2330,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5626:11:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                              "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                            }
                          },
                          "id": 2331,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "5638:10:23",
                          "memberName": "randomize_",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2032,
                          "src": "5626:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                            "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                          }
                        },
                        "id": 2333,
                        "indexExpression": {
                          "id": 2332,
                          "name": "_blockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2324,
                          "src": "5649:12:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5626:36:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                          "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                        }
                      },
                      "id": 2334,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5663:13:23",
                      "memberName": "witnetQueryId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2020,
                      "src": "5626:50:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 2335,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5680:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5626:55:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2344,
                  "nodeType": "IfStatement",
                  "src": "5622:138:23",
                  "trueBody": {
                    "id": 2343,
                    "nodeType": "Block",
                    "src": "5683:77:23",
                    "statements": [
                      {
                        "expression": {
                          "id": 2341,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 2337,
                            "name": "_blockNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2324,
                            "src": "5698:12:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 2339,
                                "name": "_blockNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2324,
                                "src": "5735:12:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 2338,
                              "name": "getRandomizeNextBlock",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2638,
                              "src": "5713:21:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256) view returns (uint256)"
                              }
                            },
                            "id": 2340,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5713:35:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5698:50:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2342,
                        "nodeType": "ExpressionStatement",
                        "src": "5698:50:23"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    2347
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2347,
                      "mutability": "mutable",
                      "name": "__randomize",
                      "nameLocation": "5790:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 2421,
                      "src": "5772:29:23",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                        "typeString": "struct WitnetRandomnessV2.Randomize"
                      },
                      "typeName": {
                        "id": 2346,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 2345,
                          "name": "Randomize",
                          "nameLocations": [
                            "5772:9:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 2025,
                          "src": "5772:9:23"
                        },
                        "referencedDeclaration": 2025,
                        "src": "5772:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                          "typeString": "struct WitnetRandomnessV2.Randomize"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2353,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 2348,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3136,
                          "src": "5804:9:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                          }
                        },
                        "id": 2349,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5804:11:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                          "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                        }
                      },
                      "id": 2350,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5816:10:23",
                      "memberName": "randomize_",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2032,
                      "src": "5804:22:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                        "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                      }
                    },
                    "id": 2352,
                    "indexExpression": {
                      "id": 2351,
                      "name": "_blockNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2324,
                      "src": "5827:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5804:36:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                      "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5772:68:23"
                },
                {
                  "assignments": [
                    2355
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2355,
                      "mutability": "mutable",
                      "name": "_witnetQueryId",
                      "nameLocation": "5859:14:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 2421,
                      "src": "5851:22:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2354,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5851:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2358,
                  "initialValue": {
                    "expression": {
                      "id": 2356,
                      "name": "__randomize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2347,
                      "src": "5876:11:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                        "typeString": "struct WitnetRandomnessV2.Randomize storage pointer"
                      }
                    },
                    "id": 2357,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "5888:13:23",
                    "memberName": "witnetQueryId",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2020,
                    "src": "5876:25:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5851:50:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2362,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 2360,
                          "name": "_witnetQueryId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2355,
                          "src": "5935:14:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 2361,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5953:1:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5935:19:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "6e6f742072616e646f6d697a6564",
                        "id": 2363,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5970:16:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c549dc5ce1d0aff824742be5f2f4b215e9ee5536765ca70c98e8aef45943fde8",
                          "typeString": "literal_string \"not randomized\""
                        },
                        "value": "not randomized"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c549dc5ce1d0aff824742be5f2f4b215e9ee5536765ca70c98e8aef45943fde8",
                          "typeString": "literal_string \"not randomized\""
                        }
                      ],
                      "id": 2359,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3045,
                      "src": "5912:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2364,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5912:85:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2365,
                  "nodeType": "ExpressionStatement",
                  "src": "5912:85:23"
                },
                {
                  "assignments": [
                    2370
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2370,
                      "mutability": "mutable",
                      "name": "_status",
                      "nameLocation": "6042:7:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 2421,
                      "src": "6018:31:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                        "typeString": "enum WitnetV2.ResponseStatus"
                      },
                      "typeName": {
                        "id": 2369,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 2368,
                          "name": "WitnetV2.ResponseStatus",
                          "nameLocations": [
                            "6018:8:23",
                            "6027:14:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 23496,
                          "src": "6018:23:23"
                        },
                        "referencedDeclaration": 23496,
                        "src": "6018:23:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                          "typeString": "enum WitnetV2.ResponseStatus"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2375,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 2373,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2355,
                        "src": "6084:14:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2371,
                        "name": "__witnet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1016,
                        "src": "6052:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_WitnetOracle_$749",
                          "typeString": "contract WitnetOracle"
                        }
                      },
                      "id": 2372,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6061:22:23",
                      "memberName": "getQueryResponseStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13178,
                      "src": "6052:31:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_enum$_ResponseStatus_$23496_$",
                        "typeString": "function (uint256) view external returns (enum WitnetV2.ResponseStatus)"
                      }
                    },
                    "id": 2374,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6052:47:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                      "typeString": "enum WitnetV2.ResponseStatus"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6018:81:23"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                      "typeString": "enum WitnetV2.ResponseStatus"
                    },
                    "id": 2380,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 2376,
                      "name": "_status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2370,
                      "src": "6114:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                        "typeString": "enum WitnetV2.ResponseStatus"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "expression": {
                        "expression": {
                          "id": 2377,
                          "name": "WitnetV2",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23640,
                          "src": "6125:8:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                            "typeString": "type(library WitnetV2)"
                          }
                        },
                        "id": 2378,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6134:14:23",
                        "memberName": "ResponseStatus",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 23496,
                        "src": "6125:23:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_ResponseStatus_$23496_$",
                          "typeString": "type(enum WitnetV2.ResponseStatus)"
                        }
                      },
                      "id": 2379,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "6149:5:23",
                      "memberName": "Ready",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23492,
                      "src": "6125:29:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                        "typeString": "enum WitnetV2.ResponseStatus"
                      }
                    },
                    "src": "6114:40:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                        "typeString": "enum WitnetV2.ResponseStatus"
                      },
                      "id": 2396,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 2392,
                        "name": "_status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2370,
                        "src": "6355:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                          "typeString": "enum WitnetV2.ResponseStatus"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "expression": {
                          "expression": {
                            "id": 2393,
                            "name": "WitnetV2",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23640,
                            "src": "6366:8:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                              "typeString": "type(library WitnetV2)"
                            }
                          },
                          "id": 2394,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "6375:14:23",
                          "memberName": "ResponseStatus",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 23496,
                          "src": "6366:23:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_ResponseStatus_$23496_$",
                            "typeString": "type(enum WitnetV2.ResponseStatus)"
                          }
                        },
                        "id": 2395,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "6390:5:23",
                        "memberName": "Error",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 23493,
                        "src": "6366:29:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                          "typeString": "enum WitnetV2.ResponseStatus"
                        }
                      },
                      "src": "6355:40:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 2418,
                      "nodeType": "Block",
                      "src": "6674:55:23",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "hexValue": "70656e64696e672072616e646f6d697a65",
                                "id": 2415,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "6697:19:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_06a39c1cfbbaaebf65cb621f56a07759f8e599c84ca52e82092ad3e68603dc57",
                                  "typeString": "literal_string \"pending randomize\""
                                },
                                "value": "pending randomize"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_06a39c1cfbbaaebf65cb621f56a07759f8e599c84ca52e82092ad3e68603dc57",
                                  "typeString": "literal_string \"pending randomize\""
                                }
                              ],
                              "id": 2414,
                              "name": "_revert",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3064,
                              "src": "6689:7:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
                                "typeString": "function (string memory) pure"
                              }
                            },
                            "id": 2416,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6689:28:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 2417,
                          "nodeType": "ExpressionStatement",
                          "src": "6689:28:23"
                        }
                      ]
                    },
                    "id": 2419,
                    "nodeType": "IfStatement",
                    "src": "6351:378:23",
                    "trueBody": {
                      "id": 2413,
                      "nodeType": "Block",
                      "src": "6397:271:23",
                      "statements": [
                        {
                          "assignments": [
                            2398
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 2398,
                              "mutability": "mutable",
                              "name": "_nextRandomizeBlock",
                              "nameLocation": "6420:19:23",
                              "nodeType": "VariableDeclaration",
                              "scope": 2413,
                              "src": "6412:27:23",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 2397,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "6412:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 2401,
                          "initialValue": {
                            "expression": {
                              "id": 2399,
                              "name": "__randomize",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2347,
                              "src": "6442:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                                "typeString": "struct WitnetRandomnessV2.Randomize storage pointer"
                              }
                            },
                            "id": 2400,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6454:9:23",
                            "memberName": "nextBlock",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2024,
                            "src": "6442:21:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "6412:51:23"
                        },
                        {
                          "expression": {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2405,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 2403,
                                  "name": "_nextRandomizeBlock",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2398,
                                  "src": "6505:19:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 2404,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6528:1:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "6505:24:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              {
                                "hexValue": "6661756c74792072616e646f6d697a65",
                                "id": 2406,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "6549:18:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_d731e0516442c736dfbb6f256f71c0ed003a49137803c96a11e1e78c0e9b9ddd",
                                  "typeString": "literal_string \"faulty randomize\""
                                },
                                "value": "faulty randomize"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_d731e0516442c736dfbb6f256f71c0ed003a49137803c96a11e1e78c0e9b9ddd",
                                  "typeString": "literal_string \"faulty randomize\""
                                }
                              ],
                              "id": 2402,
                              "name": "_require",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3045,
                              "src": "6478:8:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                "typeString": "function (bool,string memory) pure"
                              }
                            },
                            "id": 2407,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6478:104:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 2408,
                          "nodeType": "ExpressionStatement",
                          "src": "6478:104:23"
                        },
                        {
                          "expression": {
                            "arguments": [
                              {
                                "id": 2410,
                                "name": "_nextRandomizeBlock",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2398,
                                "src": "6626:19:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 2409,
                              "name": "_fetchRandomnessAfter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2422,
                              "src": "6604:21:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bytes32_$",
                                "typeString": "function (uint256) view returns (bytes32)"
                              }
                            },
                            "id": 2411,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6604:42:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "functionReturnParameters": 2328,
                          "id": 2412,
                          "nodeType": "Return",
                          "src": "6597:49:23"
                        }
                      ]
                    }
                  },
                  "id": 2420,
                  "nodeType": "IfStatement",
                  "src": "6110:619:23",
                  "trueBody": {
                    "id": 2391,
                    "nodeType": "Block",
                    "src": "6156:189:23",
                    "statements": [
                      {
                        "expression": {
                          "components": [
                            {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "arguments": [
                                        {
                                          "id": 2383,
                                          "name": "_witnetQueryId",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2355,
                                          "src": "6230:14:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "expression": {
                                          "id": 2381,
                                          "name": "__witnet",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1016,
                                          "src": "6197:8:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_WitnetOracle_$749",
                                            "typeString": "contract WitnetOracle"
                                          }
                                        },
                                        "id": 2382,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "6206:23:23",
                                        "memberName": "getQueryResultCborBytes",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 13186,
                                        "src": "6197:32:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                          "typeString": "function (uint256) view external returns (bytes memory)"
                                        }
                                      },
                                      "id": 2384,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "6197:48:23",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    },
                                    "id": 2385,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "6268:14:23",
                                    "memberName": "toWitnetResult",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 16864,
                                    "src": "6197:85:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_Result_$16042_memory_ptr_$attached_to$_t_bytes_memory_ptr_$",
                                      "typeString": "function (bytes memory) pure returns (struct Witnet.Result memory)"
                                    }
                                  },
                                  "id": 2386,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6197:87:23",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                                    "typeString": "struct Witnet.Result memory"
                                  }
                                },
                                "id": 2387,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "6307:9:23",
                                "memberName": "asBytes32",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 17324,
                                "src": "6197:119:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_struct$_Result_$16042_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_Result_$16042_memory_ptr_$",
                                  "typeString": "function (struct Witnet.Result memory) pure returns (bytes32)"
                                }
                              },
                              "id": 2388,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "6197:121:23",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "id": 2389,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "6178:155:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "functionReturnParameters": 2328,
                        "id": 2390,
                        "nodeType": "Return",
                        "src": "6171:162:23"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 2422,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_fetchRandomnessAfter",
            "nameLocation": "5503:21:23",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2325,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2324,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "5533:12:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2422,
                  "src": "5525:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2323,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5525:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5524:22:23"
            },
            "returnParameters": {
              "id": 2328,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2327,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2422,
                  "src": "5597:7:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2326,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5597:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5596:9:23"
            },
            "scope": 3137,
            "src": "5494:1242:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              13549
            ],
            "body": {
              "id": 2553,
              "nodeType": "Block",
              "src": "8299:1389:23",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2444,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "baseExpression": {
                          "expression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 2437,
                              "name": "__storage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3136,
                              "src": "8314:9:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                              }
                            },
                            "id": 2438,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8314:11:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                              "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                            }
                          },
                          "id": 2439,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "8326:10:23",
                          "memberName": "randomize_",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2032,
                          "src": "8314:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                            "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                          }
                        },
                        "id": 2441,
                        "indexExpression": {
                          "id": 2440,
                          "name": "_blockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2425,
                          "src": "8337:12:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "8314:36:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                          "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                        }
                      },
                      "id": 2442,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8351:13:23",
                      "memberName": "witnetQueryId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2020,
                      "src": "8314:50:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 2443,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8368:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "8314:55:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2452,
                  "nodeType": "IfStatement",
                  "src": "8310:138:23",
                  "trueBody": {
                    "id": 2451,
                    "nodeType": "Block",
                    "src": "8371:77:23",
                    "statements": [
                      {
                        "expression": {
                          "id": 2449,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 2445,
                            "name": "_blockNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2425,
                            "src": "8386:12:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 2447,
                                "name": "_blockNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2425,
                                "src": "8423:12:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 2446,
                              "name": "getRandomizeNextBlock",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2638,
                              "src": "8401:21:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256) view returns (uint256)"
                              }
                            },
                            "id": 2448,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8401:35:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8386:50:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2450,
                        "nodeType": "ExpressionStatement",
                        "src": "8386:50:23"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    2455
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2455,
                      "mutability": "mutable",
                      "name": "__randomize",
                      "nameLocation": "8478:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 2553,
                      "src": "8460:29:23",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                        "typeString": "struct WitnetRandomnessV2.Randomize"
                      },
                      "typeName": {
                        "id": 2454,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 2453,
                          "name": "Randomize",
                          "nameLocations": [
                            "8460:9:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 2025,
                          "src": "8460:9:23"
                        },
                        "referencedDeclaration": 2025,
                        "src": "8460:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                          "typeString": "struct WitnetRandomnessV2.Randomize"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2461,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 2456,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3136,
                          "src": "8492:9:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                          }
                        },
                        "id": 2457,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8492:11:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                          "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                        }
                      },
                      "id": 2458,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8504:10:23",
                      "memberName": "randomize_",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2032,
                      "src": "8492:22:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                        "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                      }
                    },
                    "id": 2460,
                    "indexExpression": {
                      "id": 2459,
                      "name": "_blockNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2425,
                      "src": "8515:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8492:36:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                      "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8460:68:23"
                },
                {
                  "assignments": [
                    2463
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2463,
                      "mutability": "mutable",
                      "name": "_witnetQueryId",
                      "nameLocation": "8547:14:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 2553,
                      "src": "8539:22:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2462,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8539:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2466,
                  "initialValue": {
                    "expression": {
                      "id": 2464,
                      "name": "__randomize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2455,
                      "src": "8564:11:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                        "typeString": "struct WitnetRandomnessV2.Randomize storage pointer"
                      }
                    },
                    "id": 2465,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "8576:13:23",
                    "memberName": "witnetQueryId",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2020,
                    "src": "8564:25:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8539:50:23"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2470,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 2468,
                          "name": "_witnetQueryId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2463,
                          "src": "8623:14:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 2469,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8641:1:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "8623:19:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "6e6f742072616e646f6d697a6564",
                        "id": 2471,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8658:16:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c549dc5ce1d0aff824742be5f2f4b215e9ee5536765ca70c98e8aef45943fde8",
                          "typeString": "literal_string \"not randomized\""
                        },
                        "value": "not randomized"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c549dc5ce1d0aff824742be5f2f4b215e9ee5536765ca70c98e8aef45943fde8",
                          "typeString": "literal_string \"not randomized\""
                        }
                      ],
                      "id": 2467,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3045,
                      "src": "8600:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2472,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8600:85:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2473,
                  "nodeType": "ExpressionStatement",
                  "src": "8600:85:23"
                },
                {
                  "assignments": [
                    2478
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2478,
                      "mutability": "mutable",
                      "name": "_status",
                      "nameLocation": "8730:7:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 2553,
                      "src": "8706:31:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                        "typeString": "enum WitnetV2.ResponseStatus"
                      },
                      "typeName": {
                        "id": 2477,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 2476,
                          "name": "WitnetV2.ResponseStatus",
                          "nameLocations": [
                            "8706:8:23",
                            "8715:14:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 23496,
                          "src": "8706:23:23"
                        },
                        "referencedDeclaration": 23496,
                        "src": "8706:23:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                          "typeString": "enum WitnetV2.ResponseStatus"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2483,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 2481,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2463,
                        "src": "8772:14:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2479,
                        "name": "__witnet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1016,
                        "src": "8740:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_WitnetOracle_$749",
                          "typeString": "contract WitnetOracle"
                        }
                      },
                      "id": 2480,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8749:22:23",
                      "memberName": "getQueryResponseStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13178,
                      "src": "8740:31:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_enum$_ResponseStatus_$23496_$",
                        "typeString": "function (uint256) view external returns (enum WitnetV2.ResponseStatus)"
                      }
                    },
                    "id": 2482,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8740:47:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                      "typeString": "enum WitnetV2.ResponseStatus"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8706:81:23"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                      "typeString": "enum WitnetV2.ResponseStatus"
                    },
                    "id": 2488,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 2484,
                      "name": "_status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2478,
                      "src": "8802:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                        "typeString": "enum WitnetV2.ResponseStatus"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "expression": {
                        "expression": {
                          "id": 2485,
                          "name": "WitnetV2",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23640,
                          "src": "8813:8:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                            "typeString": "type(library WitnetV2)"
                          }
                        },
                        "id": 2486,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "8822:14:23",
                        "memberName": "ResponseStatus",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 23496,
                        "src": "8813:23:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_ResponseStatus_$23496_$",
                          "typeString": "type(enum WitnetV2.ResponseStatus)"
                        }
                      },
                      "id": 2487,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "8837:5:23",
                      "memberName": "Ready",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23492,
                      "src": "8813:29:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                        "typeString": "enum WitnetV2.ResponseStatus"
                      }
                    },
                    "src": "8802:40:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                        "typeString": "enum WitnetV2.ResponseStatus"
                      },
                      "id": 2528,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 2524,
                        "name": "_status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2478,
                        "src": "9303:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                          "typeString": "enum WitnetV2.ResponseStatus"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "expression": {
                          "expression": {
                            "id": 2525,
                            "name": "WitnetV2",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23640,
                            "src": "9314:8:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                              "typeString": "type(library WitnetV2)"
                            }
                          },
                          "id": 2526,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9323:14:23",
                          "memberName": "ResponseStatus",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 23496,
                          "src": "9314:23:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_ResponseStatus_$23496_$",
                            "typeString": "type(enum WitnetV2.ResponseStatus)"
                          }
                        },
                        "id": 2527,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "9338:5:23",
                        "memberName": "Error",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 23493,
                        "src": "9314:29:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                          "typeString": "enum WitnetV2.ResponseStatus"
                        }
                      },
                      "src": "9303:40:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 2550,
                      "nodeType": "Block",
                      "src": "9626:55:23",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "hexValue": "70656e64696e672072616e646f6d697a65",
                                "id": 2547,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9649:19:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_06a39c1cfbbaaebf65cb621f56a07759f8e599c84ca52e82092ad3e68603dc57",
                                  "typeString": "literal_string \"pending randomize\""
                                },
                                "value": "pending randomize"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_06a39c1cfbbaaebf65cb621f56a07759f8e599c84ca52e82092ad3e68603dc57",
                                  "typeString": "literal_string \"pending randomize\""
                                }
                              ],
                              "id": 2546,
                              "name": "_revert",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3064,
                              "src": "9641:7:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
                                "typeString": "function (string memory) pure"
                              }
                            },
                            "id": 2548,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9641:28:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 2549,
                          "nodeType": "ExpressionStatement",
                          "src": "9641:28:23"
                        }
                      ]
                    },
                    "id": 2551,
                    "nodeType": "IfStatement",
                    "src": "9299:382:23",
                    "trueBody": {
                      "id": 2545,
                      "nodeType": "Block",
                      "src": "9345:275:23",
                      "statements": [
                        {
                          "assignments": [
                            2530
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 2530,
                              "mutability": "mutable",
                              "name": "_nextRandomizeBlock",
                              "nameLocation": "9368:19:23",
                              "nodeType": "VariableDeclaration",
                              "scope": 2545,
                              "src": "9360:27:23",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 2529,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "9360:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 2533,
                          "initialValue": {
                            "expression": {
                              "id": 2531,
                              "name": "__randomize",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2455,
                              "src": "9390:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                                "typeString": "struct WitnetRandomnessV2.Randomize storage pointer"
                              }
                            },
                            "id": 2532,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9402:9:23",
                            "memberName": "nextBlock",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2024,
                            "src": "9390:21:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "9360:51:23"
                        },
                        {
                          "expression": {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2537,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 2535,
                                  "name": "_nextRandomizeBlock",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2530,
                                  "src": "9453:19:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 2536,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9476:1:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "9453:24:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              {
                                "hexValue": "6661756c74792072616e646f6d697a65",
                                "id": 2538,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9497:18:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_d731e0516442c736dfbb6f256f71c0ed003a49137803c96a11e1e78c0e9b9ddd",
                                  "typeString": "literal_string \"faulty randomize\""
                                },
                                "value": "faulty randomize"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_d731e0516442c736dfbb6f256f71c0ed003a49137803c96a11e1e78c0e9b9ddd",
                                  "typeString": "literal_string \"faulty randomize\""
                                }
                              ],
                              "id": 2534,
                              "name": "_require",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3045,
                              "src": "9426:8:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                "typeString": "function (bool,string memory) pure"
                              }
                            },
                            "id": 2539,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9426:104:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 2540,
                          "nodeType": "ExpressionStatement",
                          "src": "9426:104:23"
                        },
                        {
                          "expression": {
                            "arguments": [
                              {
                                "id": 2542,
                                "name": "_nextRandomizeBlock",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2530,
                                "src": "9578:19:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 2541,
                              "name": "fetchRandomnessAfterProof",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2554,
                              "src": "9552:25:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bytes32_$_t_uint64_$_t_bytes32_$_t_uint256_$",
                                "typeString": "function (uint256) view returns (bytes32,uint64,bytes32,uint256)"
                              }
                            },
                            "id": 2543,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9552:46:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_bytes32_$_t_uint64_$_t_bytes32_$_t_uint256_$",
                              "typeString": "tuple(bytes32,uint64,bytes32,uint256)"
                            }
                          },
                          "functionReturnParameters": 2436,
                          "id": 2544,
                          "nodeType": "Return",
                          "src": "9545:53:23"
                        }
                      ]
                    }
                  },
                  "id": 2552,
                  "nodeType": "IfStatement",
                  "src": "8798:883:23",
                  "trueBody": {
                    "id": 2523,
                    "nodeType": "Block",
                    "src": "8844:449:23",
                    "statements": [
                      {
                        "assignments": [
                          2493
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2493,
                            "mutability": "mutable",
                            "name": "_witnetQueryResponse",
                            "nameLocation": "8884:20:23",
                            "nodeType": "VariableDeclaration",
                            "scope": 2523,
                            "src": "8859:45:23",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Response_$23488_memory_ptr",
                              "typeString": "struct WitnetV2.Response"
                            },
                            "typeName": {
                              "id": 2492,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 2491,
                                "name": "WitnetV2.Response",
                                "nameLocations": [
                                  "8859:8:23",
                                  "8868:8:23"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 23488,
                                "src": "8859:17:23"
                              },
                              "referencedDeclaration": 23488,
                              "src": "8859:17:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Response_$23488_storage_ptr",
                                "typeString": "struct WitnetV2.Response"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 2498,
                        "initialValue": {
                          "arguments": [
                            {
                              "id": 2496,
                              "name": "_witnetQueryId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2463,
                              "src": "8933:14:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 2494,
                              "name": "__witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1016,
                              "src": "8907:8:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_WitnetOracle_$749",
                                "typeString": "contract WitnetOracle"
                              }
                            },
                            "id": 2495,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "8916:16:23",
                            "memberName": "getQueryResponse",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 13169,
                            "src": "8907:25:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Response_$23488_memory_ptr_$",
                              "typeString": "function (uint256) view external returns (struct WitnetV2.Response memory)"
                            }
                          },
                          "id": 2497,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8907:41:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Response_$23488_memory_ptr",
                            "typeString": "struct WitnetV2.Response memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "8859:89:23"
                      },
                      {
                        "expression": {
                          "id": 2502,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 2499,
                            "name": "_witnetResultTimestamp",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2431,
                            "src": "8963:22:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "expression": {
                              "id": 2500,
                              "name": "_witnetQueryResponse",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2493,
                              "src": "8988:20:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Response_$23488_memory_ptr",
                                "typeString": "struct WitnetV2.Response memory"
                              }
                            },
                            "id": 2501,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9009:15:23",
                            "memberName": "resultTimestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23483,
                            "src": "8988:36:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "8963:61:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "id": 2503,
                        "nodeType": "ExpressionStatement",
                        "src": "8963:61:23"
                      },
                      {
                        "expression": {
                          "id": 2507,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 2504,
                            "name": "_witnetResultTallyHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2433,
                            "src": "9039:22:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "expression": {
                              "id": 2505,
                              "name": "_witnetQueryResponse",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2493,
                              "src": "9064:20:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Response_$23488_memory_ptr",
                                "typeString": "struct WitnetV2.Response memory"
                              }
                            },
                            "id": 2506,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9085:15:23",
                            "memberName": "resultTallyHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23485,
                            "src": "9064:36:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "9039:61:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 2508,
                        "nodeType": "ExpressionStatement",
                        "src": "9039:61:23"
                      },
                      {
                        "expression": {
                          "id": 2512,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 2509,
                            "name": "_witnetResultFinalityBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2435,
                            "src": "9115:26:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "expression": {
                              "id": 2510,
                              "name": "_witnetQueryResponse",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2493,
                              "src": "9144:20:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Response_$23488_memory_ptr",
                                "typeString": "struct WitnetV2.Response memory"
                              }
                            },
                            "id": 2511,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9165:8:23",
                            "memberName": "finality",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23481,
                            "src": "9144:29:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "9115:58:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2513,
                        "nodeType": "ExpressionStatement",
                        "src": "9115:58:23"
                      },
                      {
                        "expression": {
                          "id": 2521,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 2514,
                            "name": "_witnetResultRandomness",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2429,
                            "src": "9188:23:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "expression": {
                                      "id": 2515,
                                      "name": "_witnetQueryResponse",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2493,
                                      "src": "9214:20:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Response_$23488_memory_ptr",
                                        "typeString": "struct WitnetV2.Response memory"
                                      }
                                    },
                                    "id": 2516,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "9235:15:23",
                                    "memberName": "resultCborBytes",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 23487,
                                    "src": "9214:36:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  },
                                  "id": 2517,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "9251:14:23",
                                  "memberName": "toWitnetResult",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16864,
                                  "src": "9214:51:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_Result_$16042_memory_ptr_$attached_to$_t_bytes_memory_ptr_$",
                                    "typeString": "function (bytes memory) pure returns (struct Witnet.Result memory)"
                                  }
                                },
                                "id": 2518,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9214:53:23",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                                  "typeString": "struct Witnet.Result memory"
                                }
                              },
                              "id": 2519,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9268:9:23",
                              "memberName": "asBytes32",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 17324,
                              "src": "9214:63:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_Result_$16042_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_Result_$16042_memory_ptr_$",
                                "typeString": "function (struct Witnet.Result memory) pure returns (bytes32)"
                              }
                            },
                            "id": 2520,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9214:65:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "9188:91:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 2522,
                        "nodeType": "ExpressionStatement",
                        "src": "9188:91:23"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 2423,
              "nodeType": "StructuredDocumentation",
              "src": "6744:1224:23",
              "text": "@notice Retrieves the actual random value, unique hash and timestamp of the witnessing commit/reveal act that took\n @notice place in the Witnet Oracle blockchain in response to the first non-errored randomize request\n @notice solved after the given block number.\n @dev Reverts if:\n @dev   i.   no `randomize()` was requested on neither the given block, nor afterwards.\n @dev   ii.  the first non-errored `randomize()` request found on or after the given block is not solved yet.\n @dev   iii. all `randomize()` requests that took place on or after the given block were solved with errors.\n @param _blockNumber Block number from which the search will start.\n @return _witnetResultRandomness Random value provided by the Witnet blockchain and used for solving randomness after given block.\n @return _witnetResultTimestamp Timestamp at which the randomness value was generated by the Witnet blockchain.\n @return _witnetResultTallyHash Hash of the witnessing commit/reveal act that took place on the Witnet blockchain.\n @return _witnetResultFinalityBlock EVM block number from which the provided randomness can be considered to be final."
            },
            "functionSelector": "17f45487",
            "id": 2554,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "fetchRandomnessAfterProof",
            "nameLocation": "7983:25:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2427,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8049:8:23"
            },
            "parameters": {
              "id": 2426,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2425,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "8017:12:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2554,
                  "src": "8009:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2424,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8009:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8008:22:23"
            },
            "returnParameters": {
              "id": 2436,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2429,
                  "mutability": "mutable",
                  "name": "_witnetResultRandomness",
                  "nameLocation": "8120:23:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2554,
                  "src": "8112:31:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2428,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8112:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2431,
                  "mutability": "mutable",
                  "name": "_witnetResultTimestamp",
                  "nameLocation": "8166:22:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2554,
                  "src": "8158:30:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 2430,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "8158:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2433,
                  "mutability": "mutable",
                  "name": "_witnetResultTallyHash",
                  "nameLocation": "8211:22:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2554,
                  "src": "8203:30:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2432,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8203:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2435,
                  "mutability": "mutable",
                  "name": "_witnetResultFinalityBlock",
                  "nameLocation": "8256:26:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2554,
                  "src": "8248:34:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2434,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8248:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8097:196:23"
            },
            "scope": 3137,
            "src": "7974:1714:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13555
            ],
            "body": {
              "id": 2565,
              "nodeType": "Block",
              "src": "9889:56:23",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 2561,
                        "name": "__storage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3136,
                        "src": "9907:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                          "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                        }
                      },
                      "id": 2562,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9907:11:23",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                        "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                      }
                    },
                    "id": 2563,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "9919:18:23",
                    "memberName": "lastRandomizeBlock",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2027,
                    "src": "9907:30:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2560,
                  "id": 2564,
                  "nodeType": "Return",
                  "src": "9900:37:23"
                }
              ]
            },
            "documentation": {
              "id": 2555,
              "nodeType": "StructuredDocumentation",
              "src": "9696:73:23",
              "text": "@notice Returns last block number on which a randomize was requested."
            },
            "functionSelector": "8f261684",
            "id": 2566,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getLastRandomizeBlock",
            "nameLocation": "9784:21:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2557,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9825:8:23"
            },
            "parameters": {
              "id": 2556,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9805:2:23"
            },
            "returnParameters": {
              "id": 2560,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2559,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2566,
                  "src": "9875:7:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2558,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9875:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9874:9:23"
            },
            "scope": 3137,
            "src": "9775:170:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13567
            ],
            "body": {
              "id": 2603,
              "nodeType": "Block",
              "src": "10818:248:23",
              "statements": [
                {
                  "assignments": [
                    2581
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2581,
                      "mutability": "mutable",
                      "name": "__randomize",
                      "nameLocation": "10847:11:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 2603,
                      "src": "10829:29:23",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                        "typeString": "struct WitnetRandomnessV2.Randomize"
                      },
                      "typeName": {
                        "id": 2580,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 2579,
                          "name": "Randomize",
                          "nameLocations": [
                            "10829:9:23"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 2025,
                          "src": "10829:9:23"
                        },
                        "referencedDeclaration": 2025,
                        "src": "10829:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                          "typeString": "struct WitnetRandomnessV2.Randomize"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2587,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 2582,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3136,
                          "src": "10861:9:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                          }
                        },
                        "id": 2583,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10861:11:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                          "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                        }
                      },
                      "id": 2584,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10873:10:23",
                      "memberName": "randomize_",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2032,
                      "src": "10861:22:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                        "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                      }
                    },
                    "id": 2586,
                    "indexExpression": {
                      "id": 2585,
                      "name": "_blockNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2569,
                      "src": "10884:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "10861:36:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                      "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10829:68:23"
                },
                {
                  "expression": {
                    "id": 2591,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 2588,
                      "name": "_witnetQueryId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2573,
                      "src": "10908:14:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 2589,
                        "name": "__randomize",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2581,
                        "src": "10925:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                          "typeString": "struct WitnetRandomnessV2.Randomize storage pointer"
                        }
                      },
                      "id": 2590,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10937:13:23",
                      "memberName": "witnetQueryId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2020,
                      "src": "10925:25:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10908:42:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2592,
                  "nodeType": "ExpressionStatement",
                  "src": "10908:42:23"
                },
                {
                  "expression": {
                    "id": 2596,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 2593,
                      "name": "_prevRandomizeBlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2575,
                      "src": "10961:19:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 2594,
                        "name": "__randomize",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2581,
                        "src": "10983:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                          "typeString": "struct WitnetRandomnessV2.Randomize storage pointer"
                        }
                      },
                      "id": 2595,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10995:9:23",
                      "memberName": "prevBlock",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2022,
                      "src": "10983:21:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10961:43:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2597,
                  "nodeType": "ExpressionStatement",
                  "src": "10961:43:23"
                },
                {
                  "expression": {
                    "id": 2601,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 2598,
                      "name": "_nextRandomizeBlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2577,
                      "src": "11015:19:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 2599,
                        "name": "__randomize",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2581,
                        "src": "11037:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                          "typeString": "struct WitnetRandomnessV2.Randomize storage pointer"
                        }
                      },
                      "id": 2600,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11049:9:23",
                      "memberName": "nextBlock",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2024,
                      "src": "11037:21:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11015:43:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2602,
                  "nodeType": "ExpressionStatement",
                  "src": "11015:43:23"
                }
              ]
            },
            "documentation": {
              "id": 2567,
              "nodeType": "StructuredDocumentation",
              "src": "9953:607:23",
              "text": "@notice Retrieves metadata related to the randomize request that got posted to the \n @notice Witnet Oracle contract on the given block number.\n @dev Returns zero values if no randomize request was actually posted on the given block.\n @return _witnetQueryId Identifier of the underlying Witnet query created on the given block number. \n @return _prevRandomizeBlock Block number in which a randomize request got posted just before this one. 0 if none.\n @return _nextRandomizeBlock Block number in which a randomize request got posted just after this one, 0 if none."
            },
            "functionSelector": "a3252f68",
            "id": 2604,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRandomizeData",
            "nameLocation": "10575:16:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2571,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10654:8:23"
            },
            "parameters": {
              "id": 2570,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2569,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "10600:12:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2604,
                  "src": "10592:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2568,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10592:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10591:22:23"
            },
            "returnParameters": {
              "id": 2578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2573,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "10703:14:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2604,
                  "src": "10695:22:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2572,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10695:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2575,
                  "mutability": "mutable",
                  "name": "_prevRandomizeBlock",
                  "nameLocation": "10740:19:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2604,
                  "src": "10732:27:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2574,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10732:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2577,
                  "mutability": "mutable",
                  "name": "_nextRandomizeBlock",
                  "nameLocation": "10782:19:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2604,
                  "src": "10774:27:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2576,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10774:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10680:132:23"
            },
            "scope": 3137,
            "src": "10566:500:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13575
            ],
            "body": {
              "id": 2637,
              "nodeType": "Block",
              "src": "11486:286:23",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "condition": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2620,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "baseExpression": {
                                    "expression": {
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "id": 2613,
                                        "name": "__storage",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3136,
                                        "src": "11506:9:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                          "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                                        }
                                      },
                                      "id": 2614,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "11506:11:23",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                                        "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                                      }
                                    },
                                    "id": 2615,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "11518:10:23",
                                    "memberName": "randomize_",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 2032,
                                    "src": "11506:22:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                                      "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                                    }
                                  },
                                  "id": 2617,
                                  "indexExpression": {
                                    "id": 2616,
                                    "name": "_blockNumber",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2607,
                                    "src": "11529:12:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "11506:36:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                                    "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                                  }
                                },
                                "id": 2618,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "11543:13:23",
                                "memberName": "witnetQueryId",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2020,
                                "src": "11506:50:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "!=",
                              "rightExpression": {
                                "hexValue": "30",
                                "id": 2619,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "11560:1:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "11506:55:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 2621,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "11505:57:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "arguments": [
                            {
                              "id": 2629,
                              "name": "_blockNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2607,
                              "src": "11708:12:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 2630,
                                  "name": "__storage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3136,
                                  "src": "11722:9:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                    "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                                  }
                                },
                                "id": 2631,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11722:11:23",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                                  "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                                }
                              },
                              "id": 2632,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "11734:18:23",
                              "memberName": "lastRandomizeBlock",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2027,
                              "src": "11722:30:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 2628,
                            "name": "_searchNextBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3097,
                            "src": "11691:16:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,uint256) view returns (uint256)"
                            }
                          },
                          "id": 2633,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11691:62:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2634,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "11505:248:23",
                        "trueExpression": {
                          "expression": {
                            "baseExpression": {
                              "expression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 2622,
                                  "name": "__storage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3136,
                                  "src": "11578:9:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                    "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                                  }
                                },
                                "id": 2623,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11578:11:23",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                                  "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                                }
                              },
                              "id": 2624,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "11590:10:23",
                              "memberName": "randomize_",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2032,
                              "src": "11578:22:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                                "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                              }
                            },
                            "id": 2626,
                            "indexExpression": {
                              "id": 2625,
                              "name": "_blockNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2607,
                              "src": "11601:12:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "11578:36:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                              "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                            }
                          },
                          "id": 2627,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "11615:9:23",
                          "memberName": "nextBlock",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2024,
                          "src": "11578:46:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 2635,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "11504:260:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2612,
                  "id": 2636,
                  "nodeType": "Return",
                  "src": "11497:267:23"
                }
              ]
            },
            "documentation": {
              "id": 2605,
              "nodeType": "StructuredDocumentation",
              "src": "11074:274:23",
              "text": "@notice Returns the number of the next block in which a randomize request was posted after the given one. \n @param _blockNumber Block number from which the search will start.\n @return Number of the first block found after the given one, or `0` otherwise."
            },
            "functionSelector": "de0958ac",
            "id": 2638,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRandomizeNextBlock",
            "nameLocation": "11363:21:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2609,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11445:8:23"
            },
            "parameters": {
              "id": 2608,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2607,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "11393:12:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2638,
                  "src": "11385:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2606,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11385:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11384:22:23"
            },
            "returnParameters": {
              "id": 2612,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2611,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2638,
                  "src": "11472:7:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2610,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11472:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11471:9:23"
            },
            "scope": 3137,
            "src": "11354:418:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13583
            ],
            "body": {
              "id": 2676,
              "nodeType": "Block",
              "src": "12199:319:23",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2650,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 2648,
                          "name": "_blockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2641,
                          "src": "12217:12:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 2649,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12232:1:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12217:16:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2647,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967293,
                      "src": "12210:6:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2651,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12210:24:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2652,
                  "nodeType": "ExpressionStatement",
                  "src": "12210:24:23"
                },
                {
                  "assignments": [
                    2654
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2654,
                      "mutability": "mutable",
                      "name": "_latest",
                      "nameLocation": "12253:7:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 2676,
                      "src": "12245:15:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2653,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "12245:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2658,
                  "initialValue": {
                    "expression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 2655,
                        "name": "__storage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3136,
                        "src": "12263:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                          "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                        }
                      },
                      "id": 2656,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12263:11:23",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                        "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                      }
                    },
                    "id": 2657,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "12275:18:23",
                    "memberName": "lastRandomizeBlock",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2027,
                    "src": "12263:30:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12245:48:23"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "condition": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2661,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 2659,
                                "name": "_blockNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2641,
                                "src": "12313:12:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">",
                              "rightExpression": {
                                "id": 2660,
                                "name": "_latest",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2654,
                                "src": "12328:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "12313:22:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 2662,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "12312:24:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "arguments": [
                            {
                              "id": 2665,
                              "name": "_blockNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2641,
                              "src": "12443:12:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "baseExpression": {
                                  "expression": {
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "id": 2666,
                                      "name": "__storage",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3136,
                                      "src": "12457:9:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                        "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                                      }
                                    },
                                    "id": 2667,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "12457:11:23",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                                      "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                                    }
                                  },
                                  "id": 2668,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "12469:10:23",
                                  "memberName": "randomize_",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2032,
                                  "src": "12457:22:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                                    "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                                  }
                                },
                                "id": 2670,
                                "indexExpression": {
                                  "id": 2669,
                                  "name": "_latest",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2654,
                                  "src": "12480:7:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "12457:31:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                                  "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                                }
                              },
                              "id": 2671,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "12489:9:23",
                              "memberName": "prevBlock",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2022,
                              "src": "12457:41:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 2664,
                            "name": "_searchPrevBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3125,
                            "src": "12426:16:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,uint256) view returns (uint256)"
                            }
                          },
                          "id": 2672,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12426:73:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2673,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "12312:187:23",
                        "trueExpression": {
                          "id": 2663,
                          "name": "_latest",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2654,
                          "src": "12352:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 2674,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "12311:199:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2646,
                  "id": 2675,
                  "nodeType": "Return",
                  "src": "12304:206:23"
                }
              ]
            },
            "documentation": {
              "id": 2639,
              "nodeType": "StructuredDocumentation",
              "src": "11780:281:23",
              "text": "@notice Returns the number of the previous block in which a randomize request was posted before the given one.\n @param _blockNumber Block number from which the search will start. Cannot be zero.\n @return First block found before the given one, or `0` otherwise."
            },
            "functionSelector": "c0248bf1",
            "id": 2677,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRandomizePrevBlock",
            "nameLocation": "12076:21:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2643,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12158:8:23"
            },
            "parameters": {
              "id": 2642,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2641,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "12106:12:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2677,
                  "src": "12098:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2640,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12098:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12097:22:23"
            },
            "returnParameters": {
              "id": 2646,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2645,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2677,
                  "src": "12185:7:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2644,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12185:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12184:9:23"
            },
            "scope": 3137,
            "src": "12067:451:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13592
            ],
            "body": {
              "id": 2765,
              "nodeType": "Block",
              "src": "13355:911:23",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2694,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "baseExpression": {
                          "expression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 2687,
                              "name": "__storage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3136,
                              "src": "13370:9:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                              }
                            },
                            "id": 2688,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "13370:11:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                              "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                            }
                          },
                          "id": 2689,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "13382:10:23",
                          "memberName": "randomize_",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2032,
                          "src": "13370:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                            "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                          }
                        },
                        "id": 2691,
                        "indexExpression": {
                          "id": 2690,
                          "name": "_blockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2680,
                          "src": "13393:12:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "13370:36:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                          "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                        }
                      },
                      "id": 2692,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13407:13:23",
                      "memberName": "witnetQueryId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2020,
                      "src": "13370:50:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 2693,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13424:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13370:55:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2702,
                  "nodeType": "IfStatement",
                  "src": "13366:138:23",
                  "trueBody": {
                    "id": 2701,
                    "nodeType": "Block",
                    "src": "13427:77:23",
                    "statements": [
                      {
                        "expression": {
                          "id": 2699,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 2695,
                            "name": "_blockNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2680,
                            "src": "13442:12:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 2697,
                                "name": "_blockNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2680,
                                "src": "13479:12:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 2696,
                              "name": "getRandomizeNextBlock",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2638,
                              "src": "13457:21:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256) view returns (uint256)"
                              }
                            },
                            "id": 2698,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "13457:35:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13442:50:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2700,
                        "nodeType": "ExpressionStatement",
                        "src": "13442:50:23"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    2704
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2704,
                      "mutability": "mutable",
                      "name": "_witnetQueryId",
                      "nameLocation": "13522:14:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 2765,
                      "src": "13514:22:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2703,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "13514:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2711,
                  "initialValue": {
                    "expression": {
                      "baseExpression": {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 2705,
                            "name": "__storage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3136,
                            "src": "13539:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                            }
                          },
                          "id": 2706,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13539:11:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                            "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                          }
                        },
                        "id": 2707,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "13551:10:23",
                        "memberName": "randomize_",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2032,
                        "src": "13539:22:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                          "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                        }
                      },
                      "id": 2709,
                      "indexExpression": {
                        "id": 2708,
                        "name": "_blockNumber",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2680,
                        "src": "13562:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "13539:36:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                        "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                      }
                    },
                    "id": 2710,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "13576:13:23",
                    "memberName": "witnetQueryId",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2020,
                    "src": "13539:50:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13514:75:23"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2714,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 2712,
                      "name": "_witnetQueryId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2704,
                      "src": "13604:14:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 2713,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13622:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13604:19:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 2763,
                    "nodeType": "Block",
                    "src": "13703:556:23",
                    "statements": [
                      {
                        "assignments": [
                          2724
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2724,
                            "mutability": "mutable",
                            "name": "_status",
                            "nameLocation": "13742:7:23",
                            "nodeType": "VariableDeclaration",
                            "scope": 2763,
                            "src": "13718:31:23",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                              "typeString": "enum WitnetV2.ResponseStatus"
                            },
                            "typeName": {
                              "id": 2723,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 2722,
                                "name": "WitnetV2.ResponseStatus",
                                "nameLocations": [
                                  "13718:8:23",
                                  "13727:14:23"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 23496,
                                "src": "13718:23:23"
                              },
                              "referencedDeclaration": 23496,
                              "src": "13718:23:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                                "typeString": "enum WitnetV2.ResponseStatus"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 2729,
                        "initialValue": {
                          "arguments": [
                            {
                              "id": 2727,
                              "name": "_witnetQueryId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2704,
                              "src": "13784:14:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 2725,
                              "name": "__witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1016,
                              "src": "13752:8:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_WitnetOracle_$749",
                                "typeString": "contract WitnetOracle"
                              }
                            },
                            "id": 2726,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13761:22:23",
                            "memberName": "getQueryResponseStatus",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 13178,
                            "src": "13752:31:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_enum$_ResponseStatus_$23496_$",
                              "typeString": "function (uint256) view external returns (enum WitnetV2.ResponseStatus)"
                            }
                          },
                          "id": 2728,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13752:47:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                            "typeString": "enum WitnetV2.ResponseStatus"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "13718:81:23"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                            "typeString": "enum WitnetV2.ResponseStatus"
                          },
                          "id": 2734,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 2730,
                            "name": "_status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2724,
                            "src": "13818:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                              "typeString": "enum WitnetV2.ResponseStatus"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "expression": {
                                "id": 2731,
                                "name": "WitnetV2",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23640,
                                "src": "13829:8:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                                  "typeString": "type(library WitnetV2)"
                                }
                              },
                              "id": 2732,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "13838:14:23",
                              "memberName": "ResponseStatus",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 23496,
                              "src": "13829:23:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ResponseStatus_$23496_$",
                                "typeString": "type(enum WitnetV2.ResponseStatus)"
                              }
                            },
                            "id": 2733,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "13853:5:23",
                            "memberName": "Error",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23493,
                            "src": "13829:29:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                              "typeString": "enum WitnetV2.ResponseStatus"
                            }
                          },
                          "src": "13818:40:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 2761,
                          "nodeType": "Block",
                          "src": "14199:49:23",
                          "statements": [
                            {
                              "expression": {
                                "id": 2759,
                                "name": "_status",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2724,
                                "src": "14225:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                                  "typeString": "enum WitnetV2.ResponseStatus"
                                }
                              },
                              "functionReturnParameters": 2686,
                              "id": 2760,
                              "nodeType": "Return",
                              "src": "14218:14:23"
                            }
                          ]
                        },
                        "id": 2762,
                        "nodeType": "IfStatement",
                        "src": "13814:434:23",
                        "trueBody": {
                          "id": 2758,
                          "nodeType": "Block",
                          "src": "13860:333:23",
                          "statements": [
                            {
                              "assignments": [
                                2736
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 2736,
                                  "mutability": "mutable",
                                  "name": "_nextRandomizeBlock",
                                  "nameLocation": "13887:19:23",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 2758,
                                  "src": "13879:27:23",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 2735,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "13879:7:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 2743,
                              "initialValue": {
                                "expression": {
                                  "baseExpression": {
                                    "expression": {
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "id": 2737,
                                        "name": "__storage",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3136,
                                        "src": "13909:9:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                          "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                                        }
                                      },
                                      "id": 2738,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "13909:11:23",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                                        "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                                      }
                                    },
                                    "id": 2739,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "13921:10:23",
                                    "memberName": "randomize_",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 2032,
                                    "src": "13909:22:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                                      "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                                    }
                                  },
                                  "id": 2741,
                                  "indexExpression": {
                                    "id": 2740,
                                    "name": "_blockNumber",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2680,
                                    "src": "13932:12:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "13909:36:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                                    "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                                  }
                                },
                                "id": 2742,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "13946:9:23",
                                "memberName": "nextBlock",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2024,
                                "src": "13909:46:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "13879:76:23"
                            },
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2746,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 2744,
                                  "name": "_nextRandomizeBlock",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2736,
                                  "src": "13978:19:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 2745,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "14001:1:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "13978:24:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "id": 2756,
                                "nodeType": "Block",
                                "src": "14099:79:23",
                                "statements": [
                                  {
                                    "expression": {
                                      "expression": {
                                        "expression": {
                                          "id": 2752,
                                          "name": "WitnetV2",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 23640,
                                          "src": "14129:8:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                                            "typeString": "type(library WitnetV2)"
                                          }
                                        },
                                        "id": 2753,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "14138:14:23",
                                        "memberName": "ResponseStatus",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 23496,
                                        "src": "14129:23:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_enum$_ResponseStatus_$23496_$",
                                          "typeString": "type(enum WitnetV2.ResponseStatus)"
                                        }
                                      },
                                      "id": 2754,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberLocation": "14153:5:23",
                                      "memberName": "Error",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 23493,
                                      "src": "14129:29:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                                        "typeString": "enum WitnetV2.ResponseStatus"
                                      }
                                    },
                                    "functionReturnParameters": 2686,
                                    "id": 2755,
                                    "nodeType": "Return",
                                    "src": "14122:36:23"
                                  }
                                ]
                              },
                              "id": 2757,
                              "nodeType": "IfStatement",
                              "src": "13974:204:23",
                              "trueBody": {
                                "id": 2751,
                                "nodeType": "Block",
                                "src": "14004:89:23",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "id": 2748,
                                          "name": "_nextRandomizeBlock",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2736,
                                          "src": "14053:19:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 2747,
                                        "name": "getRandomizeStatus",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2766,
                                        "src": "14034:18:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ResponseStatus_$23496_$",
                                          "typeString": "function (uint256) view returns (enum WitnetV2.ResponseStatus)"
                                        }
                                      },
                                      "id": 2749,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "14034:39:23",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                                        "typeString": "enum WitnetV2.ResponseStatus"
                                      }
                                    },
                                    "functionReturnParameters": 2686,
                                    "id": 2750,
                                    "nodeType": "Return",
                                    "src": "14027:46:23"
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "id": 2764,
                  "nodeType": "IfStatement",
                  "src": "13600:659:23",
                  "trueBody": {
                    "id": 2719,
                    "nodeType": "Block",
                    "src": "13625:72:23",
                    "statements": [
                      {
                        "expression": {
                          "expression": {
                            "expression": {
                              "id": 2715,
                              "name": "WitnetV2",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23640,
                              "src": "13647:8:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                                "typeString": "type(library WitnetV2)"
                              }
                            },
                            "id": 2716,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13656:14:23",
                            "memberName": "ResponseStatus",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23496,
                            "src": "13647:23:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_ResponseStatus_$23496_$",
                              "typeString": "type(enum WitnetV2.ResponseStatus)"
                            }
                          },
                          "id": 2717,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "13671:4:23",
                          "memberName": "Void",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 23490,
                          "src": "13647:28:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                            "typeString": "enum WitnetV2.ResponseStatus"
                          }
                        },
                        "functionReturnParameters": 2686,
                        "id": 2718,
                        "nodeType": "Return",
                        "src": "13640:35:23"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 2678,
              "nodeType": "StructuredDocumentation",
              "src": "12526:677:23",
              "text": "@notice Returns status of the first non-errored randomize request posted on or after the given block number.\n @dev Possible values:\n @dev - 0 -> Void: no randomize request was actually posted on or after the given block number.\n @dev - 1 -> Awaiting: a randomize request was found but it's not yet solved by the Witnet blockchain.\n @dev - 2 -> Ready: a successfull randomize value was reported and ready to be read.\n @dev - 3 -> Error: all randomize requests after the given block were solved with errors.\n @dev - 4 -> Finalizing: a randomize resolution has been reported from the Witnet blockchain, but it's not yet final.  "
            },
            "functionSelector": "76fa9d20",
            "id": 2766,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRandomizeStatus",
            "nameLocation": "13218:18:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2682,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13276:8:23"
            },
            "parameters": {
              "id": 2681,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2680,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "13245:12:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2766,
                  "src": "13237:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2679,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13237:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13236:22:23"
            },
            "returnParameters": {
              "id": 2686,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2685,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2766,
                  "src": "13325:23:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                    "typeString": "enum WitnetV2.ResponseStatus"
                  },
                  "typeName": {
                    "id": 2684,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2683,
                      "name": "WitnetV2.ResponseStatus",
                      "nameLocations": [
                        "13325:8:23",
                        "13334:14:23"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23496,
                      "src": "13325:23:23"
                    },
                    "referencedDeclaration": 23496,
                    "src": "13325:23:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                      "typeString": "enum WitnetV2.ResponseStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13324:25:23"
            },
            "scope": 3137,
            "src": "13209:1057:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13600
            ],
            "body": {
              "id": 2784,
              "nodeType": "Block",
              "src": "14600:117:23",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                          "typeString": "enum WitnetV2.ResponseStatus"
                        },
                        "id": 2781,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "id": 2776,
                              "name": "_blockNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2769,
                              "src": "14652:12:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 2775,
                            "name": "getRandomizeStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2766,
                            "src": "14633:18:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ResponseStatus_$23496_$",
                              "typeString": "function (uint256) view returns (enum WitnetV2.ResponseStatus)"
                            }
                          },
                          "id": 2777,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14633:32:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                            "typeString": "enum WitnetV2.ResponseStatus"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "expression": {
                              "id": 2778,
                              "name": "WitnetV2",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23640,
                              "src": "14669:8:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                                "typeString": "type(library WitnetV2)"
                              }
                            },
                            "id": 2779,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14678:14:23",
                            "memberName": "ResponseStatus",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23496,
                            "src": "14669:23:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_ResponseStatus_$23496_$",
                              "typeString": "type(enum WitnetV2.ResponseStatus)"
                            }
                          },
                          "id": 2780,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "14693:5:23",
                          "memberName": "Ready",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 23492,
                          "src": "14669:29:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                            "typeString": "enum WitnetV2.ResponseStatus"
                          }
                        },
                        "src": "14633:65:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 2782,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "14618:91:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 2774,
                  "id": 2783,
                  "nodeType": "Return",
                  "src": "14611:98:23"
                }
              ]
            },
            "documentation": {
              "id": 2767,
              "nodeType": "StructuredDocumentation",
              "src": "14274:200:23",
              "text": "@notice Returns `true` only if a successfull resolution from the Witnet blockchain is found for the first \n @notice non-errored randomize request posted on or after the given block number."
            },
            "functionSelector": "9bc86fec",
            "id": 2785,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isRandomized",
            "nameLocation": "14489:12:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2771,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14562:8:23"
            },
            "parameters": {
              "id": 2770,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2769,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "14510:12:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2785,
                  "src": "14502:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2768,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14502:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14501:22:23"
            },
            "returnParameters": {
              "id": 2774,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2773,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2785,
                  "src": "14589:4:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2772,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "14589:4:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14588:6:23"
            },
            "scope": 3137,
            "src": "14480:237:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13612
            ],
            "body": {
              "id": 2814,
              "nodeType": "Block",
              "src": "15498:284:23",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2800,
                        "name": "_range",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2788,
                        "src": "15559:6:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "id": 2801,
                        "name": "_nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2790,
                        "src": "15580:6:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 2805,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967281,
                                  "src": "15662:3:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 2806,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "15666:6:23",
                                "memberName": "sender",
                                "nodeType": "MemberAccess",
                                "src": "15662:10:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "id": 2808,
                                    "name": "_blockNumber",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2792,
                                    "src": "15716:12:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 2807,
                                  "name": "fetchRandomnessAfter",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2322,
                                  "src": "15695:20:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bytes32_$",
                                    "typeString": "function (uint256) view returns (bytes32)"
                                  }
                                },
                                "id": 2809,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "15695:34:23",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "id": 2803,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "15629:3:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 2804,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "15633:6:23",
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "src": "15629:10:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 2810,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15629:119:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 2802,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967288,
                          "src": "15601:9:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 2811,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15601:162:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 2798,
                        "name": "WitnetV2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23640,
                        "src": "15516:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                          "typeString": "type(library WitnetV2)"
                        }
                      },
                      "id": 2799,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "15525:19:23",
                      "memberName": "randomUniformUint32",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23639,
                      "src": "15516:28:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint256_$_t_bytes32_$returns$_t_uint32_$",
                        "typeString": "function (uint32,uint256,bytes32) pure returns (uint32)"
                      }
                    },
                    "id": 2812,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15516:258:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 2797,
                  "id": 2813,
                  "nodeType": "Return",
                  "src": "15509:265:23"
                }
              ]
            },
            "documentation": {
              "id": 2786,
              "nodeType": "StructuredDocumentation",
              "src": "14725:617:23",
              "text": "@notice Generates a pseudo-random number uniformly distributed within the range [0 .. _range), by using \n @notice the given `nonce` and the randomness returned by `getRandomnessAfter(blockNumber)`. \n @dev Fails under same conditions as `getRandomnessAfter(uint256)` does.\n @param _range Range within which the uniformly-distributed random number will be generated.\n @param _nonce Nonce value enabling multiple random numbers from the same randomness value.\n @param _blockNumber Block number from which the search for the first randomize request solved aftewards will start."
            },
            "functionSelector": "24cbbfc1",
            "id": 2815,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "random",
            "nameLocation": "15357:6:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2794,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "15458:8:23"
            },
            "parameters": {
              "id": 2793,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2788,
                  "mutability": "mutable",
                  "name": "_range",
                  "nameLocation": "15371:6:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2815,
                  "src": "15364:13:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 2787,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15364:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2790,
                  "mutability": "mutable",
                  "name": "_nonce",
                  "nameLocation": "15387:6:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2815,
                  "src": "15379:14:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2789,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15379:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2792,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "15403:12:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2815,
                  "src": "15395:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2791,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15395:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15363:53:23"
            },
            "returnParameters": {
              "id": 2797,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2796,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2815,
                  "src": "15485:6:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 2795,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15485:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15484:8:23"
            },
            "scope": 3137,
            "src": "15348:434:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13618
            ],
            "body": {
              "id": 2918,
              "nodeType": "Block",
              "src": "16192:1259:23",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2827,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 2822,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3136,
                          "src": "16207:9:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                          }
                        },
                        "id": 2823,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16207:11:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                          "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                        }
                      },
                      "id": 2824,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "16219:18:23",
                      "memberName": "lastRandomizeBlock",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2027,
                      "src": "16207:30:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 2825,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967292,
                        "src": "16240:5:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 2826,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "16246:6:23",
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "src": "16240:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "16207:45:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2899,
                  "nodeType": "IfStatement",
                  "src": "16203:1072:23",
                  "trueBody": {
                    "id": 2898,
                    "nodeType": "Block",
                    "src": "16254:1021:23",
                    "statements": [
                      {
                        "expression": {
                          "id": 2831,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 2828,
                            "name": "_evmRandomizeFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2820,
                            "src": "16269:16:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "expression": {
                              "id": 2829,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "16288:3:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2830,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "16292:5:23",
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "src": "16288:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "16269:28:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2832,
                        "nodeType": "ExpressionStatement",
                        "src": "16269:28:23"
                      },
                      {
                        "assignments": [
                          2834
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2834,
                            "mutability": "mutable",
                            "name": "_witnetQueryId",
                            "nameLocation": "16369:14:23",
                            "nodeType": "VariableDeclaration",
                            "scope": 2898,
                            "src": "16364:19:23",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 2833,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "16364:4:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 2842,
                        "initialValue": {
                          "arguments": [
                            {
                              "id": 2839,
                              "name": "witnetRadHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2037,
                              "src": "16482:13:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "id": 2840,
                              "name": "__witnetDefaultSLA",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1020,
                              "src": "16514:18:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RadonSLA_$23503_storage",
                                "typeString": "struct WitnetV2.RadonSLA storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_struct$_RadonSLA_$23503_storage",
                                "typeString": "struct WitnetV2.RadonSLA storage ref"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_struct$_RadonSLA_$23503_storage",
                                  "typeString": "struct WitnetV2.RadonSLA storage ref"
                                }
                              ],
                              "expression": {
                                "id": 2835,
                                "name": "__witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1016,
                                "src": "16386:8:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_WitnetOracle_$749",
                                  "typeString": "contract WitnetOracle"
                                }
                              },
                              "id": 2836,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "16395:11:23",
                              "memberName": "postRequest",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 13232,
                              "src": "16386:20:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_payable$_t_bytes32_$_t_struct$_RadonSLA_$23503_memory_ptr_$returns$_t_uint256_$",
                                "typeString": "function (bytes32,struct WitnetV2.RadonSLA memory) payable external returns (uint256)"
                              }
                            },
                            "id": 2838,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "names": [
                              "value"
                            ],
                            "nodeType": "FunctionCallOptions",
                            "options": [
                              {
                                "id": 2837,
                                "name": "_evmRandomizeFee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2820,
                                "src": "16432:16:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "src": "16386:77:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_payable$_t_bytes32_$_t_struct$_RadonSLA_$23503_memory_ptr_$returns$_t_uint256_$value",
                              "typeString": "function (bytes32,struct WitnetV2.RadonSLA memory) payable external returns (uint256)"
                            }
                          },
                          "id": 2841,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16386:163:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "16364:185:23"
                      },
                      {
                        "assignments": [
                          2845
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2845,
                            "mutability": "mutable",
                            "name": "__randomize",
                            "nameLocation": "16630:11:23",
                            "nodeType": "VariableDeclaration",
                            "scope": 2898,
                            "src": "16612:29:23",
                            "stateVariable": false,
                            "storageLocation": "storage",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                              "typeString": "struct WitnetRandomnessV2.Randomize"
                            },
                            "typeName": {
                              "id": 2844,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 2843,
                                "name": "Randomize",
                                "nameLocations": [
                                  "16612:9:23"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 2025,
                                "src": "16612:9:23"
                              },
                              "referencedDeclaration": 2025,
                              "src": "16612:9:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                                "typeString": "struct WitnetRandomnessV2.Randomize"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 2852,
                        "initialValue": {
                          "baseExpression": {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 2846,
                                "name": "__storage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3136,
                                "src": "16644:9:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                  "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                                }
                              },
                              "id": 2847,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "16644:11:23",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                                "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                              }
                            },
                            "id": 2848,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "16656:10:23",
                            "memberName": "randomize_",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2032,
                            "src": "16644:22:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                              "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                            }
                          },
                          "id": 2851,
                          "indexExpression": {
                            "expression": {
                              "id": 2849,
                              "name": "block",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967292,
                              "src": "16667:5:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_block",
                                "typeString": "block"
                              }
                            },
                            "id": 2850,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "16673:6:23",
                            "memberName": "number",
                            "nodeType": "MemberAccess",
                            "src": "16667:12:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16644:36:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                            "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "16612:68:23"
                      },
                      {
                        "expression": {
                          "id": 2857,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "id": 2853,
                              "name": "__randomize",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2845,
                              "src": "16695:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                                "typeString": "struct WitnetRandomnessV2.Randomize storage pointer"
                              }
                            },
                            "id": 2855,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "16707:13:23",
                            "memberName": "witnetQueryId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2020,
                            "src": "16695:25:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 2856,
                            "name": "_witnetQueryId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2834,
                            "src": "16723:14:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "16695:42:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2858,
                        "nodeType": "ExpressionStatement",
                        "src": "16695:42:23"
                      },
                      {
                        "assignments": [
                          2860
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2860,
                            "mutability": "mutable",
                            "name": "_prevBlock",
                            "nameLocation": "16796:10:23",
                            "nodeType": "VariableDeclaration",
                            "scope": 2898,
                            "src": "16788:18:23",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 2859,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "16788:7:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 2864,
                        "initialValue": {
                          "expression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 2861,
                              "name": "__storage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3136,
                              "src": "16809:9:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                              }
                            },
                            "id": 2862,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "16809:11:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                              "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                            }
                          },
                          "id": 2863,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "16821:18:23",
                          "memberName": "lastRandomizeBlock",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2027,
                          "src": "16809:30:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "16788:51:23"
                      },
                      {
                        "expression": {
                          "id": 2869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "id": 2865,
                              "name": "__randomize",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2845,
                              "src": "16854:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$2025_storage_ptr",
                                "typeString": "struct WitnetRandomnessV2.Randomize storage pointer"
                              }
                            },
                            "id": 2867,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "16866:9:23",
                            "memberName": "prevBlock",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2022,
                            "src": "16854:21:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 2868,
                            "name": "_prevBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2860,
                            "src": "16878:10:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "16854:34:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2870,
                        "nodeType": "ExpressionStatement",
                        "src": "16854:34:23"
                      },
                      {
                        "expression": {
                          "id": 2879,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "baseExpression": {
                                "expression": {
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "id": 2871,
                                    "name": "__storage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3136,
                                    "src": "16903:9:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                      "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                                    }
                                  },
                                  "id": 2872,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "16903:11:23",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                                    "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                                  }
                                },
                                "id": 2873,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "16915:10:23",
                                "memberName": "randomize_",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2032,
                                "src": "16903:22:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                                  "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                                }
                              },
                              "id": 2875,
                              "indexExpression": {
                                "id": 2874,
                                "name": "_prevBlock",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2860,
                                "src": "16926:10:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16903:34:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                                "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                              }
                            },
                            "id": 2876,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "16938:9:23",
                            "memberName": "nextBlock",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2024,
                            "src": "16903:44:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "expression": {
                              "id": 2877,
                              "name": "block",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967292,
                              "src": "16950:5:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_block",
                                "typeString": "block"
                              }
                            },
                            "id": 2878,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "16956:6:23",
                            "memberName": "number",
                            "nodeType": "MemberAccess",
                            "src": "16950:12:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "16903:59:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2880,
                        "nodeType": "ExpressionStatement",
                        "src": "16903:59:23"
                      },
                      {
                        "expression": {
                          "id": 2886,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 2881,
                                "name": "__storage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3136,
                                "src": "16977:9:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                  "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                                }
                              },
                              "id": 2882,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "16977:11:23",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                                "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                              }
                            },
                            "id": 2883,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "16989:18:23",
                            "memberName": "lastRandomizeBlock",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2027,
                            "src": "16977:30:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "expression": {
                              "id": 2884,
                              "name": "block",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967292,
                              "src": "17010:5:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_block",
                                "typeString": "block"
                              }
                            },
                            "id": 2885,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "17016:6:23",
                            "memberName": "number",
                            "nodeType": "MemberAccess",
                            "src": "17010:12:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "16977:45:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2887,
                        "nodeType": "ExpressionStatement",
                        "src": "16977:45:23"
                      },
                      {
                        "eventCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 2889,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967292,
                                "src": "17101:5:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 2890,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "17107:6:23",
                              "memberName": "number",
                              "nodeType": "MemberAccess",
                              "src": "17101:12:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 2891,
                                "name": "tx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967270,
                                "src": "17132:2:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_transaction",
                                  "typeString": "tx"
                                }
                              },
                              "id": 2892,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "17135:8:23",
                              "memberName": "gasprice",
                              "nodeType": "MemberAccess",
                              "src": "17132:11:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 2893,
                              "name": "_evmRandomizeFee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2820,
                              "src": "17162:16:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 2894,
                              "name": "_witnetQueryId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2834,
                              "src": "17197:14:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 2895,
                              "name": "__witnetDefaultSLA",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1020,
                              "src": "17230:18:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RadonSLA_$23503_storage",
                                "typeString": "struct WitnetV2.RadonSLA storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_struct$_RadonSLA_$23503_storage",
                                "typeString": "struct WitnetV2.RadonSLA storage ref"
                              }
                            ],
                            "id": 2888,
                            "name": "Randomizing",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13695,
                            "src": "17071:11:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_RadonSLA_$23503_memory_ptr_$returns$__$",
                              "typeString": "function (uint256,uint256,uint256,uint256,struct WitnetV2.RadonSLA memory)"
                            }
                          },
                          "id": 2896,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17071:192:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2897,
                        "nodeType": "EmitStatement",
                        "src": "17066:197:23"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2903,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 2900,
                      "name": "_evmRandomizeFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2820,
                      "src": "17329:16:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 2901,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967281,
                        "src": "17348:3:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 2902,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "17352:5:23",
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "src": "17348:9:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17329:28:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2917,
                  "nodeType": "IfStatement",
                  "src": "17325:119:23",
                  "trueBody": {
                    "id": 2916,
                    "nodeType": "Block",
                    "src": "17359:85:23",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2913,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 2910,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967281,
                                  "src": "17403:3:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 2911,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "17407:5:23",
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "src": "17403:9:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "id": 2912,
                                "name": "_evmRandomizeFee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2820,
                                "src": "17415:16:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "17403:28:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 2906,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967281,
                                    "src": "17382:3:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 2907,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "17386:6:23",
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "src": "17382:10:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 2905,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "17374:8:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_payable_$",
                                  "typeString": "type(address payable)"
                                },
                                "typeName": {
                                  "id": 2904,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "17374:8:23",
                                  "stateMutability": "payable",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 2908,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "17374:19:23",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "id": 2909,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "17394:8:23",
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "src": "17374:28:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 2914,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17374:58:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2915,
                        "nodeType": "ExpressionStatement",
                        "src": "17374:58:23"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 2816,
              "nodeType": "StructuredDocumentation",
              "src": "15790:274:23",
              "text": "@notice Requests the Witnet oracle to generate an EVM-agnostic and trustless source of randomness. \n @dev Only one randomness request per block will be actually posted to the Witnet Oracle. \n @return _evmRandomizeFee Funds actually paid as randomize fee."
            },
            "functionSelector": "699b328a",
            "id": 2919,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "randomize",
            "nameLocation": "16079:9:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2818,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "16134:8:23"
            },
            "parameters": {
              "id": 2817,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16088:2:23"
            },
            "returnParameters": {
              "id": 2821,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2820,
                  "mutability": "mutable",
                  "name": "_evmRandomizeFee",
                  "nameLocation": "16169:16:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2919,
                  "src": "16161:24:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2819,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16161:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "16160:26:23"
            },
            "scope": 3137,
            "src": "16070:1381:23",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13632
            ],
            "body": {
              "id": 2929,
              "nodeType": "Block",
              "src": "17916:44:23",
              "statements": [
                {
                  "expression": {
                    "id": 2927,
                    "name": "__witnetDefaultSLA",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1020,
                    "src": "17934:18:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLA_$23503_storage",
                      "typeString": "struct WitnetV2.RadonSLA storage ref"
                    }
                  },
                  "functionReturnParameters": 2926,
                  "id": 2928,
                  "nodeType": "Return",
                  "src": "17927:25:23"
                }
              ]
            },
            "documentation": {
              "id": 2920,
              "nodeType": "StructuredDocumentation",
              "src": "17459:326:23",
              "text": "@notice Returns the SLA parameters required for the Witnet Oracle blockchain to fulfill \n @notice when solving randomness requests:\n @notice - number of witnessing nodes contributing to randomness generation\n @notice - reward in $nanoWIT received by every contributing node in the Witnet blockchain"
            },
            "functionSelector": "9353badd",
            "id": 2930,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "witnetQuerySLA",
            "nameLocation": "17800:14:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2922,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "17835:8:23"
            },
            "parameters": {
              "id": 2921,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17814:2:23"
            },
            "returnParameters": {
              "id": 2926,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2925,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2930,
                  "src": "17885:24:23",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonSLA_$23503_memory_ptr",
                    "typeString": "struct WitnetV2.RadonSLA"
                  },
                  "typeName": {
                    "id": 2924,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2923,
                      "name": "WitnetV2.RadonSLA",
                      "nameLocations": [
                        "17885:8:23",
                        "17894:8:23"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23503,
                      "src": "17885:17:23"
                    },
                    "referencedDeclaration": 23503,
                    "src": "17885:17:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLA_$23503_storage_ptr",
                      "typeString": "struct WitnetV2.RadonSLA"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17884:26:23"
            },
            "scope": 3137,
            "src": "17791:169:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13645,
              24093
            ],
            "body": {
              "id": 2942,
              "nodeType": "Block",
              "src": "18327:49:23",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 2937,
                        "name": "Ownable2Step",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 24094,
                        "src": "18338:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Ownable2Step_$24094_$",
                          "typeString": "type(contract Ownable2Step)"
                        }
                      },
                      "id": 2939,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "18351:15:23",
                      "memberName": "acceptOwnership",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24093,
                      "src": "18338:28:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 2940,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18338:30:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2941,
                  "nodeType": "ExpressionStatement",
                  "src": "18338:30:23"
                }
              ]
            },
            "documentation": {
              "id": 2931,
              "nodeType": "StructuredDocumentation",
              "src": "17970:238:23",
              "text": "===============================================================================================================\n --- 'IWitnetRandomnessAdmin' implementation -------------------------------------------------------------------"
            },
            "functionSelector": "79ba5097",
            "id": 2943,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "acceptOwnership",
            "nameLocation": "18223:15:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2935,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 2933,
                  "name": "IWitnetRandomnessAdmin",
                  "nameLocations": [
                    "18268:22:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 13677,
                  "src": "18268:22:23"
                },
                {
                  "id": 2934,
                  "name": "Ownable2Step",
                  "nameLocations": [
                    "18292:12:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 24094,
                  "src": "18292:12:23"
                }
              ],
              "src": "18258:47:23"
            },
            "parameters": {
              "id": 2932,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18238:2:23"
            },
            "returnParameters": {
              "id": 2936,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18327:0:23"
            },
            "scope": 3137,
            "src": "18214:162:23",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13650
            ],
            "body": {
              "id": 2951,
              "nodeType": "Block",
              "src": "18502:59:23",
              "statements": [
                {
                  "expression": {
                    "id": 2949,
                    "name": "__witnetBaseFeeOverheadPercentage",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1023,
                    "src": "18520:33:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "functionReturnParameters": 2948,
                  "id": 2950,
                  "nodeType": "Return",
                  "src": "18513:40:23"
                }
              ]
            },
            "functionSelector": "eb92b29b",
            "id": 2952,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "baseFeeOverheadPercentage",
            "nameLocation": "18393:25:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2945,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "18438:8:23"
            },
            "parameters": {
              "id": 2944,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18418:2:23"
            },
            "returnParameters": {
              "id": 2948,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2947,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2952,
                  "src": "18489:6:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 2946,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "18489:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18488:8:23"
            },
            "scope": 3137,
            "src": "18384:177:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              321,
              13655
            ],
            "body": {
              "id": 2964,
              "nodeType": "Block",
              "src": "18700:41:23",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 2960,
                        "name": "Ownable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 401,
                        "src": "18718:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Ownable_$401_$",
                          "typeString": "type(contract Ownable)"
                        }
                      },
                      "id": 2961,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "18726:5:23",
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 321,
                      "src": "18718:13:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 2962,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18718:15:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2959,
                  "id": 2963,
                  "nodeType": "Return",
                  "src": "18711:22:23"
                }
              ]
            },
            "functionSelector": "8da5cb5b",
            "id": 2965,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "owner",
            "nameLocation": "18578:5:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2956,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 2954,
                  "name": "IWitnetRandomnessAdmin",
                  "nameLocations": [
                    "18613:22:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 13677,
                  "src": "18613:22:23"
                },
                {
                  "id": 2955,
                  "name": "Ownable",
                  "nameLocations": [
                    "18637:7:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 401,
                  "src": "18637:7:23"
                }
              ],
              "src": "18603:42:23"
            },
            "parameters": {
              "id": 2953,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18583:2:23"
            },
            "returnParameters": {
              "id": 2959,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2958,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2965,
                  "src": "18686:7:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2957,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18686:7:23",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18685:9:23"
            },
            "scope": 3137,
            "src": "18569:172:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13660,
              24032
            ],
            "body": {
              "id": 2977,
              "nodeType": "Block",
              "src": "18892:53:23",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 2973,
                        "name": "Ownable2Step",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 24094,
                        "src": "18910:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Ownable2Step_$24094_$",
                          "typeString": "type(contract Ownable2Step)"
                        }
                      },
                      "id": 2974,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "18923:12:23",
                      "memberName": "pendingOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24032,
                      "src": "18910:25:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 2975,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18910:27:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2972,
                  "id": 2976,
                  "nodeType": "Return",
                  "src": "18903:34:23"
                }
              ]
            },
            "functionSelector": "e30c3978",
            "id": 2978,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "pendingOwner",
            "nameLocation": "18758:12:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2969,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 2967,
                  "name": "IWitnetRandomnessAdmin",
                  "nameLocations": [
                    "18801:22:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 13677,
                  "src": "18801:22:23"
                },
                {
                  "id": 2968,
                  "name": "Ownable2Step",
                  "nameLocations": [
                    "18825:12:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 24094,
                  "src": "18825:12:23"
                }
              ],
              "src": "18791:47:23"
            },
            "parameters": {
              "id": 2966,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18770:2:23"
            },
            "returnParameters": {
              "id": 2972,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2971,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2978,
                  "src": "18878:7:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2970,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18878:7:23",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18877:9:23"
            },
            "scope": 3137,
            "src": "18749:196:23",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13665,
              24052
            ],
            "body": {
              "id": 2994,
              "nodeType": "Block",
              "src": "19109:55:23",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2991,
                        "name": "_newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2980,
                        "src": "19146:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 2988,
                        "name": "Ownable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 401,
                        "src": "19120:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Ownable_$401_$",
                          "typeString": "type(contract Ownable)"
                        }
                      },
                      "id": 2990,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "19128:17:23",
                      "memberName": "transferOwnership",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 380,
                      "src": "19120:25:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 2992,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19120:36:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2993,
                  "nodeType": "ExpressionStatement",
                  "src": "19120:36:23"
                }
              ]
            },
            "functionSelector": "f2fde38b",
            "id": 2995,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 2986,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 2985,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "19094:9:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 312,
                  "src": "19094:9:23"
                },
                "nodeType": "ModifierInvocation",
                "src": "19094:9:23"
              }
            ],
            "name": "transferOwnership",
            "nameLocation": "18966:17:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2984,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 2982,
                  "name": "IWitnetRandomnessAdmin",
                  "nameLocations": [
                    "19030:22:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 13677,
                  "src": "19030:22:23"
                },
                {
                  "id": 2983,
                  "name": "Ownable2Step",
                  "nameLocations": [
                    "19054:12:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 24094,
                  "src": "19054:12:23"
                }
              ],
              "src": "19020:47:23"
            },
            "parameters": {
              "id": 2981,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2980,
                  "mutability": "mutable",
                  "name": "_newOwner",
                  "nameLocation": "18992:9:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 2995,
                  "src": "18984:17:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2979,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18984:7:23",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18983:19:23"
            },
            "returnParameters": {
              "id": 2987,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19109:0:23"
            },
            "scope": 3137,
            "src": "18957:207:23",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13670
            ],
            "body": {
              "id": 3007,
              "nodeType": "Block",
              "src": "19316:81:23",
              "statements": [
                {
                  "expression": {
                    "id": 3005,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 3003,
                      "name": "__witnetBaseFeeOverheadPercentage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1023,
                      "src": "19327:33:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 3004,
                      "name": "_baseFeeOverheadPercentage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2997,
                      "src": "19363:26:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "19327:62:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "id": 3006,
                  "nodeType": "ExpressionStatement",
                  "src": "19327:62:23"
                }
              ]
            },
            "functionSelector": "b8d38c96",
            "id": 3008,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 3001,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 3000,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "19301:9:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 312,
                  "src": "19301:9:23"
                },
                "nodeType": "ModifierInvocation",
                "src": "19301:9:23"
              }
            ],
            "name": "settleBaseFeeOverheadPercentage",
            "nameLocation": "19181:31:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2999,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "19265:8:23"
            },
            "parameters": {
              "id": 2998,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2997,
                  "mutability": "mutable",
                  "name": "_baseFeeOverheadPercentage",
                  "nameLocation": "19220:26:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 3008,
                  "src": "19213:33:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 2996,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "19213:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19212:35:23"
            },
            "returnParameters": {
              "id": 3002,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19316:0:23"
            },
            "scope": 3137,
            "src": "19172:225:23",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13676
            ],
            "body": {
              "id": 3028,
              "nodeType": "Block",
              "src": "19547:153:23",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "id": 3018,
                            "name": "_witnetQuerySLA",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3011,
                            "src": "19581:15:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                              "typeString": "struct WitnetV2.RadonSLA calldata"
                            }
                          },
                          "id": 3019,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "19597:7:23",
                          "memberName": "isValid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 23548,
                          "src": "19581:23:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_struct$_RadonSLA_$23503_calldata_ptr_$returns$_t_bool_$attached_to$_t_struct$_RadonSLA_$23503_calldata_ptr_$",
                            "typeString": "function (struct WitnetV2.RadonSLA calldata) pure returns (bool)"
                          }
                        },
                        "id": 3020,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "19581:25:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e76616c696420534c41",
                        "id": 3021,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19621:13:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_649dbe9d60b1f0c53e04c2d59e7afec11199b4ea79256e4be931f59e1bb314a7",
                          "typeString": "literal_string \"invalid SLA\""
                        },
                        "value": "invalid SLA"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_649dbe9d60b1f0c53e04c2d59e7afec11199b4ea79256e4be931f59e1bb314a7",
                          "typeString": "literal_string \"invalid SLA\""
                        }
                      ],
                      "id": 3017,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3045,
                      "src": "19558:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3022,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19558:87:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3023,
                  "nodeType": "ExpressionStatement",
                  "src": "19558:87:23"
                },
                {
                  "expression": {
                    "id": 3026,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 3024,
                      "name": "__witnetDefaultSLA",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1020,
                      "src": "19656:18:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RadonSLA_$23503_storage",
                        "typeString": "struct WitnetV2.RadonSLA storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 3025,
                      "name": "_witnetQuerySLA",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3011,
                      "src": "19677:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                        "typeString": "struct WitnetV2.RadonSLA calldata"
                      }
                    },
                    "src": "19656:36:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLA_$23503_storage",
                      "typeString": "struct WitnetV2.RadonSLA storage ref"
                    }
                  },
                  "id": 3027,
                  "nodeType": "ExpressionStatement",
                  "src": "19656:36:23"
                }
              ]
            },
            "functionSelector": "d2bc459b",
            "id": 3029,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 3015,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 3014,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "19532:9:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 312,
                  "src": "19532:9:23"
                },
                "nodeType": "ModifierInvocation",
                "src": "19532:9:23"
              }
            ],
            "name": "settleWitnetQuerySLA",
            "nameLocation": "19414:20:23",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3013,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "19496:8:23"
            },
            "parameters": {
              "id": 3012,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3011,
                  "mutability": "mutable",
                  "name": "_witnetQuerySLA",
                  "nameLocation": "19462:15:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 3029,
                  "src": "19435:42:23",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                    "typeString": "struct WitnetV2.RadonSLA"
                  },
                  "typeName": {
                    "id": 3010,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3009,
                      "name": "WitnetV2.RadonSLA",
                      "nameLocations": [
                        "19435:8:23",
                        "19444:8:23"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23503,
                      "src": "19435:17:23"
                    },
                    "referencedDeclaration": 23503,
                    "src": "19435:17:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLA_$23503_storage_ptr",
                      "typeString": "struct WitnetV2.RadonSLA"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19434:44:23"
            },
            "returnParameters": {
              "id": 3016,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19547:0:23"
            },
            "scope": 3137,
            "src": "19405:295:23",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3044,
              "nodeType": "Block",
              "src": "20079:79:23",
              "statements": [
                {
                  "condition": {
                    "id": 3037,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "20094:11:23",
                    "subExpression": {
                      "id": 3036,
                      "name": "_condition",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3031,
                      "src": "20095:10:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3043,
                  "nodeType": "IfStatement",
                  "src": "20090:61:23",
                  "trueBody": {
                    "id": 3042,
                    "nodeType": "Block",
                    "src": "20107:44:23",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 3039,
                              "name": "_message",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3033,
                              "src": "20130:8:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "id": 3038,
                            "name": "_revert",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3064,
                            "src": "20122:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (string memory) pure"
                            }
                          },
                          "id": 3040,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "20122:17:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3041,
                        "nodeType": "ExpressionStatement",
                        "src": "20122:17:23"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 3045,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_require",
            "nameLocation": "19963:8:23",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3034,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3031,
                  "mutability": "mutable",
                  "name": "_condition",
                  "nameLocation": "19991:10:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 3045,
                  "src": "19986:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3030,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "19986:4:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3033,
                  "mutability": "mutable",
                  "name": "_message",
                  "nameLocation": "20031:8:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 3045,
                  "src": "20017:22:23",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3032,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "20017:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19971:79:23"
            },
            "returnParameters": {
              "id": 3035,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20079:0:23"
            },
            "scope": 3137,
            "src": "19954:204:23",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3063,
              "nodeType": "Block",
              "src": "20235:166:23",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 3055,
                                  "name": "class",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2249,
                                  "src": "20309:5:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_string_memory_ptr_$",
                                    "typeString": "function () pure returns (string memory)"
                                  }
                                },
                                "id": 3056,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "20309:7:23",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "hexValue": "3a20",
                                "id": 3057,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "20335:4:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73",
                                  "typeString": "literal_string \": \""
                                },
                                "value": ": "
                              },
                              {
                                "id": 3058,
                                "name": "_message",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3047,
                                "src": "20358:8:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73",
                                  "typeString": "literal_string \": \""
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "expression": {
                                "id": 3053,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "20274:3:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 3054,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "20278:12:23",
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "src": "20274:16:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 3059,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "20274:107:23",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 3052,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "20267:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                            "typeString": "type(string storage pointer)"
                          },
                          "typeName": {
                            "id": 3051,
                            "name": "string",
                            "nodeType": "ElementaryTypeName",
                            "src": "20267:6:23",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 3060,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20267:115:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3050,
                      "name": "revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967277,
                        4294967277
                      ],
                      "referencedDeclaration": 4294967277,
                      "src": "20246:6:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 3061,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20246:147:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3062,
                  "nodeType": "ExpressionStatement",
                  "src": "20246:147:23"
                }
              ]
            },
            "id": 3064,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_revert",
            "nameLocation": "20175:7:23",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3048,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3047,
                  "mutability": "mutable",
                  "name": "_message",
                  "nameLocation": "20197:8:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 3064,
                  "src": "20183:22:23",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3046,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "20183:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "20182:24:23"
            },
            "returnParameters": {
              "id": 3049,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20235:0:23"
            },
            "scope": 3137,
            "src": "20166:235:23",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3096,
              "nodeType": "Block",
              "src": "20679:200:23",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "condition": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 3076,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 3074,
                                "name": "_target",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3067,
                                "src": "20699:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "id": 3075,
                                "name": "_latest",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3069,
                                "src": "20710:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "20699:18:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 3077,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "20698:20:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "arguments": [
                            {
                              "id": 3085,
                              "name": "_target",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3067,
                              "src": "20809:7:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "baseExpression": {
                                  "expression": {
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "id": 3086,
                                      "name": "__storage",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3136,
                                      "src": "20818:9:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                        "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                                      }
                                    },
                                    "id": 3087,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "20818:11:23",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                                      "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                                    }
                                  },
                                  "id": 3088,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "20830:10:23",
                                  "memberName": "randomize_",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2032,
                                  "src": "20818:22:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                                    "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                                  }
                                },
                                "id": 3090,
                                "indexExpression": {
                                  "id": 3089,
                                  "name": "_latest",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3069,
                                  "src": "20841:7:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "20818:31:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                                  "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                                }
                              },
                              "id": 3091,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "20850:9:23",
                              "memberName": "prevBlock",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2022,
                              "src": "20818:41:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3084,
                            "name": "_searchNextBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3097,
                            "src": "20792:16:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,uint256) view returns (uint256)"
                            }
                          },
                          "id": 3092,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "20792:68:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3093,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "20698:162:23",
                        "trueExpression": {
                          "expression": {
                            "baseExpression": {
                              "expression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 3078,
                                  "name": "__storage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3136,
                                  "src": "20735:9:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                    "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                                  }
                                },
                                "id": 3079,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "20735:11:23",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                                  "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                                }
                              },
                              "id": 3080,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "20747:10:23",
                              "memberName": "randomize_",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2032,
                              "src": "20735:22:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                                "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                              }
                            },
                            "id": 3082,
                            "indexExpression": {
                              "id": 3081,
                              "name": "_latest",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3069,
                              "src": "20758:7:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "20735:31:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                              "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                            }
                          },
                          "id": 3083,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "20767:9:23",
                          "memberName": "nextBlock",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2024,
                          "src": "20735:41:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 3094,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "20697:174:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 3073,
                  "id": 3095,
                  "nodeType": "Return",
                  "src": "20690:181:23"
                }
              ]
            },
            "documentation": {
              "id": 3065,
              "nodeType": "StructuredDocumentation",
              "src": "20409:172:23",
              "text": "@dev Recursively searches for the number of the first block after the given one in which a Witnet \n @dev randomness request was posted. Returns 0 if none found."
            },
            "id": 3097,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_searchNextBlock",
            "nameLocation": "20596:16:23",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3070,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3067,
                  "mutability": "mutable",
                  "name": "_target",
                  "nameLocation": "20621:7:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 3097,
                  "src": "20613:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3066,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20613:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3069,
                  "mutability": "mutable",
                  "name": "_latest",
                  "nameLocation": "20638:7:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 3097,
                  "src": "20630:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3068,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20630:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "20612:34:23"
            },
            "returnParameters": {
              "id": 3073,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3072,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3097,
                  "src": "20670:7:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3071,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20670:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "20669:9:23"
            },
            "scope": 3137,
            "src": "20587:292:23",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3124,
              "nodeType": "Block",
              "src": "21158:164:23",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "condition": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 3109,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 3107,
                                "name": "_target",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3100,
                                "src": "21178:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">",
                              "rightExpression": {
                                "id": 3108,
                                "name": "_latest",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3102,
                                "src": "21188:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "21178:17:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 3110,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "21177:19:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "arguments": [
                            {
                              "id": 3113,
                              "name": "_target",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3100,
                              "src": "21252:7:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "baseExpression": {
                                  "expression": {
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "id": 3114,
                                      "name": "__storage",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3136,
                                      "src": "21261:9:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$2033_storage_ptr_$",
                                        "typeString": "function () pure returns (struct WitnetRandomnessV2.Storage storage pointer)"
                                      }
                                    },
                                    "id": 3115,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "21261:11:23",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                                      "typeString": "struct WitnetRandomnessV2.Storage storage pointer"
                                    }
                                  },
                                  "id": 3116,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "21273:10:23",
                                  "memberName": "randomize_",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2032,
                                  "src": "21261:22:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$2025_storage_$",
                                    "typeString": "mapping(uint256 => struct WitnetRandomnessV2.Randomize storage ref)"
                                  }
                                },
                                "id": 3118,
                                "indexExpression": {
                                  "id": 3117,
                                  "name": "_latest",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3102,
                                  "src": "21284:7:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "21261:31:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Randomize_$2025_storage",
                                  "typeString": "struct WitnetRandomnessV2.Randomize storage ref"
                                }
                              },
                              "id": 3119,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "21293:9:23",
                              "memberName": "prevBlock",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2022,
                              "src": "21261:41:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3112,
                            "name": "_searchPrevBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3125,
                            "src": "21235:16:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,uint256) view returns (uint256)"
                            }
                          },
                          "id": 3120,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "21235:68:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3121,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "21177:126:23",
                        "trueExpression": {
                          "id": 3111,
                          "name": "_latest",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3102,
                          "src": "21212:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 3122,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "21176:138:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 3106,
                  "id": 3123,
                  "nodeType": "Return",
                  "src": "21169:145:23"
                }
              ]
            },
            "documentation": {
              "id": 3098,
              "nodeType": "StructuredDocumentation",
              "src": "20887:173:23",
              "text": "@dev Recursively searches for the number of the first block before the given one in which a Witnet \n @dev randomness request was posted. Returns 0 if none found."
            },
            "id": 3125,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_searchPrevBlock",
            "nameLocation": "21075:16:23",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3103,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3100,
                  "mutability": "mutable",
                  "name": "_target",
                  "nameLocation": "21100:7:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 3125,
                  "src": "21092:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3099,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21092:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3102,
                  "mutability": "mutable",
                  "name": "_latest",
                  "nameLocation": "21117:7:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 3125,
                  "src": "21109:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3101,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21109:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "21091:34:23"
            },
            "returnParameters": {
              "id": 3106,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3105,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3125,
                  "src": "21149:7:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3104,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21149:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "21148:9:23"
            },
            "scope": 3137,
            "src": "21066:256:23",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 3128,
            "mutability": "constant",
            "name": "_STORAGE_SLOT",
            "nameLocation": "21355:13:23",
            "nodeType": "VariableDeclaration",
            "scope": 3137,
            "src": "21330:172:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 3126,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "21330:7:23",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "hexValue": "307836343337373839333563353764663934376636393434663661353234326133653931343435663633333766346232656336373063383634323135336236313466",
              "id": 3127,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "21436:66:23",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_45329293629288104751206077111318907569952776749509868207876443788206898110799_by_1",
                "typeString": "int_const 4532...(69 digits omitted)...0799"
              },
              "value": "0x643778935c57df947f6944f6a5242a3e91445f6337f4b2ec670c8642153b614f"
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 3135,
              "nodeType": "Block",
              "src": "21577:79:23",
              "statements": [
                {
                  "AST": {
                    "nativeSrc": "21597:52:23",
                    "nodeType": "YulBlock",
                    "src": "21597:52:23",
                    "statements": [
                      {
                        "nativeSrc": "21612:26:23",
                        "nodeType": "YulAssignment",
                        "src": "21612:26:23",
                        "value": {
                          "name": "_STORAGE_SLOT",
                          "nativeSrc": "21625:13:23",
                          "nodeType": "YulIdentifier",
                          "src": "21625:13:23"
                        },
                        "variableNames": [
                          {
                            "name": "_ptr.slot",
                            "nativeSrc": "21612:9:23",
                            "nodeType": "YulIdentifier",
                            "src": "21612:9:23"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "paris",
                  "externalReferences": [
                    {
                      "declaration": 3128,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "21625:13:23",
                      "valueSize": 1
                    },
                    {
                      "declaration": 3132,
                      "isOffset": false,
                      "isSlot": true,
                      "src": "21612:9:23",
                      "suffix": "slot",
                      "valueSize": 1
                    }
                  ],
                  "id": 3134,
                  "nodeType": "InlineAssembly",
                  "src": "21588:61:23"
                }
              ]
            },
            "id": 3136,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__storage",
            "nameLocation": "21520:9:23",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3129,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21529:2:23"
            },
            "returnParameters": {
              "id": 3133,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3132,
                  "mutability": "mutable",
                  "name": "_ptr",
                  "nameLocation": "21571:4:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 3136,
                  "src": "21555:20:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                    "typeString": "struct WitnetRandomnessV2.Storage"
                  },
                  "typeName": {
                    "id": 3131,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3130,
                      "name": "Storage",
                      "nameLocations": [
                        "21555:7:23"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2033,
                      "src": "21555:7:23"
                    },
                    "referencedDeclaration": 2033,
                    "src": "21555:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Storage_$2033_storage_ptr",
                      "typeString": "struct WitnetRandomnessV2.Storage"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "21554:22:23"
            },
            "scope": 3137,
            "src": "21511:145:23",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 3138,
        "src": "387:21272:23",
        "usedErrors": [
          267,
          272,
          17562,
          17568,
          19262,
          19268,
          19276
        ],
        "usedEvents": [
          278,
          13278,
          13285,
          13294,
          13307,
          13314,
          13695,
          24023
        ]
      }
    ],
    "src": "35:21626:23"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.25+commit.b61c2a91.Emscripten.clang"
  },
  "networks": {
    "322": {
      "events": {},
      "links": {},
      "address": "0xC0FFEE98AD1434aCbDB894BbB752e138c1006fAB"
    },
    "11155111": {
      "events": {},
      "links": {},
      "address": "0xC0FFEE98AD1434aCbDB894BbB752e138c1006fAB"
    }
  },
  "schemaVersion": "3.4.16",
  "updatedAt": "2024-12-05T09:36:04.192Z",
  "devdoc": {
    "author": "The Witnet Foundation.",
    "errors": {
      "OwnableInvalidOwner(address)": [
        {
          "details": "The owner is not a valid owner account. (eg. `address(0)`)"
        }
      ],
      "OwnableUnauthorizedAccount(address)": [
        {
          "details": "The caller account is not authorized to perform an operation."
        }
      ]
    },
    "kind": "dev",
    "methods": {
      "fetchRandomnessAfter(uint256)": {
        "details": "Reverts if:i.   no `randomize()` was requested on neither the given block, nor afterwards.ii.  the first non-errored `randomize()` request found on or after the given block is not solved yet.iii. all `randomize()` requests that took place on or after the given block were solved with errors.",
        "params": {
          "_blockNumber": "Block number from which the search will start"
        }
      },
      "fetchRandomnessAfterProof(uint256)": {
        "details": "Reverts if:i.   no `randomize()` was requested on neither the given block, nor afterwards.ii.  the first non-errored `randomize()` request found on or after the given block is not solved yet.iii. all `randomize()` requests that took place on or after the given block were solved with errors.",
        "params": {
          "_blockNumber": "Block number from which the search will start."
        },
        "returns": {
          "_witnetResultFinalityBlock": "EVM block number from which the provided randomness can be considered to be final.",
          "_witnetResultRandomness": "Random value provided by the Witnet blockchain and used for solving randomness after given block.",
          "_witnetResultTallyHash": "Hash of the witnessing commit/reveal act that took place on the Witnet blockchain.",
          "_witnetResultTimestamp": "Timestamp at which the randomness value was generated by the Witnet blockchain."
        }
      },
      "getRandomizeData(uint256)": {
        "details": "Returns zero values if no randomize request was actually posted on the given block.",
        "returns": {
          "_nextRandomizeBlock": "Block number in which a randomize request got posted just after this one, 0 if none.",
          "_prevRandomizeBlock": "Block number in which a randomize request got posted just before this one. 0 if none.",
          "_witnetQueryId": "Identifier of the underlying Witnet query created on the given block number. "
        }
      },
      "getRandomizeNextBlock(uint256)": {
        "params": {
          "_blockNumber": "Block number from which the search will start."
        },
        "returns": {
          "_0": "Number of the first block found after the given one, or `0` otherwise."
        }
      },
      "getRandomizePrevBlock(uint256)": {
        "params": {
          "_blockNumber": "Block number from which the search will start. Cannot be zero."
        },
        "returns": {
          "_0": "First block found before the given one, or `0` otherwise."
        }
      },
      "getRandomizeStatus(uint256)": {
        "details": "Possible values:- 0 -> Void: no randomize request was actually posted on or after the given block number.- 1 -> Awaiting: a randomize request was found but it's not yet solved by the Witnet blockchain.- 2 -> Ready: a successfull randomize value was reported and ready to be read.- 3 -> Error: all randomize requests after the given block were solved with errors.- 4 -> Finalizing: a randomize resolution has been reported from the Witnet blockchain, but it's not yet final.  "
      },
      "random(uint32,uint256,uint256)": {
        "details": "Fails under same conditions as `getRandomnessAfter(uint256)` does.",
        "params": {
          "_blockNumber": "Block number from which the search for the first randomize request solved aftewards will start.",
          "_nonce": "Nonce value enabling multiple random numbers from the same randomness value.",
          "_range": "Range within which the uniformly-distributed random number will be generated."
        }
      },
      "randomize()": {
        "details": "Only one randomness request per block will be actually posted to the Witnet Oracle. ",
        "returns": {
          "_evmRandomizeFee": "Funds actually paid as randomize fee."
        }
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
      }
    },
    "stateVariables": {
      "witnetRadHash": {
        "details": "Can be used to track all randomness requests solved so far on the Witnet Oracle blockchain."
      }
    },
    "title": "WitnetRandomnessV2: Unmalleable and provably-fair randomness generation based on the Witnet Oracle v2.*.",
    "version": 1
  },
  "userdoc": {
    "events": {
      "WitnetQuery(uint256,uint256,(uint8,uint64))": {
        "notice": "Emitted every time a new query containing some verified data request is posted to the WRB."
      },
      "WitnetQueryResponse(uint256,uint256)": {
        "notice": "Emitted when a query with no callback gets reported into the WRB."
      },
      "WitnetQueryResponseDelivered(uint256,uint256,uint256)": {
        "notice": "Emitted when a query with a callback gets successfully reported into the WRB."
      },
      "WitnetQueryResponseDeliveryFailed(uint256,bytes,uint256,uint256,string)": {
        "notice": "Emitted when a query with a callback cannot get reported into the WRB."
      },
      "WitnetQueryRewardUpgraded(uint256,uint256)": {
        "notice": "Emitted when the reward of some not-yet reported query is upgraded."
      }
    },
    "kind": "user",
    "methods": {
      "acceptOwnership()": {
        "notice": "=============================================================================================================== --- 'IWitnetRandomnessAdmin' implementation -------------------------------------------------------------------"
      },
      "estimateRandomizeFee(uint256)": {
        "notice": "Returns amount of wei required to be paid as a fee when requesting randomization with a  transaction gas price as the one given."
      },
      "fetchRandomnessAfter(uint256)": {
        "notice": "Retrieves the result of keccak256-hashing the given block number with the randomness value generated by the Witnet Oracle blockchain in response to the first non-errored randomize request solved after such block number."
      },
      "fetchRandomnessAfterProof(uint256)": {
        "notice": "Retrieves the actual random value, unique hash and timestamp of the witnessing commit/reveal act that tookplace in the Witnet Oracle blockchain in response to the first non-errored randomize requestsolved after the given block number."
      },
      "getLastRandomizeBlock()": {
        "notice": "Returns last block number on which a randomize was requested."
      },
      "getRandomizeData(uint256)": {
        "notice": "Retrieves metadata related to the randomize request that got posted to the Witnet Oracle contract on the given block number."
      },
      "getRandomizeNextBlock(uint256)": {
        "notice": "Returns the number of the next block in which a randomize request was posted after the given one. "
      },
      "getRandomizePrevBlock(uint256)": {
        "notice": "Returns the number of the previous block in which a randomize request was posted before the given one."
      },
      "getRandomizeStatus(uint256)": {
        "notice": "Returns status of the first non-errored randomize request posted on or after the given block number."
      },
      "isRandomized(uint256)": {
        "notice": "Returns `true` only if a successfull resolution from the Witnet blockchain is found for the first non-errored randomize request posted on or after the given block number."
      },
      "random(uint32,uint256,uint256)": {
        "notice": "Generates a pseudo-random number uniformly distributed within the range [0 .. _range), by using the given `nonce` and the randomness returned by `getRandomnessAfter(blockNumber)`. "
      },
      "randomize()": {
        "notice": "Requests the Witnet oracle to generate an EVM-agnostic and trustless source of randomness. "
      },
      "witnetQuerySLA()": {
        "notice": "Returns the SLA parameters required for the Witnet Oracle blockchain to fulfill when solving randomness requests:- number of witnessing nodes contributing to randomness generation- reward in $nanoWIT received by every contributing node in the Witnet blockchain"
      },
      "witnetRadHash()": {
        "notice": "Unique identifier of the RNG data request used on the Witnet Oracle blockchain for solving randomness."
      }
    },
    "version": 1
  }
}