{
  "contractName": "WitPythChainlinkAggregator",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_witOracle",
          "type": "address"
        },
        {
          "internalType": "bytes4",
          "name": "_id4",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "id4",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "priceId",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pyth",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "witOracle",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "getAnswer",
      "outputs": [
        {
          "internalType": "int256",
          "name": "",
          "type": "int256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "latestAnswer",
      "outputs": [
        {
          "internalType": "int256",
          "name": "",
          "type": "int256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "latestRound",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "latestTimestamp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "description",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint80",
          "name": "_roundId",
          "type": "uint80"
        }
      ],
      "name": "getRoundData",
      "outputs": [
        {
          "internalType": "uint80",
          "name": "",
          "type": "uint80"
        },
        {
          "internalType": "int256",
          "name": "",
          "type": "int256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint80",
          "name": "",
          "type": "uint80"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "latestRoundData",
      "outputs": [
        {
          "internalType": "uint80",
          "name": "",
          "type": "uint80"
        },
        {
          "internalType": "int256",
          "name": "",
          "type": "int256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint80",
          "name": "",
          "type": "uint80"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_witOracle\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"_id4\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getAnswer\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint80\",\"name\":\"_roundId\",\"type\":\"uint80\"}],\"name\":\"getRoundData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"id4\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestAnswer\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRound\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoundData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pyth\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"witOracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"decimals()\":{\"notice\":\"=============================================================================================================== --- IWitPythChainlinkAggregator -------------------------------------------------------------------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/mockups/WitPythChainlinkAggregator.sol\":\"WitPythChainlinkAggregator\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/IWitPriceFeeds.sol\":{\"keccak256\":\"0xb29abe8819699e37e91b41c4cb63273fbb0ab8c482a09c31da6c91d7338cc405\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9325f3cbd3b396216268ec83d583abd86f44a5d656c375485296e256b3c2f2a\",\"dweb:/ipfs/Qme8pjdacDLa8HLKF7Sm3XZa9uUQn1EL7gANLnAbak8y4f\"]},\"project:/contracts/interfaces/IWitPriceFeedsAdmin.sol\":{\"keccak256\":\"0xd05b103840eeb8a4770e140dbe91bd40dd33d92959d226c57a2ae45a5e615355\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29e6104b0b62c676bb797ce8d01512550058f5b6de210b2467ba9bb0dfe8c00f\",\"dweb:/ipfs/QmUAgsVJYHqiRFrrnWCYo5vGJRaN4VsZvcBXJWYJUF5QyV\"]},\"project:/contracts/interfaces/IWitPriceFeedsConsumer.sol\":{\"keccak256\":\"0x2c12c7f4502a2953f352b67688cd8841a1198c9b8e8f9f87ab3fc0163b7533e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d82ec627ac4c38a7336b03541c118d606e107128ba109097857a26d376e92f33\",\"dweb:/ipfs/QmQBmvL5ziD7fY2vDBNpbDbbhnwi8Cwh4XVthUjTd9ZyCF\"]},\"project:/contracts/interfaces/IWitPriceFeedsEvents.sol\":{\"keccak256\":\"0xf8b1a2ca8dd8dc8a5b8debf18f4c32df404709a4b03353c939e57a92a4e41b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f755b639781013ae0bae92f063b1f5b440c187bbc9a7f938b6982e579114acfe\",\"dweb:/ipfs/QmZafsjeELGnVdbXvsiXeQ82vR7DBFCrwDLGqeopgxBgyC\"]},\"project:/contracts/interfaces/IWitPriceFeedsTypes.sol\":{\"keccak256\":\"0x68e2189e863f50e8d0aad8394a526df00c1e626886c23aa24c915427e5285e46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5ff40355d4144e7c08f033b55e9ef1b5994bbd83bbfbd7a41129b141f164194\",\"dweb:/ipfs/QmXMhM7GXaVXnCQ1VFB4kPhbhbfktuNFKqMGXMtWLgUk3d\"]},\"project:/contracts/interfaces/legacy/IChainlinkAggregatorV3.sol\":{\"keccak256\":\"0x09750da5b74e684e13093320b00c8e95d648ddf58bfdb29b8bc3b90e6853c263\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b08da33fc3e7cbf1f60965f82efdea926f2f62312298be29188eca9d109189ac\",\"dweb:/ipfs/QmR2sJ4dddcDW5q14usqiEeB7pamqHDfqkMDd9hghVMhiJ\"]},\"project:/contracts/interfaces/legacy/IPythChainlinkAggregatorV3.sol\":{\"keccak256\":\"0x768f729a0575850eab9bde8f57bea1f5761e6749b7c2de9a6c580594fad4a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3f6ca5693bec81a880f4d34e78f8de30bd783e25ae7b628a1a4ced4c73b8894\",\"dweb:/ipfs/QmXjajPrDiW9y1uwEaJhcsonJPWPYCdDegMoCQ6CkGPCL2\"]},\"project:/contracts/interfaces/legacy/IWitPyth.sol\":{\"keccak256\":\"0xa06a34a5e553beae7dbe09a5d1049557190511e696a1b855ab5e1196a06048a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d2c814b7be5539147c0ba1b55f6cddcad382d5e5e9f9de545d2d428c1989c7de\",\"dweb:/ipfs/QmY8KSV3PW2FBQVzXidLQ21KvDJ1v6y8WHaV8uxsqThJCC\"]},\"project:/contracts/interfaces/legacy/IWitPythChainlinkAggregator.sol\":{\"keccak256\":\"0xd34682fccc3ac1af39ef5f3bea61cd4ae8ee80862649678de5714a51177f4384\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://017eddcbf631cdc3e1a7f2c34478fe98697371b83d1985fa742e46a99c7b7a63\",\"dweb:/ipfs/QmbJ4XH8e2J79kuAtP1CcYftDfDUYf9NqxFDaKvSpzTGV2\"]},\"project:/contracts/interfaces/legacy/IWitPythErrors.sol\":{\"keccak256\":\"0x7d10dfd625a4914e4017cde140397f9f236f726ea82b4feed1d889f852866c1d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bbf8dc2bbac36cf0a141f7062b6ed8143cffaee7969a1afc3cf0d1971e8cf18\",\"dweb:/ipfs/QmbLiZwggZwhiTLJurBkAu492xAZZ9MXWiknsuGnLYNXhP\"]},\"project:/contracts/interfaces/legacy/IWitPythEvents.sol\":{\"keccak256\":\"0xacca21f4bb4d740de63f4f2e469e8313b1d8f9a7d2340efcc17981c3510c2800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da8b0493082593838fbc4df2431c1983a82165ae1f17215e988951c0c1ef3882\",\"dweb:/ipfs/QmNUX9K3UqxiR9igT87iLja8h3u7htp83ZhAGZ6UgD3BZP\"]},\"project:/contracts/libs/Bech32.sol\":{\"keccak256\":\"0x14618323a0efe7586c20906a2e9cee7ad63baa976ff231c57f7f2d7d3707fb8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19f05fe84047a7a6d3d6fc39972b432e6e536aa70472386a9d7a6d9aab64a64\",\"dweb:/ipfs/QmcHwUY66yjiotRH4Q3kbRvSzcHyLQ1yHL3KbtQKiMhtZE\"]},\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x1d446c3e534e40e676d1763bfb2897fadfac8afed904ab757843d7d6770b0a6c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://338fb1073f17d64e8d31bfe492d9475ce906788ee08e6489ce30413f91dc1328\",\"dweb:/ipfs/QmPe5QX2AGTnQFjse1Xttq4ZYWwYAiXoySb5VUui3PqPhk\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0x8e07aebe2954ab3e6f2d8eceedb12db7cf915c1f3e8630f4fa9999cecb1c78ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6c54cc901183d61546e8fd15bd5ea8ef238ebc915642946071d435dd7481ea\",\"dweb:/ipfs/Qmcaqta7YjUSBbBUGqoh44bsCS6UqqoyHjBuz4qnKBShXM\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xd99308373575cc10fb7f2ceb0f6a8625f3911275c1fa27811fae498d98d03d97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4909a999d7b660a2dc54ca957b6eccfa523e2765fc4d6a2574dee7d5cd67b43\",\"dweb:/ipfs/QmWGQT4KDcfSFe1hcHVoWx6E4PhYMaod5iLpJCWBEeShzh\"]},\"project:/contracts/mockups/WitPythChainlinkAggregator.sol\":{\"keccak256\":\"0xac58a4bb3652a2af7cae48d7463e265945a3b73976fd23b4041638f57ca946e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa9fb289349935abaa405efbc17d454f926803741fead72f7e2fbdc697ba86d\",\"dweb:/ipfs/QmTUJq2EGBXbovnKNTWE3bGoU1jzAQc7aVdFAu1esANrBJ\"]}},\"version\":1}",
  "bytecode": "0x610100604052348015610010575f5ffd5b50604051610b77380380610b7783398101604081905261002f916100c1565b6001600160e01b0319811660808190526040516371b50ecf60e11b815260048101919091526001600160a01b0383169063e36a1d9e90602401602060405180830381865afa158015610083573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a79190610110565b60a052506001600160a01b031660c081905260e052610127565b5f5f604083850312156100d2575f5ffd5b82516001600160a01b03811681146100e8575f5ffd5b60208401519092506001600160e01b031981168114610105575f5ffd5b809150509250929050565b5f60208284031215610120575f5ffd5b5051919050565b60805160a05160c05160e0516109d16101a65f395f818160ee01528181610322015281816103f4015281816104cb01528181610569015261065701525f61024e01525f61013201525f818161021a015281816102970152818161035101528181610423015281816104f801528181610598015261068601526109d15ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638205bf6a11610088578063b5ab58dc11610063578063b5ab58dc14610202578063e9159d6414610215578063f98d06f014610249578063feaf968c14610270575f5ffd5b80638205bf6a146101a857806395d89b41146101b05780639a6fc8f5146101b8575f5ffd5b806350d25bcd116100c357806350d25bcd1461017c57806354fd4d5014610184578063668a0f021461018b5780637284e41614610193575f5ffd5b80631014d375146100e9578063311893341461012d578063313ce56714610162575b5f5ffd5b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101547f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610124565b61016a610278565b60405160ff9091168152602001610124565b61015461031e565b6003610154565b6101546103d8565b61019b6103e6565b604051610124919061072e565b6101546103f0565b61019b6104b1565b6101cb6101c6366004610763565b610561565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a001610124565b610154610210366004610793565b610640565b61023c7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012491906107aa565b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61064f565b60405163274d45db60e01b81525f908190339063274d45db906102bf907f0000000000000000000000000000000000000000000000000000000000000000906004016107aa565b602060405180830381865afa1580156102da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102fe91906107d4565b90505f815f0b1261030f5780610318565b610318816107ed565b91505090565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161038c91906107aa565b60a060405180830381865afa1580156103a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103cb9190610872565b6020015160070b92915050565b5f6103e16103f0565b905090565b60606103e16104b1565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161045e91906107aa565b60a060405180830381865afa158015610479573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049d9190610872565b6060015167ffffffffffffffff1692915050565b604051631c4f621160e31b81526060906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e27b108890610520907f0000000000000000000000000000000000000000000000000000000000000000906004016107aa565b5f60405180830381865afa15801561053a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103e19190810190610907565b5f5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016105d391906107aa565b60a060405180830381865afa1580156105ee573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106129190610872565b6060810151602090910151979860079890980b9767ffffffffffffffff909116965086955088945092505050565b5f61064961031e565b92915050565b5f5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106c191906107aa565b60a060405180830381865afa1580156106dc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107009190610872565b606081015160209091015167ffffffffffffffff9091169760079190910b9650879550859450849350915050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610773575f5ffd5b813569ffffffffffffffffffff8116811461078c575f5ffd5b9392505050565b5f602082840312156107a3575f5ffd5b5035919050565b6001600160e01b031991909116815260200190565b80515f81900b81146107cf575f5ffd5b919050565b5f602082840312156107e4575f5ffd5b61078c826107bf565b5f81810b6080810161080d57634e487b7160e01b5f52601160045260245ffd5b5f0392915050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561085257610852610815565b604052919050565b67ffffffffffffffff8116811461086f575f5ffd5b50565b5f60a0828403128015610883575f5ffd5b5060405160a0810167ffffffffffffffff811182821017156108a7576108a7610815565b6040526108b3836107bf565b815260208301516108c38161085a565b60208201526040830151600681900b81146108dc575f5ffd5b604082015260608301516108ef8161085a565b60608201526080928301519281019290925250919050565b5f60208284031215610917575f5ffd5b815167ffffffffffffffff81111561092d575f5ffd5b8201601f8101841361093d575f5ffd5b805167ffffffffffffffff81111561095757610957610815565b61096a601f8201601f1916602001610829565b81815285602083850101111561097e575f5ffd5b8160208401602083015e5f9181016020019190915294935050505056fea2646970667358221220ed110a5686ebb699e7a8419c7abfa8c2ab9b37934765c17bd5997c5da024fdf864736f6c634300081e0033",
  "deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638205bf6a11610088578063b5ab58dc11610063578063b5ab58dc14610202578063e9159d6414610215578063f98d06f014610249578063feaf968c14610270575f5ffd5b80638205bf6a146101a857806395d89b41146101b05780639a6fc8f5146101b8575f5ffd5b806350d25bcd116100c357806350d25bcd1461017c57806354fd4d5014610184578063668a0f021461018b5780637284e41614610193575f5ffd5b80631014d375146100e9578063311893341461012d578063313ce56714610162575b5f5ffd5b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101547f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610124565b61016a610278565b60405160ff9091168152602001610124565b61015461031e565b6003610154565b6101546103d8565b61019b6103e6565b604051610124919061072e565b6101546103f0565b61019b6104b1565b6101cb6101c6366004610763565b610561565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a001610124565b610154610210366004610793565b610640565b61023c7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012491906107aa565b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61064f565b60405163274d45db60e01b81525f908190339063274d45db906102bf907f0000000000000000000000000000000000000000000000000000000000000000906004016107aa565b602060405180830381865afa1580156102da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102fe91906107d4565b90505f815f0b1261030f5780610318565b610318816107ed565b91505090565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161038c91906107aa565b60a060405180830381865afa1580156103a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103cb9190610872565b6020015160070b92915050565b5f6103e16103f0565b905090565b60606103e16104b1565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161045e91906107aa565b60a060405180830381865afa158015610479573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049d9190610872565b6060015167ffffffffffffffff1692915050565b604051631c4f621160e31b81526060906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e27b108890610520907f0000000000000000000000000000000000000000000000000000000000000000906004016107aa565b5f60405180830381865afa15801561053a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103e19190810190610907565b5f5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016105d391906107aa565b60a060405180830381865afa1580156105ee573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106129190610872565b6060810151602090910151979860079890980b9767ffffffffffffffff909116965086955088945092505050565b5f61064961031e565b92915050565b5f5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106c191906107aa565b60a060405180830381865afa1580156106dc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107009190610872565b606081015160209091015167ffffffffffffffff9091169760079190910b9650879550859450849350915050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610773575f5ffd5b813569ffffffffffffffffffff8116811461078c575f5ffd5b9392505050565b5f602082840312156107a3575f5ffd5b5035919050565b6001600160e01b031991909116815260200190565b80515f81900b81146107cf575f5ffd5b919050565b5f602082840312156107e4575f5ffd5b61078c826107bf565b5f81810b6080810161080d57634e487b7160e01b5f52601160045260245ffd5b5f0392915050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561085257610852610815565b604052919050565b67ffffffffffffffff8116811461086f575f5ffd5b50565b5f60a0828403128015610883575f5ffd5b5060405160a0810167ffffffffffffffff811182821017156108a7576108a7610815565b6040526108b3836107bf565b815260208301516108c38161085a565b60208201526040830151600681900b81146108dc575f5ffd5b604082015260608301516108ef8161085a565b60608201526080928301519281019290925250919050565b5f60208284031215610917575f5ffd5b815167ffffffffffffffff81111561092d575f5ffd5b8201601f8101841361093d575f5ffd5b805167ffffffffffffffff81111561095757610957610815565b61096a601f8201601f1916602001610829565b81815285602083850101111561097e575f5ffd5b8160208401602083015e5f9181016020019190915294935050505056fea2646970667358221220ed110a5686ebb699e7a8419c7abfa8c2ab9b37934765c17bd5997c5da024fdf864736f6c634300081e0033",
  "immutableReferences": {
    "44478": [
      {
        "length": 32,
        "start": 538
      },
      {
        "length": 32,
        "start": 663
      },
      {
        "length": 32,
        "start": 849
      },
      {
        "length": 32,
        "start": 1059
      },
      {
        "length": 32,
        "start": 1272
      },
      {
        "length": 32,
        "start": 1432
      },
      {
        "length": 32,
        "start": 1670
      }
    ],
    "44481": [
      {
        "length": 32,
        "start": 306
      }
    ],
    "44484": [
      {
        "length": 32,
        "start": 590
      }
    ],
    "44487": [
      {
        "length": 32,
        "start": 238
      },
      {
        "length": 32,
        "start": 802
      },
      {
        "length": 32,
        "start": 1012
      },
      {
        "length": 32,
        "start": 1227
      },
      {
        "length": 32,
        "start": 1385
      },
      {
        "length": 32,
        "start": 1623
      }
    ]
  },
  "generatedSources": [
    {
      "ast": {
        "nativeSrc": "0:903:136",
        "nodeType": "YulBlock",
        "src": "0:903:136",
        "statements": [
          {
            "nativeSrc": "6:3:136",
            "nodeType": "YulBlock",
            "src": "6:3:136",
            "statements": []
          },
          {
            "body": {
              "nativeSrc": "111:368:136",
              "nodeType": "YulBlock",
              "src": "111:368:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "157:16:136",
                    "nodeType": "YulBlock",
                    "src": "157:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "166:1:136",
                              "nodeType": "YulLiteral",
                              "src": "166:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "169:1:136",
                              "nodeType": "YulLiteral",
                              "src": "169:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "159:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "159:6:136"
                          },
                          "nativeSrc": "159:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "159:12:136"
                        },
                        "nativeSrc": "159:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "159:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "132:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "132:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "141:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "141:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "128:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "128:3:136"
                        },
                        "nativeSrc": "128:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "128:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "153:2:136",
                        "nodeType": "YulLiteral",
                        "src": "153:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "124:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "124:3:136"
                    },
                    "nativeSrc": "124:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "124:32:136"
                  },
                  "nativeSrc": "121:52:136",
                  "nodeType": "YulIf",
                  "src": "121:52:136"
                },
                {
                  "nativeSrc": "182:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "182:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "201:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "201:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "195:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "195:5:136"
                    },
                    "nativeSrc": "195:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "195:16:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "186:5:136",
                      "nodeType": "YulTypedName",
                      "src": "186:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "274:16:136",
                    "nodeType": "YulBlock",
                    "src": "274:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "283:1:136",
                              "nodeType": "YulLiteral",
                              "src": "283:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "286:1:136",
                              "nodeType": "YulLiteral",
                              "src": "286:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "276:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "276:6:136"
                          },
                          "nativeSrc": "276:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "276:12:136"
                        },
                        "nativeSrc": "276:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "276:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "233:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "233:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "244:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "244:5:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nativeSrc": "259:3:136",
                                        "nodeType": "YulLiteral",
                                        "src": "259:3:136",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "264:1:136",
                                        "nodeType": "YulLiteral",
                                        "src": "264:1:136",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nativeSrc": "255:3:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "255:3:136"
                                    },
                                    "nativeSrc": "255:11:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "255:11:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "268:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "268:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nativeSrc": "251:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "251:3:136"
                                },
                                "nativeSrc": "251:19:136",
                                "nodeType": "YulFunctionCall",
                                "src": "251:19:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "240:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "240:3:136"
                            },
                            "nativeSrc": "240:31:136",
                            "nodeType": "YulFunctionCall",
                            "src": "240:31:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "230:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "230:2:136"
                        },
                        "nativeSrc": "230:42:136",
                        "nodeType": "YulFunctionCall",
                        "src": "230:42:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "223:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "223:6:136"
                    },
                    "nativeSrc": "223:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "223:50:136"
                  },
                  "nativeSrc": "220:70:136",
                  "nodeType": "YulIf",
                  "src": "220:70:136"
                },
                {
                  "nativeSrc": "299:15:136",
                  "nodeType": "YulAssignment",
                  "src": "299:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "309:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "309:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "299:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "299:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "323:40:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "323:40:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "348:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "348:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "359:2:136",
                            "nodeType": "YulLiteral",
                            "src": "359:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "344:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "344:3:136"
                        },
                        "nativeSrc": "344:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "344:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "338:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "338:5:136"
                    },
                    "nativeSrc": "338:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "338:25:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "327:7:136",
                      "nodeType": "YulTypedName",
                      "src": "327:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "431:16:136",
                    "nodeType": "YulBlock",
                    "src": "431:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "440:1:136",
                              "nodeType": "YulLiteral",
                              "src": "440:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "443:1:136",
                              "nodeType": "YulLiteral",
                              "src": "443:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "433:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "433:6:136"
                          },
                          "nativeSrc": "433:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "433:12:136"
                        },
                        "nativeSrc": "433:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "433:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value_1",
                            "nativeSrc": "385:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "385:7:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value_1",
                                "nativeSrc": "398:7:136",
                                "nodeType": "YulIdentifier",
                                "src": "398:7:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "411:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "411:3:136",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "416:10:136",
                                    "nodeType": "YulLiteral",
                                    "src": "416:10:136",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "407:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "407:3:136"
                                },
                                "nativeSrc": "407:20:136",
                                "nodeType": "YulFunctionCall",
                                "src": "407:20:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "394:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "394:3:136"
                            },
                            "nativeSrc": "394:34:136",
                            "nodeType": "YulFunctionCall",
                            "src": "394:34:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "382:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "382:2:136"
                        },
                        "nativeSrc": "382:47:136",
                        "nodeType": "YulFunctionCall",
                        "src": "382:47:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "375:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "375:6:136"
                    },
                    "nativeSrc": "375:55:136",
                    "nodeType": "YulFunctionCall",
                    "src": "375:55:136"
                  },
                  "nativeSrc": "372:75:136",
                  "nodeType": "YulIf",
                  "src": "372:75:136"
                },
                {
                  "nativeSrc": "456:17:136",
                  "nodeType": "YulAssignment",
                  "src": "456:17:136",
                  "value": {
                    "name": "value_1",
                    "nativeSrc": "466:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "466:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "456:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "456:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_bytes4_fromMemory",
            "nativeSrc": "14:465:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "69:9:136",
                "nodeType": "YulTypedName",
                "src": "69:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "80:7:136",
                "nodeType": "YulTypedName",
                "src": "80:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "92:6:136",
                "nodeType": "YulTypedName",
                "src": "92:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "100:6:136",
                "nodeType": "YulTypedName",
                "src": "100:6:136",
                "type": ""
              }
            ],
            "src": "14:465:136"
          },
          {
            "body": {
              "nativeSrc": "609:103:136",
              "nodeType": "YulBlock",
              "src": "609:103:136",
              "statements": [
                {
                  "nativeSrc": "619:26:136",
                  "nodeType": "YulAssignment",
                  "src": "619:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "631:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "631:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "642:2:136",
                        "nodeType": "YulLiteral",
                        "src": "642:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "627:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "627:3:136"
                    },
                    "nativeSrc": "627:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "627:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "619:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "619:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "661:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "661:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "676:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "676:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "688:3:136",
                                "nodeType": "YulLiteral",
                                "src": "688:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "693:10:136",
                                "nodeType": "YulLiteral",
                                "src": "693:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "684:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "684:3:136"
                            },
                            "nativeSrc": "684:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "684:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "672:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "672:3:136"
                        },
                        "nativeSrc": "672:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "672:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "654:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "654:6:136"
                    },
                    "nativeSrc": "654:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "654:52:136"
                  },
                  "nativeSrc": "654:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "654:52:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_ID4_$28155__to_t_bytes4__fromStack_reversed",
            "nativeSrc": "484:228:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "578:9:136",
                "nodeType": "YulTypedName",
                "src": "578:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "589:6:136",
                "nodeType": "YulTypedName",
                "src": "589:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "600:4:136",
                "nodeType": "YulTypedName",
                "src": "600:4:136",
                "type": ""
              }
            ],
            "src": "484:228:136"
          },
          {
            "body": {
              "nativeSrc": "798:103:136",
              "nodeType": "YulBlock",
              "src": "798:103:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "844:16:136",
                    "nodeType": "YulBlock",
                    "src": "844:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "853:1:136",
                              "nodeType": "YulLiteral",
                              "src": "853:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "856:1:136",
                              "nodeType": "YulLiteral",
                              "src": "856:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "846:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "846:6:136"
                          },
                          "nativeSrc": "846:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "846:12:136"
                        },
                        "nativeSrc": "846:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "846:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "819:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "819:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "828:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "828:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "815:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "815:3:136"
                        },
                        "nativeSrc": "815:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "815:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "840:2:136",
                        "nodeType": "YulLiteral",
                        "src": "840:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "811:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "811:3:136"
                    },
                    "nativeSrc": "811:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "811:32:136"
                  },
                  "nativeSrc": "808:52:136",
                  "nodeType": "YulIf",
                  "src": "808:52:136"
                },
                {
                  "nativeSrc": "869:26:136",
                  "nodeType": "YulAssignment",
                  "src": "869:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "885:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "885:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "879:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "879:5:136"
                    },
                    "nativeSrc": "879:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "879:16:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "869:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "869:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes32_fromMemory",
            "nativeSrc": "717:184:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "764:9:136",
                "nodeType": "YulTypedName",
                "src": "764:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "775:7:136",
                "nodeType": "YulTypedName",
                "src": "775:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "787:6:136",
                "nodeType": "YulTypedName",
                "src": "787:6:136",
                "type": ""
              }
            ],
            "src": "717:184:136"
          }
        ]
      },
      "contents": "{\n    { }\n    function abi_decode_tuple_t_addresst_bytes4_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        if iszero(eq(value_1, and(value_1, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_ID4_$28155__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_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n}",
      "id": 136,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nativeSrc": "0:5781:136",
        "nodeType": "YulBlock",
        "src": "0:5781:136",
        "statements": [
          {
            "nativeSrc": "6:3:136",
            "nodeType": "YulBlock",
            "src": "6:3:136",
            "statements": []
          },
          {
            "body": {
              "nativeSrc": "115:102:136",
              "nodeType": "YulBlock",
              "src": "115:102:136",
              "statements": [
                {
                  "nativeSrc": "125:26:136",
                  "nodeType": "YulAssignment",
                  "src": "125:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "137:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "137:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "148:2:136",
                        "nodeType": "YulLiteral",
                        "src": "148:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "133:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "133:3:136"
                    },
                    "nativeSrc": "133:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "133:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "125:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "125:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "167:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "167:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "182:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "182:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "198:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "198:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "203:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "203:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "194:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "194:3:136"
                                },
                                "nativeSrc": "194:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "194:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "207:1:136",
                                "nodeType": "YulLiteral",
                                "src": "207:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "190:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "190:3:136"
                            },
                            "nativeSrc": "190:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "190:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "178:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "178:3:136"
                        },
                        "nativeSrc": "178:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "178:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "160:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "160:6:136"
                    },
                    "nativeSrc": "160:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "160:51:136"
                  },
                  "nativeSrc": "160:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "160:51:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nativeSrc": "14:203:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "84:9:136",
                "nodeType": "YulTypedName",
                "src": "84:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "95:6:136",
                "nodeType": "YulTypedName",
                "src": "95:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "106:4:136",
                "nodeType": "YulTypedName",
                "src": "106:4:136",
                "type": ""
              }
            ],
            "src": "14:203:136"
          },
          {
            "body": {
              "nativeSrc": "323:76:136",
              "nodeType": "YulBlock",
              "src": "323:76:136",
              "statements": [
                {
                  "nativeSrc": "333:26:136",
                  "nodeType": "YulAssignment",
                  "src": "333:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "345:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "345:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "356:2:136",
                        "nodeType": "YulLiteral",
                        "src": "356:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "341:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "341:3:136"
                    },
                    "nativeSrc": "341:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "341:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "333:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "333:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "375:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "375:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "386:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "386:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "368:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "368:6:136"
                    },
                    "nativeSrc": "368:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "368:25:136"
                  },
                  "nativeSrc": "368:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "368:25:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
            "nativeSrc": "222:177:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "292:9:136",
                "nodeType": "YulTypedName",
                "src": "292:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "303:6:136",
                "nodeType": "YulTypedName",
                "src": "303:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "314:4:136",
                "nodeType": "YulTypedName",
                "src": "314:4:136",
                "type": ""
              }
            ],
            "src": "222:177:136"
          },
          {
            "body": {
              "nativeSrc": "501:87:136",
              "nodeType": "YulBlock",
              "src": "501:87:136",
              "statements": [
                {
                  "nativeSrc": "511:26:136",
                  "nodeType": "YulAssignment",
                  "src": "511:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "523:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "523:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "534:2:136",
                        "nodeType": "YulLiteral",
                        "src": "534:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "519:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "519:3:136"
                    },
                    "nativeSrc": "519:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "519:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "511:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "511:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "553:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "553:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "568:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "568:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "576:4:136",
                            "nodeType": "YulLiteral",
                            "src": "576:4:136",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "564:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "564:3:136"
                        },
                        "nativeSrc": "564:17:136",
                        "nodeType": "YulFunctionCall",
                        "src": "564:17:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "546:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "546:6:136"
                    },
                    "nativeSrc": "546:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "546:36:136"
                  },
                  "nativeSrc": "546:36:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "546:36:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
            "nativeSrc": "404:184:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "470:9:136",
                "nodeType": "YulTypedName",
                "src": "470:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "481:6:136",
                "nodeType": "YulTypedName",
                "src": "481:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "492:4:136",
                "nodeType": "YulTypedName",
                "src": "492:4:136",
                "type": ""
              }
            ],
            "src": "404:184:136"
          },
          {
            "body": {
              "nativeSrc": "692:76:136",
              "nodeType": "YulBlock",
              "src": "692:76:136",
              "statements": [
                {
                  "nativeSrc": "702:26:136",
                  "nodeType": "YulAssignment",
                  "src": "702:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "714:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "714:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "725:2:136",
                        "nodeType": "YulLiteral",
                        "src": "725:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "710:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "710:3:136"
                    },
                    "nativeSrc": "710:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "710:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "702:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "702:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "744:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "744:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "755:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "755:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "737:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "737:6:136"
                    },
                    "nativeSrc": "737:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "737:25:136"
                  },
                  "nativeSrc": "737:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "737:25:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed",
            "nativeSrc": "593:175:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "661:9:136",
                "nodeType": "YulTypedName",
                "src": "661:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "672:6:136",
                "nodeType": "YulTypedName",
                "src": "672:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "683:4:136",
                "nodeType": "YulTypedName",
                "src": "683:4:136",
                "type": ""
              }
            ],
            "src": "593:175:136"
          },
          {
            "body": {
              "nativeSrc": "874:76:136",
              "nodeType": "YulBlock",
              "src": "874:76:136",
              "statements": [
                {
                  "nativeSrc": "884:26:136",
                  "nodeType": "YulAssignment",
                  "src": "884:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "896:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "896:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "907:2:136",
                        "nodeType": "YulLiteral",
                        "src": "907:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "892:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "892:3:136"
                    },
                    "nativeSrc": "892:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "892:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "884:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "884:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "926:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "926:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "937:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "937:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "919:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "919:6:136"
                    },
                    "nativeSrc": "919:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "919:25:136"
                  },
                  "nativeSrc": "919:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "919:25:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
            "nativeSrc": "773:177:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "843:9:136",
                "nodeType": "YulTypedName",
                "src": "843:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "854:6:136",
                "nodeType": "YulTypedName",
                "src": "854:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "865:4:136",
                "nodeType": "YulTypedName",
                "src": "865:4:136",
                "type": ""
              }
            ],
            "src": "773:177:136"
          },
          {
            "body": {
              "nativeSrc": "1076:297:136",
              "nodeType": "YulBlock",
              "src": "1076:297:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1093:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1093:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1104:2:136",
                        "nodeType": "YulLiteral",
                        "src": "1104:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1086:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1086:6:136"
                    },
                    "nativeSrc": "1086:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1086:21:136"
                  },
                  "nativeSrc": "1086:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1086:21:136"
                },
                {
                  "nativeSrc": "1116:27:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "1116:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "1136:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "1136:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "1130:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "1130:5:136"
                    },
                    "nativeSrc": "1130:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1130:13:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "1120:6:136",
                      "nodeType": "YulTypedName",
                      "src": "1120:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "1163:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "1163:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1174:2:136",
                            "nodeType": "YulLiteral",
                            "src": "1174:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1159:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1159:3:136"
                        },
                        "nativeSrc": "1159:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1159:18:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "1179:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "1179:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1152:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1152:6:136"
                    },
                    "nativeSrc": "1152:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1152:34:136"
                  },
                  "nativeSrc": "1152:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1152:34:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "1205:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "1205:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1216:2:136",
                            "nodeType": "YulLiteral",
                            "src": "1216:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1201:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1201:3:136"
                        },
                        "nativeSrc": "1201:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1201:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "1225:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "1225:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1233:2:136",
                            "nodeType": "YulLiteral",
                            "src": "1233:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1221:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1221:3:136"
                        },
                        "nativeSrc": "1221:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1221:15:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "1238:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "1238:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mcopy",
                      "nativeSrc": "1195:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "1195:5:136"
                    },
                    "nativeSrc": "1195:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1195:50:136"
                  },
                  "nativeSrc": "1195:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1195:50:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "1269:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "1269:9:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "1280:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "1280:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "1265:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "1265:3:136"
                            },
                            "nativeSrc": "1265:22:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1265:22:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1289:2:136",
                            "nodeType": "YulLiteral",
                            "src": "1289:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1261:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1261:3:136"
                        },
                        "nativeSrc": "1261:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1261:31:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1294:1:136",
                        "nodeType": "YulLiteral",
                        "src": "1294:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1254:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1254:6:136"
                    },
                    "nativeSrc": "1254:42:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1254:42:136"
                  },
                  "nativeSrc": "1254:42:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1254:42:136"
                },
                {
                  "nativeSrc": "1305:62:136",
                  "nodeType": "YulAssignment",
                  "src": "1305:62:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "1321:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "1321:9:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nativeSrc": "1340:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "1340:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1348:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1348:2:136",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "1336:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "1336:3:136"
                                },
                                "nativeSrc": "1336:15:136",
                                "nodeType": "YulFunctionCall",
                                "src": "1336:15:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1357:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1357:2:136",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "1353:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "1353:3:136"
                                },
                                "nativeSrc": "1353:7:136",
                                "nodeType": "YulFunctionCall",
                                "src": "1353:7:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "1332:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "1332:3:136"
                            },
                            "nativeSrc": "1332:29:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1332:29:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1317:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1317:3:136"
                        },
                        "nativeSrc": "1317:45:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1317:45:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1364:2:136",
                        "nodeType": "YulLiteral",
                        "src": "1364:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "1313:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "1313:3:136"
                    },
                    "nativeSrc": "1313:54:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1313:54:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "1305:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "1305:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "955:418:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "1045:9:136",
                "nodeType": "YulTypedName",
                "src": "1045:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "1056:6:136",
                "nodeType": "YulTypedName",
                "src": "1056:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "1067:4:136",
                "nodeType": "YulTypedName",
                "src": "1067:4:136",
                "type": ""
              }
            ],
            "src": "955:418:136"
          },
          {
            "body": {
              "nativeSrc": "1447:219:136",
              "nodeType": "YulBlock",
              "src": "1447:219:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "1493:16:136",
                    "nodeType": "YulBlock",
                    "src": "1493:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "1502:1:136",
                              "nodeType": "YulLiteral",
                              "src": "1502:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "1505:1:136",
                              "nodeType": "YulLiteral",
                              "src": "1505:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "1495:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "1495:6:136"
                          },
                          "nativeSrc": "1495:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "1495:12:136"
                        },
                        "nativeSrc": "1495:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "1495:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "1468:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "1468:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "1477:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "1477:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "1464:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1464:3:136"
                        },
                        "nativeSrc": "1464:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1464:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1489:2:136",
                        "nodeType": "YulLiteral",
                        "src": "1489:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "1460:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "1460:3:136"
                    },
                    "nativeSrc": "1460:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1460:32:136"
                  },
                  "nativeSrc": "1457:52:136",
                  "nodeType": "YulIf",
                  "src": "1457:52:136"
                },
                {
                  "nativeSrc": "1518:36:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "1518:36:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1544:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1544:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "1531:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "1531:12:136"
                    },
                    "nativeSrc": "1531:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1531:23:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "1522:5:136",
                      "nodeType": "YulTypedName",
                      "src": "1522:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "1620:16:136",
                    "nodeType": "YulBlock",
                    "src": "1620:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "1629:1:136",
                              "nodeType": "YulLiteral",
                              "src": "1629:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "1632:1:136",
                              "nodeType": "YulLiteral",
                              "src": "1632:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "1622:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "1622:6:136"
                          },
                          "nativeSrc": "1622:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "1622:12:136"
                        },
                        "nativeSrc": "1622:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "1622:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "1576:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "1576:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "1587:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "1587:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "1594:22:136",
                                "nodeType": "YulLiteral",
                                "src": "1594:22:136",
                                "type": "",
                                "value": "0xffffffffffffffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "1583:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "1583:3:136"
                            },
                            "nativeSrc": "1583:34:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1583:34:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "1573:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "1573:2:136"
                        },
                        "nativeSrc": "1573:45:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1573:45:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "1566:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1566:6:136"
                    },
                    "nativeSrc": "1566:53:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1566:53:136"
                  },
                  "nativeSrc": "1563:73:136",
                  "nodeType": "YulIf",
                  "src": "1563:73:136"
                },
                {
                  "nativeSrc": "1645:15:136",
                  "nodeType": "YulAssignment",
                  "src": "1645:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "1655:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "1655:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "1645:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1645:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint80",
            "nativeSrc": "1378:288:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "1413:9:136",
                "nodeType": "YulTypedName",
                "src": "1413:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "1424:7:136",
                "nodeType": "YulTypedName",
                "src": "1424:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "1436:6:136",
                "nodeType": "YulTypedName",
                "src": "1436:6:136",
                "type": ""
              }
            ],
            "src": "1378:288:136"
          },
          {
            "body": {
              "nativeSrc": "1878:308:136",
              "nodeType": "YulBlock",
              "src": "1878:308:136",
              "statements": [
                {
                  "nativeSrc": "1888:27:136",
                  "nodeType": "YulAssignment",
                  "src": "1888:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1900:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1900:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1911:3:136",
                        "nodeType": "YulLiteral",
                        "src": "1911:3:136",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "1896:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "1896:3:136"
                    },
                    "nativeSrc": "1896:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1896:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "1888:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "1888:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1931:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1931:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "1946:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "1946:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1954:22:136",
                            "nodeType": "YulLiteral",
                            "src": "1954:22:136",
                            "type": "",
                            "value": "0xffffffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "1942:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1942:3:136"
                        },
                        "nativeSrc": "1942:35:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1942:35:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1924:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1924:6:136"
                    },
                    "nativeSrc": "1924:54:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1924:54:136"
                  },
                  "nativeSrc": "1924:54:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1924:54:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "1998:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "1998:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2009:2:136",
                            "nodeType": "YulLiteral",
                            "src": "2009:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1994:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1994:3:136"
                        },
                        "nativeSrc": "1994:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1994:18:136"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "2014:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "2014:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1987:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1987:6:136"
                    },
                    "nativeSrc": "1987:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1987:34:136"
                  },
                  "nativeSrc": "1987:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1987:34:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "2041:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "2041:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2052:2:136",
                            "nodeType": "YulLiteral",
                            "src": "2052:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2037:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2037:3:136"
                        },
                        "nativeSrc": "2037:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2037:18:136"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "2057:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "2057:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2030:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2030:6:136"
                    },
                    "nativeSrc": "2030:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2030:34:136"
                  },
                  "nativeSrc": "2030:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2030:34:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "2084:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "2084:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2095:2:136",
                            "nodeType": "YulLiteral",
                            "src": "2095:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2080:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2080:3:136"
                        },
                        "nativeSrc": "2080:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2080:18:136"
                      },
                      {
                        "name": "value3",
                        "nativeSrc": "2100:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "2100:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2073:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2073:6:136"
                    },
                    "nativeSrc": "2073:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2073:34:136"
                  },
                  "nativeSrc": "2073:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2073:34:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "2127:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "2127:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2138:3:136",
                            "nodeType": "YulLiteral",
                            "src": "2138:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2123:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2123:3:136"
                        },
                        "nativeSrc": "2123:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2123:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value4",
                            "nativeSrc": "2148:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "2148:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2156:22:136",
                            "nodeType": "YulLiteral",
                            "src": "2156:22:136",
                            "type": "",
                            "value": "0xffffffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "2144:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2144:3:136"
                        },
                        "nativeSrc": "2144:35:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2144:35:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2116:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2116:6:136"
                    },
                    "nativeSrc": "2116:64:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2116:64:136"
                  },
                  "nativeSrc": "2116:64:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2116:64:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__to_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__fromStack_reversed",
            "nativeSrc": "1671:515:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "1815:9:136",
                "nodeType": "YulTypedName",
                "src": "1815:9:136",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "1826:6:136",
                "nodeType": "YulTypedName",
                "src": "1826:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "1834:6:136",
                "nodeType": "YulTypedName",
                "src": "1834:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "1842:6:136",
                "nodeType": "YulTypedName",
                "src": "1842:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "1850:6:136",
                "nodeType": "YulTypedName",
                "src": "1850:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "1858:6:136",
                "nodeType": "YulTypedName",
                "src": "1858:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "1869:4:136",
                "nodeType": "YulTypedName",
                "src": "1869:4:136",
                "type": ""
              }
            ],
            "src": "1671:515:136"
          },
          {
            "body": {
              "nativeSrc": "2261:110:136",
              "nodeType": "YulBlock",
              "src": "2261:110:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "2307:16:136",
                    "nodeType": "YulBlock",
                    "src": "2307:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "2316:1:136",
                              "nodeType": "YulLiteral",
                              "src": "2316:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "2319:1:136",
                              "nodeType": "YulLiteral",
                              "src": "2319:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "2309:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "2309:6:136"
                          },
                          "nativeSrc": "2309:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "2309:12:136"
                        },
                        "nativeSrc": "2309:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "2309:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "2282:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "2282:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "2291:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "2291:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "2278:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2278:3:136"
                        },
                        "nativeSrc": "2278:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2278:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2303:2:136",
                        "nodeType": "YulLiteral",
                        "src": "2303:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "2274:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "2274:3:136"
                    },
                    "nativeSrc": "2274:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2274:32:136"
                  },
                  "nativeSrc": "2271:52:136",
                  "nodeType": "YulIf",
                  "src": "2271:52:136"
                },
                {
                  "nativeSrc": "2332:33:136",
                  "nodeType": "YulAssignment",
                  "src": "2332:33:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2355:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "2355:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "2342:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "2342:12:136"
                    },
                    "nativeSrc": "2342:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2342:23:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "2332:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2332:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256",
            "nativeSrc": "2191:180:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "2227:9:136",
                "nodeType": "YulTypedName",
                "src": "2227:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "2238:7:136",
                "nodeType": "YulTypedName",
                "src": "2238:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "2250:6:136",
                "nodeType": "YulTypedName",
                "src": "2250:6:136",
                "type": ""
              }
            ],
            "src": "2191:180:136"
          },
          {
            "body": {
              "nativeSrc": "2475:103:136",
              "nodeType": "YulBlock",
              "src": "2475:103:136",
              "statements": [
                {
                  "nativeSrc": "2485:26:136",
                  "nodeType": "YulAssignment",
                  "src": "2485:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2497:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "2497:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2508:2:136",
                        "nodeType": "YulLiteral",
                        "src": "2508:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "2493:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "2493:3:136"
                    },
                    "nativeSrc": "2493:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2493:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "2485:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "2485:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2527:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "2527:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "2542:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "2542:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "2554:3:136",
                                "nodeType": "YulLiteral",
                                "src": "2554:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "2559:10:136",
                                "nodeType": "YulLiteral",
                                "src": "2559:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "2550:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "2550:3:136"
                            },
                            "nativeSrc": "2550:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "2550:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "2538:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2538:3:136"
                        },
                        "nativeSrc": "2538:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2538:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2520:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2520:6:136"
                    },
                    "nativeSrc": "2520:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2520:52:136"
                  },
                  "nativeSrc": "2520:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2520:52:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
            "nativeSrc": "2376:202:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "2444:9:136",
                "nodeType": "YulTypedName",
                "src": "2444:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "2455:6:136",
                "nodeType": "YulTypedName",
                "src": "2455:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "2466:4:136",
                "nodeType": "YulTypedName",
                "src": "2466:4:136",
                "type": ""
              }
            ],
            "src": "2376:202:136"
          },
          {
            "body": {
              "nativeSrc": "2708:103:136",
              "nodeType": "YulBlock",
              "src": "2708:103:136",
              "statements": [
                {
                  "nativeSrc": "2718:26:136",
                  "nodeType": "YulAssignment",
                  "src": "2718:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2730:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "2730:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2741:2:136",
                        "nodeType": "YulLiteral",
                        "src": "2741:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "2726:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "2726:3:136"
                    },
                    "nativeSrc": "2726:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2726:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "2718:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "2718:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2760:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "2760:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "2775:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "2775:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "2787:3:136",
                                "nodeType": "YulLiteral",
                                "src": "2787:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "2792:10:136",
                                "nodeType": "YulLiteral",
                                "src": "2792:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "2783:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "2783:3:136"
                            },
                            "nativeSrc": "2783:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "2783:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "2771:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2771:3:136"
                        },
                        "nativeSrc": "2771:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2771:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2753:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2753:6:136"
                    },
                    "nativeSrc": "2753:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2753:52:136"
                  },
                  "nativeSrc": "2753:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2753:52:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_ID4_$28155__to_t_bytes4__fromStack_reversed",
            "nativeSrc": "2583:228:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "2677:9:136",
                "nodeType": "YulTypedName",
                "src": "2677:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "2688:6:136",
                "nodeType": "YulTypedName",
                "src": "2688:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "2699:4:136",
                "nodeType": "YulTypedName",
                "src": "2699:4:136",
                "type": ""
              }
            ],
            "src": "2583:228:136"
          },
          {
            "body": {
              "nativeSrc": "2873:106:136",
              "nodeType": "YulBlock",
              "src": "2873:106:136",
              "statements": [
                {
                  "nativeSrc": "2883:22:136",
                  "nodeType": "YulAssignment",
                  "src": "2883:22:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "2898:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "2898:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "2892:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "2892:5:136"
                    },
                    "nativeSrc": "2892:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2892:13:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "2883:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "2883:5:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "2957:16:136",
                    "nodeType": "YulBlock",
                    "src": "2957:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "2966:1:136",
                              "nodeType": "YulLiteral",
                              "src": "2966:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "2969:1:136",
                              "nodeType": "YulLiteral",
                              "src": "2969:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "2959:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "2959:6:136"
                          },
                          "nativeSrc": "2959:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "2959:12:136"
                        },
                        "nativeSrc": "2959:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "2959:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "2927:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "2927:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "2945:1:136",
                                "nodeType": "YulLiteral",
                                "src": "2945:1:136",
                                "type": "",
                                "value": "0"
                              },
                              {
                                "name": "value",
                                "nativeSrc": "2948:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "2948:5:136"
                              }
                            ],
                            "functionName": {
                              "name": "signextend",
                              "nativeSrc": "2934:10:136",
                              "nodeType": "YulIdentifier",
                              "src": "2934:10:136"
                            },
                            "nativeSrc": "2934:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "2934:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "2924:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "2924:2:136"
                        },
                        "nativeSrc": "2924:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2924:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "2917:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2917:6:136"
                    },
                    "nativeSrc": "2917:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2917:39:136"
                  },
                  "nativeSrc": "2914:59:136",
                  "nodeType": "YulIf",
                  "src": "2914:59:136"
                }
              ]
            },
            "name": "abi_decode_int8_fromMemory",
            "nativeSrc": "2816:163:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "2852:6:136",
                "nodeType": "YulTypedName",
                "src": "2852:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "2863:5:136",
                "nodeType": "YulTypedName",
                "src": "2863:5:136",
                "type": ""
              }
            ],
            "src": "2816:163:136"
          },
          {
            "body": {
              "nativeSrc": "3062:124:136",
              "nodeType": "YulBlock",
              "src": "3062:124:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "3108:16:136",
                    "nodeType": "YulBlock",
                    "src": "3108:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "3117:1:136",
                              "nodeType": "YulLiteral",
                              "src": "3117:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3120:1:136",
                              "nodeType": "YulLiteral",
                              "src": "3120:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "3110:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3110:6:136"
                          },
                          "nativeSrc": "3110:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3110:12:136"
                        },
                        "nativeSrc": "3110:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "3110:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "3083:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "3083:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "3092:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "3092:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "3079:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3079:3:136"
                        },
                        "nativeSrc": "3079:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3079:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3104:2:136",
                        "nodeType": "YulLiteral",
                        "src": "3104:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "3075:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3075:3:136"
                    },
                    "nativeSrc": "3075:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3075:32:136"
                  },
                  "nativeSrc": "3072:52:136",
                  "nodeType": "YulIf",
                  "src": "3072:52:136"
                },
                {
                  "nativeSrc": "3133:47:136",
                  "nodeType": "YulAssignment",
                  "src": "3133:47:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3170:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "3170:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_int8_fromMemory",
                      "nativeSrc": "3143:26:136",
                      "nodeType": "YulIdentifier",
                      "src": "3143:26:136"
                    },
                    "nativeSrc": "3143:37:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3143:37:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "3133:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3133:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_int8_fromMemory",
            "nativeSrc": "2984:202:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "3028:9:136",
                "nodeType": "YulTypedName",
                "src": "3028:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "3039:7:136",
                "nodeType": "YulTypedName",
                "src": "3039:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "3051:6:136",
                "nodeType": "YulTypedName",
                "src": "3051:6:136",
                "type": ""
              }
            ],
            "src": "2984:202:136"
          },
          {
            "body": {
              "nativeSrc": "3232:235:136",
              "nodeType": "YulBlock",
              "src": "3232:235:136",
              "statements": [
                {
                  "nativeSrc": "3242:35:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3242:35:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "3268:1:136",
                        "nodeType": "YulLiteral",
                        "src": "3268:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "name": "value",
                        "nativeSrc": "3271:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "3271:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "signextend",
                      "nativeSrc": "3257:10:136",
                      "nodeType": "YulIdentifier",
                      "src": "3257:10:136"
                    },
                    "nativeSrc": "3257:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3257:20:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "3246:7:136",
                      "nodeType": "YulTypedName",
                      "src": "3246:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "3319:111:136",
                    "nodeType": "YulBlock",
                    "src": "3319:111:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "3340:1:136",
                              "nodeType": "YulLiteral",
                              "src": "3340:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "3347:3:136",
                                  "nodeType": "YulLiteral",
                                  "src": "3347:3:136",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nativeSrc": "3352:10:136",
                                  "nodeType": "YulLiteral",
                                  "src": "3352:10:136",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nativeSrc": "3343:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "3343:3:136"
                              },
                              "nativeSrc": "3343:20:136",
                              "nodeType": "YulFunctionCall",
                              "src": "3343:20:136"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "3333:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3333:6:136"
                          },
                          "nativeSrc": "3333:31:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3333:31:136"
                        },
                        "nativeSrc": "3333:31:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "3333:31:136"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "3384:1:136",
                              "nodeType": "YulLiteral",
                              "src": "3384:1:136",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3387:4:136",
                              "nodeType": "YulLiteral",
                              "src": "3387:4:136",
                              "type": "",
                              "value": "0x11"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "3377:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3377:6:136"
                          },
                          "nativeSrc": "3377:15:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3377:15:136"
                        },
                        "nativeSrc": "3377:15:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "3377:15:136"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "3412:1:136",
                              "nodeType": "YulLiteral",
                              "src": "3412:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3415:4:136",
                              "nodeType": "YulLiteral",
                              "src": "3415:4:136",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "3405:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3405:6:136"
                          },
                          "nativeSrc": "3405:15:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3405:15:136"
                        },
                        "nativeSrc": "3405:15:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "3405:15:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "3292:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "3292:7:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "3305:3:136",
                            "nodeType": "YulLiteral",
                            "src": "3305:3:136",
                            "type": "",
                            "value": "127"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nativeSrc": "3301:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3301:3:136"
                        },
                        "nativeSrc": "3301:8:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3301:8:136"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nativeSrc": "3289:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "3289:2:136"
                    },
                    "nativeSrc": "3289:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3289:21:136"
                  },
                  "nativeSrc": "3286:144:136",
                  "nodeType": "YulIf",
                  "src": "3286:144:136"
                },
                {
                  "nativeSrc": "3439:22:136",
                  "nodeType": "YulAssignment",
                  "src": "3439:22:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "3450:1:136",
                        "nodeType": "YulLiteral",
                        "src": "3450:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "name": "value_1",
                        "nativeSrc": "3453:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "3453:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nativeSrc": "3446:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3446:3:136"
                    },
                    "nativeSrc": "3446:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3446:15:136"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nativeSrc": "3439:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3439:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "negate_t_int8",
            "nativeSrc": "3191:276:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "3214:5:136",
                "nodeType": "YulTypedName",
                "src": "3214:5:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nativeSrc": "3224:3:136",
                "nodeType": "YulTypedName",
                "src": "3224:3:136",
                "type": ""
              }
            ],
            "src": "3191:276:136"
          },
          {
            "body": {
              "nativeSrc": "3504:95:136",
              "nodeType": "YulBlock",
              "src": "3504:95:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "3521:1:136",
                        "nodeType": "YulLiteral",
                        "src": "3521:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "3528:3:136",
                            "nodeType": "YulLiteral",
                            "src": "3528:3:136",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3533:10:136",
                            "nodeType": "YulLiteral",
                            "src": "3533:10:136",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "3524:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3524:3:136"
                        },
                        "nativeSrc": "3524:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3524:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3514:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3514:6:136"
                    },
                    "nativeSrc": "3514:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3514:31:136"
                  },
                  "nativeSrc": "3514:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "3514:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "3561:1:136",
                        "nodeType": "YulLiteral",
                        "src": "3561:1:136",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3564:4:136",
                        "nodeType": "YulLiteral",
                        "src": "3564:4:136",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3554:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3554:6:136"
                    },
                    "nativeSrc": "3554:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3554:15:136"
                  },
                  "nativeSrc": "3554:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "3554:15:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "3585:1:136",
                        "nodeType": "YulLiteral",
                        "src": "3585:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3588:4:136",
                        "nodeType": "YulLiteral",
                        "src": "3588:4:136",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "3578:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3578:6:136"
                    },
                    "nativeSrc": "3578:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3578:15:136"
                  },
                  "nativeSrc": "3578:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "3578:15:136"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nativeSrc": "3472:127:136",
            "nodeType": "YulFunctionDefinition",
            "src": "3472:127:136"
          },
          {
            "body": {
              "nativeSrc": "3649:230:136",
              "nodeType": "YulBlock",
              "src": "3649:230:136",
              "statements": [
                {
                  "nativeSrc": "3659:19:136",
                  "nodeType": "YulAssignment",
                  "src": "3659:19:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "3675:2:136",
                        "nodeType": "YulLiteral",
                        "src": "3675:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "3669:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "3669:5:136"
                    },
                    "nativeSrc": "3669:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3669:9:136"
                  },
                  "variableNames": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "3659:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3659:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "3687:58:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3687:58:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "3709:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "3709:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "size",
                                "nativeSrc": "3725:4:136",
                                "nodeType": "YulIdentifier",
                                "src": "3725:4:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "3731:2:136",
                                "nodeType": "YulLiteral",
                                "src": "3731:2:136",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "3721:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "3721:3:136"
                            },
                            "nativeSrc": "3721:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "3721:13:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "3740:2:136",
                                "nodeType": "YulLiteral",
                                "src": "3740:2:136",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nativeSrc": "3736:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "3736:3:136"
                            },
                            "nativeSrc": "3736:7:136",
                            "nodeType": "YulFunctionCall",
                            "src": "3736:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "3717:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3717:3:136"
                        },
                        "nativeSrc": "3717:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3717:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3705:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3705:3:136"
                    },
                    "nativeSrc": "3705:40:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3705:40:136"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nativeSrc": "3691:10:136",
                      "nodeType": "YulTypedName",
                      "src": "3691:10:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "3820:22:136",
                    "nodeType": "YulBlock",
                    "src": "3820:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "3822:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "3822:16:136"
                          },
                          "nativeSrc": "3822:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3822:18:136"
                        },
                        "nativeSrc": "3822:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "3822:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "3763:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "3763:10:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3775:18:136",
                            "nodeType": "YulLiteral",
                            "src": "3775:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nativeSrc": "3760:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "3760:2:136"
                        },
                        "nativeSrc": "3760:34:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3760:34:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "3799:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "3799:10:136"
                          },
                          {
                            "name": "memPtr",
                            "nativeSrc": "3811:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3811:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "3796:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "3796:2:136"
                        },
                        "nativeSrc": "3796:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3796:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nativeSrc": "3757:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "3757:2:136"
                    },
                    "nativeSrc": "3757:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3757:62:136"
                  },
                  "nativeSrc": "3754:88:136",
                  "nodeType": "YulIf",
                  "src": "3754:88:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "3858:2:136",
                        "nodeType": "YulLiteral",
                        "src": "3858:2:136",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nativeSrc": "3862:10:136",
                        "nodeType": "YulIdentifier",
                        "src": "3862:10:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3851:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3851:6:136"
                    },
                    "nativeSrc": "3851:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3851:22:136"
                  },
                  "nativeSrc": "3851:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "3851:22:136"
                }
              ]
            },
            "name": "allocate_memory",
            "nativeSrc": "3604:275:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "size",
                "nativeSrc": "3629:4:136",
                "nodeType": "YulTypedName",
                "src": "3629:4:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "memPtr",
                "nativeSrc": "3638:6:136",
                "nodeType": "YulTypedName",
                "src": "3638:6:136",
                "type": ""
              }
            ],
            "src": "3604:275:136"
          },
          {
            "body": {
              "nativeSrc": "3928:85:136",
              "nodeType": "YulBlock",
              "src": "3928:85:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "3991:16:136",
                    "nodeType": "YulBlock",
                    "src": "3991:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "4000:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4000:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "4003:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4003:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "3993:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3993:6:136"
                          },
                          "nativeSrc": "3993:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3993:12:136"
                        },
                        "nativeSrc": "3993:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "3993:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "3951:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "3951:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "3962:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "3962:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "3969:18:136",
                                "nodeType": "YulLiteral",
                                "src": "3969:18:136",
                                "type": "",
                                "value": "0xffffffffffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "3958:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "3958:3:136"
                            },
                            "nativeSrc": "3958:30:136",
                            "nodeType": "YulFunctionCall",
                            "src": "3958:30:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "3948:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "3948:2:136"
                        },
                        "nativeSrc": "3948:41:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3948:41:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "3941:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3941:6:136"
                    },
                    "nativeSrc": "3941:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3941:49:136"
                  },
                  "nativeSrc": "3938:69:136",
                  "nodeType": "YulIf",
                  "src": "3938:69:136"
                }
              ]
            },
            "name": "validator_revert_uint64",
            "nativeSrc": "3884:129:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "3917:5:136",
                "nodeType": "YulTypedName",
                "src": "3917:5:136",
                "type": ""
              }
            ],
            "src": "3884:129:136"
          },
          {
            "body": {
              "nativeSrc": "4123:895:136",
              "nodeType": "YulBlock",
              "src": "4123:895:136",
              "statements": [
                {
                  "nativeSrc": "4133:43:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4133:43:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "4151:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "4151:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "4160:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "4160:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "4147:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4147:3:136"
                        },
                        "nativeSrc": "4147:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4147:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4172:3:136",
                        "nodeType": "YulLiteral",
                        "src": "4172:3:136",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "4143:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "4143:3:136"
                    },
                    "nativeSrc": "4143:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4143:33:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "4137:2:136",
                      "nodeType": "YulTypedName",
                      "src": "4137:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "4191:16:136",
                    "nodeType": "YulBlock",
                    "src": "4191:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "4200:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4200:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "4203:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4203:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "4193:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4193:6:136"
                          },
                          "nativeSrc": "4193:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "4193:12:136"
                        },
                        "nativeSrc": "4193:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "4193:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "name": "_1",
                    "nativeSrc": "4188:2:136",
                    "nodeType": "YulIdentifier",
                    "src": "4188:2:136"
                  },
                  "nativeSrc": "4185:22:136",
                  "nodeType": "YulIf",
                  "src": "4185:22:136"
                },
                {
                  "nativeSrc": "4216:7:136",
                  "nodeType": "YulAssignment",
                  "src": "4216:7:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "4222:1:136",
                    "nodeType": "YulLiteral",
                    "src": "4222:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variableNames": [
                    {
                      "name": "_1",
                      "nativeSrc": "4216:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "4216:2:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "4232:15:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4232:15:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "4246:1:136",
                    "nodeType": "YulLiteral",
                    "src": "4246:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "4236:6:136",
                      "nodeType": "YulTypedName",
                      "src": "4236:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "4256:19:136",
                  "nodeType": "YulAssignment",
                  "src": "4256:19:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "4272:2:136",
                        "nodeType": "YulLiteral",
                        "src": "4272:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "4266:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "4266:5:136"
                    },
                    "nativeSrc": "4266:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4266:9:136"
                  },
                  "variableNames": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "4256:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4256:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "4284:34:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4284:34:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "4306:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "4306:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4314:3:136",
                        "nodeType": "YulLiteral",
                        "src": "4314:3:136",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "4302:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "4302:3:136"
                    },
                    "nativeSrc": "4302:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4302:16:136"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nativeSrc": "4288:10:136",
                      "nodeType": "YulTypedName",
                      "src": "4288:10:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "4393:22:136",
                    "nodeType": "YulBlock",
                    "src": "4393:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "4395:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "4395:16:136"
                          },
                          "nativeSrc": "4395:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "4395:18:136"
                        },
                        "nativeSrc": "4395:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "4395:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "4336:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "4336:10:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4348:18:136",
                            "nodeType": "YulLiteral",
                            "src": "4348:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nativeSrc": "4333:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "4333:2:136"
                        },
                        "nativeSrc": "4333:34:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4333:34:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "4372:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "4372:10:136"
                          },
                          {
                            "name": "memPtr",
                            "nativeSrc": "4384:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4384:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "4369:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "4369:2:136"
                        },
                        "nativeSrc": "4369:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4369:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nativeSrc": "4330:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "4330:2:136"
                    },
                    "nativeSrc": "4330:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4330:62:136"
                  },
                  "nativeSrc": "4327:88:136",
                  "nodeType": "YulIf",
                  "src": "4327:88:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "4431:2:136",
                        "nodeType": "YulLiteral",
                        "src": "4431:2:136",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nativeSrc": "4435:10:136",
                        "nodeType": "YulIdentifier",
                        "src": "4435:10:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4424:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4424:6:136"
                    },
                    "nativeSrc": "4424:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4424:22:136"
                  },
                  "nativeSrc": "4424:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4424:22:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "4462:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "4462:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "4497:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "4497:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_int8_fromMemory",
                          "nativeSrc": "4470:26:136",
                          "nodeType": "YulIdentifier",
                          "src": "4470:26:136"
                        },
                        "nativeSrc": "4470:37:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4470:37:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4455:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4455:6:136"
                    },
                    "nativeSrc": "4455:53:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4455:53:136"
                  },
                  "nativeSrc": "4455:53:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4455:53:136"
                },
                {
                  "nativeSrc": "4517:38:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4517:38:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "4540:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "4540:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4551:2:136",
                            "nodeType": "YulLiteral",
                            "src": "4551:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4536:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4536:3:136"
                        },
                        "nativeSrc": "4536:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4536:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "4530:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "4530:5:136"
                    },
                    "nativeSrc": "4530:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4530:25:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "4521:5:136",
                      "nodeType": "YulTypedName",
                      "src": "4521:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "4588:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "4588:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "4564:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "4564:23:136"
                    },
                    "nativeSrc": "4564:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4564:30:136"
                  },
                  "nativeSrc": "4564:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4564:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "4614:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4614:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4622:2:136",
                            "nodeType": "YulLiteral",
                            "src": "4622:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4610:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4610:3:136"
                        },
                        "nativeSrc": "4610:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4610:15:136"
                      },
                      {
                        "name": "value",
                        "nativeSrc": "4627:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "4627:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4603:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4603:6:136"
                    },
                    "nativeSrc": "4603:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4603:30:136"
                  },
                  "nativeSrc": "4603:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4603:30:136"
                },
                {
                  "nativeSrc": "4642:40:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4642:40:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "4667:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "4667:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4678:2:136",
                            "nodeType": "YulLiteral",
                            "src": "4678:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4663:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4663:3:136"
                        },
                        "nativeSrc": "4663:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4663:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "4657:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "4657:5:136"
                    },
                    "nativeSrc": "4657:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4657:25:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "4646:7:136",
                      "nodeType": "YulTypedName",
                      "src": "4646:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "4738:16:136",
                    "nodeType": "YulBlock",
                    "src": "4738:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "4747:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4747:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "4750:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4750:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "4740:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4740:6:136"
                          },
                          "nativeSrc": "4740:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "4740:12:136"
                        },
                        "nativeSrc": "4740:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "4740:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value_1",
                            "nativeSrc": "4704:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "4704:7:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "4724:1:136",
                                "nodeType": "YulLiteral",
                                "src": "4724:1:136",
                                "type": "",
                                "value": "6"
                              },
                              {
                                "name": "value_1",
                                "nativeSrc": "4727:7:136",
                                "nodeType": "YulIdentifier",
                                "src": "4727:7:136"
                              }
                            ],
                            "functionName": {
                              "name": "signextend",
                              "nativeSrc": "4713:10:136",
                              "nodeType": "YulIdentifier",
                              "src": "4713:10:136"
                            },
                            "nativeSrc": "4713:22:136",
                            "nodeType": "YulFunctionCall",
                            "src": "4713:22:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "4701:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "4701:2:136"
                        },
                        "nativeSrc": "4701:35:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4701:35:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "4694:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4694:6:136"
                    },
                    "nativeSrc": "4694:43:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4694:43:136"
                  },
                  "nativeSrc": "4691:63:136",
                  "nodeType": "YulIf",
                  "src": "4691:63:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "4774:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4774:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4782:2:136",
                            "nodeType": "YulLiteral",
                            "src": "4782:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4770:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4770:3:136"
                        },
                        "nativeSrc": "4770:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4770:15:136"
                      },
                      {
                        "name": "value_1",
                        "nativeSrc": "4787:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "4787:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4763:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4763:6:136"
                    },
                    "nativeSrc": "4763:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4763:32:136"
                  },
                  "nativeSrc": "4763:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4763:32:136"
                },
                {
                  "nativeSrc": "4804:40:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4804:40:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "4829:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "4829:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4840:2:136",
                            "nodeType": "YulLiteral",
                            "src": "4840:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4825:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4825:3:136"
                        },
                        "nativeSrc": "4825:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4825:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "4819:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "4819:5:136"
                    },
                    "nativeSrc": "4819:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4819:25:136"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nativeSrc": "4808:7:136",
                      "nodeType": "YulTypedName",
                      "src": "4808:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_2",
                        "nativeSrc": "4877:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "4877:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "4853:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "4853:23:136"
                    },
                    "nativeSrc": "4853:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4853:32:136"
                  },
                  "nativeSrc": "4853:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4853:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "4905:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4905:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4913:2:136",
                            "nodeType": "YulLiteral",
                            "src": "4913:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4901:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4901:3:136"
                        },
                        "nativeSrc": "4901:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4901:15:136"
                      },
                      {
                        "name": "value_2",
                        "nativeSrc": "4918:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "4918:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4894:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4894:6:136"
                    },
                    "nativeSrc": "4894:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4894:32:136"
                  },
                  "nativeSrc": "4894:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4894:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "4946:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4946:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4954:3:136",
                            "nodeType": "YulLiteral",
                            "src": "4954:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4942:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4942:3:136"
                        },
                        "nativeSrc": "4942:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4942:16:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "4970:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "4970:9:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "4981:3:136",
                                "nodeType": "YulLiteral",
                                "src": "4981:3:136",
                                "type": "",
                                "value": "128"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "4966:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "4966:3:136"
                            },
                            "nativeSrc": "4966:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "4966:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "mload",
                          "nativeSrc": "4960:5:136",
                          "nodeType": "YulIdentifier",
                          "src": "4960:5:136"
                        },
                        "nativeSrc": "4960:26:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4960:26:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4935:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4935:6:136"
                    },
                    "nativeSrc": "4935:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4935:52:136"
                  },
                  "nativeSrc": "4935:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4935:52:136"
                },
                {
                  "nativeSrc": "4996:16:136",
                  "nodeType": "YulAssignment",
                  "src": "4996:16:136",
                  "value": {
                    "name": "memPtr",
                    "nativeSrc": "5006:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "5006:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "4996:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4996:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_struct$_Price_$28105_memory_ptr_fromMemory",
            "nativeSrc": "4018:1000:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "4089:9:136",
                "nodeType": "YulTypedName",
                "src": "4089:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "4100:7:136",
                "nodeType": "YulTypedName",
                "src": "4100:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "4112:6:136",
                "nodeType": "YulTypedName",
                "src": "4112:6:136",
                "type": ""
              }
            ],
            "src": "4018:1000:136"
          },
          {
            "body": {
              "nativeSrc": "5114:665:136",
              "nodeType": "YulBlock",
              "src": "5114:665:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "5160:16:136",
                    "nodeType": "YulBlock",
                    "src": "5160:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "5169:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5169:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5172:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5172:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "5162:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5162:6:136"
                          },
                          "nativeSrc": "5162:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5162:12:136"
                        },
                        "nativeSrc": "5162:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "5162:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "5135:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "5135:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "5144:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "5144:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "5131:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "5131:3:136"
                        },
                        "nativeSrc": "5131:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5131:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5156:2:136",
                        "nodeType": "YulLiteral",
                        "src": "5156:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "5127:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5127:3:136"
                    },
                    "nativeSrc": "5127:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5127:32:136"
                  },
                  "nativeSrc": "5124:52:136",
                  "nodeType": "YulIf",
                  "src": "5124:52:136"
                },
                {
                  "nativeSrc": "5185:30:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5185:30:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5205:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5205:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "5199:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "5199:5:136"
                    },
                    "nativeSrc": "5199:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5199:16:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "5189:6:136",
                      "nodeType": "YulTypedName",
                      "src": "5189:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "5258:16:136",
                    "nodeType": "YulBlock",
                    "src": "5258:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "5267:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5267:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5270:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5270:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "5260:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5260:6:136"
                          },
                          "nativeSrc": "5260:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5260:12:136"
                        },
                        "nativeSrc": "5260:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "5260:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "5230:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5230:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5238:18:136",
                        "nodeType": "YulLiteral",
                        "src": "5238:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "5227:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "5227:2:136"
                    },
                    "nativeSrc": "5227:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5227:30:136"
                  },
                  "nativeSrc": "5224:50:136",
                  "nodeType": "YulIf",
                  "src": "5224:50:136"
                },
                {
                  "nativeSrc": "5283:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5283:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5297:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5297:9:136"
                      },
                      {
                        "name": "offset",
                        "nativeSrc": "5308:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5308:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5293:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5293:3:136"
                    },
                    "nativeSrc": "5293:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5293:22:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "5287:2:136",
                      "nodeType": "YulTypedName",
                      "src": "5287:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "5363:16:136",
                    "nodeType": "YulBlock",
                    "src": "5363:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "5372:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5372:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5375:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5375:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "5365:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5365:6:136"
                          },
                          "nativeSrc": "5365:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5365:12:136"
                        },
                        "nativeSrc": "5365:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "5365:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "5342:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "5342:2:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "5346:4:136",
                                "nodeType": "YulLiteral",
                                "src": "5346:4:136",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "5338:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "5338:3:136"
                            },
                            "nativeSrc": "5338:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "5338:13:136"
                          },
                          {
                            "name": "dataEnd",
                            "nativeSrc": "5353:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "5353:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nativeSrc": "5334:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "5334:3:136"
                        },
                        "nativeSrc": "5334:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5334:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "5327:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5327:6:136"
                    },
                    "nativeSrc": "5327:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5327:35:136"
                  },
                  "nativeSrc": "5324:55:136",
                  "nodeType": "YulIf",
                  "src": "5324:55:136"
                },
                {
                  "nativeSrc": "5388:23:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5388:23:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "5408:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "5408:2:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "5402:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "5402:5:136"
                    },
                    "nativeSrc": "5402:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5402:9:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "5392:6:136",
                      "nodeType": "YulTypedName",
                      "src": "5392:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "5454:22:136",
                    "nodeType": "YulBlock",
                    "src": "5454:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "5456:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "5456:16:136"
                          },
                          "nativeSrc": "5456:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5456:18:136"
                        },
                        "nativeSrc": "5456:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "5456:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nativeSrc": "5426:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5426:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5434:18:136",
                        "nodeType": "YulLiteral",
                        "src": "5434:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "5423:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "5423:2:136"
                    },
                    "nativeSrc": "5423:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5423:30:136"
                  },
                  "nativeSrc": "5420:56:136",
                  "nodeType": "YulIf",
                  "src": "5420:56:136"
                },
                {
                  "nativeSrc": "5485:70:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5485:70:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nativeSrc": "5526:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "5526:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "5534:4:136",
                                    "nodeType": "YulLiteral",
                                    "src": "5534:4:136",
                                    "type": "",
                                    "value": "0x1f"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "5522:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "5522:3:136"
                                },
                                "nativeSrc": "5522:17:136",
                                "nodeType": "YulFunctionCall",
                                "src": "5522:17:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "5545:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "5545:2:136",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "5541:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "5541:3:136"
                                },
                                "nativeSrc": "5541:7:136",
                                "nodeType": "YulFunctionCall",
                                "src": "5541:7:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "5518:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "5518:3:136"
                            },
                            "nativeSrc": "5518:31:136",
                            "nodeType": "YulFunctionCall",
                            "src": "5518:31:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5551:2:136",
                            "nodeType": "YulLiteral",
                            "src": "5551:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5514:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "5514:3:136"
                        },
                        "nativeSrc": "5514:40:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5514:40:136"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nativeSrc": "5498:15:136",
                      "nodeType": "YulIdentifier",
                      "src": "5498:15:136"
                    },
                    "nativeSrc": "5498:57:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5498:57:136"
                  },
                  "variables": [
                    {
                      "name": "array",
                      "nativeSrc": "5489:5:136",
                      "nodeType": "YulTypedName",
                      "src": "5489:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "array",
                        "nativeSrc": "5571:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "5571:5:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "5578:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5578:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5564:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5564:6:136"
                    },
                    "nativeSrc": "5564:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5564:21:136"
                  },
                  "nativeSrc": "5564:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "5564:21:136"
                },
                {
                  "body": {
                    "nativeSrc": "5635:16:136",
                    "nodeType": "YulBlock",
                    "src": "5635:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "5644:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5644:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5647:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5647:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "5637:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5637:6:136"
                          },
                          "nativeSrc": "5637:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5637:12:136"
                        },
                        "nativeSrc": "5637:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "5637:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "5608:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "5608:2:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "5612:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "5612:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "5604:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "5604:3:136"
                            },
                            "nativeSrc": "5604:15:136",
                            "nodeType": "YulFunctionCall",
                            "src": "5604:15:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5621:2:136",
                            "nodeType": "YulLiteral",
                            "src": "5621:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5600:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "5600:3:136"
                        },
                        "nativeSrc": "5600:24:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5600:24:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "5626:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "5626:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "5597:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "5597:2:136"
                    },
                    "nativeSrc": "5597:37:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5597:37:136"
                  },
                  "nativeSrc": "5594:57:136",
                  "nodeType": "YulIf",
                  "src": "5594:57:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "array",
                            "nativeSrc": "5670:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "5670:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5677:2:136",
                            "nodeType": "YulLiteral",
                            "src": "5677:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5666:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "5666:3:136"
                        },
                        "nativeSrc": "5666:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5666:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "5686:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "5686:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5690:2:136",
                            "nodeType": "YulLiteral",
                            "src": "5690:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5682:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "5682:3:136"
                        },
                        "nativeSrc": "5682:11:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5682:11:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "5695:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5695:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mcopy",
                      "nativeSrc": "5660:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "5660:5:136"
                    },
                    "nativeSrc": "5660:42:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5660:42:136"
                  },
                  "nativeSrc": "5660:42:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "5660:42:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "array",
                                "nativeSrc": "5726:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "5726:5:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "5733:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "5733:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "5722:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "5722:3:136"
                            },
                            "nativeSrc": "5722:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "5722:18:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5742:2:136",
                            "nodeType": "YulLiteral",
                            "src": "5742:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5718:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "5718:3:136"
                        },
                        "nativeSrc": "5718:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5718:27:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5747:1:136",
                        "nodeType": "YulLiteral",
                        "src": "5747:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5711:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5711:6:136"
                    },
                    "nativeSrc": "5711:38:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5711:38:136"
                  },
                  "nativeSrc": "5711:38:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "5711:38:136"
                },
                {
                  "nativeSrc": "5758:15:136",
                  "nodeType": "YulAssignment",
                  "src": "5758:15:136",
                  "value": {
                    "name": "array",
                    "nativeSrc": "5768:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "5768:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "5758:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5758:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory",
            "nativeSrc": "5023:756:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "5080:9:136",
                "nodeType": "YulTypedName",
                "src": "5080:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "5091:7:136",
                "nodeType": "YulTypedName",
                "src": "5091:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "5103:6:136",
                "nodeType": "YulTypedName",
                "src": "5103:6:136",
                "type": ""
              }
            ],
            "src": "5023:756:136"
          }
        ]
      },
      "contents": "{\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_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_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_int256__to_t_int256__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 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        mcopy(add(headStart, 64), add(value0, 32), length)\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_tuple_t_uint80(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, 0xffffffffffffffffffff))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__to_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, and(value0, 0xffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, 0xffffffffffffffffffff))\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_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_encode_tuple_t_userDefinedValueType$_ID4_$28155__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_int8_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, signextend(0, value))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_int8_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_int8_fromMemory(headStart)\n    }\n    function negate_t_int8(value) -> ret\n    {\n        let value_1 := signextend(0, value)\n        if eq(value_1, not(127))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n        ret := sub(0, value_1)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\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_tuple_t_struct$_Price_$28105_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        let _1 := slt(sub(dataEnd, headStart), 160)\n        if _1 { revert(0, 0) }\n        _1 := 0\n        let memPtr := 0\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 160)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, abi_decode_int8_fromMemory(headStart))\n        let value := mload(add(headStart, 32))\n        validator_revert_uint64(value)\n        mstore(add(memPtr, 32), value)\n        let value_1 := mload(add(headStart, 64))\n        if iszero(eq(value_1, signextend(6, value_1))) { revert(0, 0) }\n        mstore(add(memPtr, 64), value_1)\n        let value_2 := mload(add(headStart, 96))\n        validator_revert_uint64(value_2)\n        mstore(add(memPtr, 96), value_2)\n        mstore(add(memPtr, 128), mload(add(headStart, 128)))\n        value0 := memPtr\n    }\n    function abi_decode_tuple_t_string_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        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := mload(_1)\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let array := allocate_memory(add(and(add(length, 0x1f), not(31)), 32))\n        mstore(array, length)\n        if gt(add(add(_1, length), 32), dataEnd) { revert(0, 0) }\n        mcopy(add(array, 32), add(_1, 32), length)\n        mstore(add(add(array, length), 32), 0)\n        value0 := array\n    }\n}",
      "id": 136,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "302:3246:122:-:0;;;615:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;671:10:122;;;;;;702:68;;-1:-1:-1;;;702:68:122;;;;;654:52:136;;;;-1:-1:-1;;;;;702:53:122;;;;;627:18:136;;702:68:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;692:78;;-1:-1:-1;;;;;;781:17:122;;;;;809:22;;302:3246;;14:465:136;92:6;100;153:2;141:9;132:7;128:23;124:32;121:52;;;169:1;166;159:12;121:52;195:16;;-1:-1:-1;;;;;240:31:136;;230:42;;220:70;;286:1;283;276:12;220:70;359:2;344:18;;338:25;309:5;;-1:-1:-1;;;;;;;394:34:136;;382:47;;372:75;;443:1;440;433:12;372:75;466:7;456:17;;;14:465;;;;;:::o;717:184::-;787:6;840:2;828:9;819:7;815:23;811:32;808:52;;;856:1;853;846:12;808:52;-1:-1:-1;879:16:136;;717:184;-1:-1:-1;717:184:136:o;:::-;302:3246:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "302:3246:122:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;559:43;;;;;;;;-1:-1:-1;;;;;178:32:136;;;160:51;;148:2;133:18;559:43:122;;;;;;;;466:41;;;;;;;;368:25:136;;;356:2;341:18;466:41:122;222:177:136;1830:238:122;;;:::i;:::-;;;576:4:136;564:17;;;546:36;;534:2;519:18;1830:238:122;404:184:136;960:215:122;;;:::i;3450:95::-;3536:1;3450:95;;1183:146;;;:::i;2076:112::-;;;:::i;:::-;;;;;;;:::i;1337:239::-;;;:::i;3281:161::-;;;:::i;2196:503::-;;;;;;:::i;:::-;;:::i;:::-;;;;1954:22:136;1942:35;;;1924:54;;2009:2;1994:18;;1987:34;;;;2037:18;;2030:34;;;;2095:2;2080:18;;2073:34;2144:35;;;2138:3;2123:19;;2116:64;1911:3;1896:19;2196:503:122;1671:515:136;847:105:122;;;;;;:::i;:::-;;:::i;422:37::-;;;;;;;;;;;;:::i;514:38::-;;;;;2707:566;;;:::i;1830:238::-;1923:65;;-1:-1:-1;;;1923:65:122;;1888:5;;;;1938:10;;1923:50;;:65;;1983:3;;1923:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1906:82;;2019:1;2007:9;:13;;;:52;;2049:9;2007:52;;;2029:10;2030:9;2029:10;:::i;:::-;1999:61;;;1830:238;:::o;960:215::-;1013:6;1032:33;1083:9;-1:-1:-1;;;;;1068:40:122;;1118:3;1068:55;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1154:11;;;1141:26;;;960:215;-1:-1:-1;;960:215:122:o;1183:146::-;1235:7;1304:17;:15;:17::i;:::-;1297:24;;1183:146;:::o;2076:112::-;2139:13;2172:8;:6;:8::i;1337:239::-;1393:7;1413:33;1464:9;-1:-1:-1;;;;;1449:40:122;;1499:3;1449:55;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1551:15;;;1522:46;;;1337:239;-1:-1:-1;;1337:239:122:o;3281:161::-;3362:72;;-1:-1:-1;;;3362:72:122;;3329:13;;-1:-1:-1;;;;;3385:9:122;3362:57;;;;:72;;3429:3;;3362:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3362:72:122;;;;;;;;;;;;:::i;2196:503::-;2304:6;2312;2320:7;2329;2338:6;2362:33;2413:9;-1:-1:-1;;;;;2398:40:122;;2448:3;2398:55;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2511:15;;;;2594:11;;;;;2561:8;;2584:23;;;;;;2482:46;;;;;-1:-1:-1;2482:46:122;;-1:-1:-1;2561:8:122;;-1:-1:-1;2196:503:122;-1:-1:-1;;;2196:503:122:o;847:105::-;904:6;930:14;:12;:14::i;:::-;923:21;847:105;-1:-1:-1;;847:105:122:o;2707:566::-;2801:6;2809;2817:7;2826;2835:6;2859:33;2910:9;-1:-1:-1;;;;;2895:40:122;;2945:3;2895:55;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3010:15;;;;3168:11;;;;;2979:48;;;;;3158:23;;;;;;-1:-1:-1;2979:48:122;;-1:-1:-1;2979:48:122;;-1:-1:-1;2979:48:122;;-1:-1:-1;2707:566:122;-1:-1:-1;;2707:566:122:o;955:418:136:-;1104:2;1093:9;1086:21;1067:4;1136:6;1130:13;1179:6;1174:2;1163:9;1159:18;1152:34;1238:6;1233:2;1225:6;1221:15;1216:2;1205:9;1201:18;1195:50;1294:1;1289:2;1280:6;1269:9;1265:22;1261:31;1254:42;1364:2;1357;1353:7;1348:2;1340:6;1336:15;1332:29;1321:9;1317:45;1313:54;1305:62;;;955:418;;;;:::o;1378:288::-;1436:6;1489:2;1477:9;1468:7;1464:23;1460:32;1457:52;;;1505:1;1502;1495:12;1457:52;1544:9;1531:23;1594:22;1587:5;1583:34;1576:5;1573:45;1563:73;;1632:1;1629;1622:12;1563:73;1655:5;1378:288;-1:-1:-1;;;1378:288:136:o;2191:180::-;2250:6;2303:2;2291:9;2282:7;2278:23;2274:32;2271:52;;;2319:1;2316;2309:12;2271:52;-1:-1:-1;2342:23:136;;2191:180;-1:-1:-1;2191:180:136:o;2376:202::-;-1:-1:-1;;;;;;2538:33:136;;;;2520:52;;2508:2;2493:18;;2376:202::o;2816:163::-;2892:13;;2863:5;2934:20;;;2924:31;;2914:59;;2969:1;2966;2959:12;2914:59;2816:163;;;:::o;2984:202::-;3051:6;3104:2;3092:9;3083:7;3079:23;3075:32;3072:52;;;3120:1;3117;3110:12;3072:52;3143:37;3170:9;3143:37;:::i;3191:276::-;3224:3;3257:20;;;3289:21;;;3286:144;;3352:10;3347:3;3343:20;3340:1;3333:31;3387:4;3384:1;3377:15;3415:4;3412:1;3405:15;3286:144;3450:1;3446:15;;3191:276;-1:-1:-1;;3191:276:136:o;3472:127::-;3533:10;3528:3;3524:20;3521:1;3514:31;3564:4;3561:1;3554:15;3588:4;3585:1;3578:15;3604:275;3675:2;3669:9;3740:2;3721:13;;-1:-1:-1;;3717:27:136;3705:40;;3775:18;3760:34;;3796:22;;;3757:62;3754:88;;;3822:18;;:::i;:::-;3858:2;3851:22;3604:275;;-1:-1:-1;3604:275:136:o;3884:129::-;3969:18;3962:5;3958:30;3951:5;3948:41;3938:69;;4003:1;4000;3993:12;3938:69;3884:129;:::o;4018:1000::-;4112:6;4172:3;4160:9;4151:7;4147:23;4143:33;4188:2;4185:22;;;4203:1;4200;4193:12;4185:22;-1:-1:-1;4272:2:136;4266:9;4314:3;4302:16;;4348:18;4333:34;;4369:22;;;4330:62;4327:88;;;4395:18;;:::i;:::-;4431:2;4424:22;4470:37;4497:9;4470:37;:::i;:::-;4462:6;4455:53;4551:2;4540:9;4536:18;4530:25;4564:30;4588:5;4564:30;:::i;:::-;4622:2;4610:15;;4603:30;4678:2;4663:18;;4657:25;4724:1;4713:22;;;4701:35;;4691:63;;4750:1;4747;4740:12;4691:63;4782:2;4770:15;;4763:32;4840:2;4825:18;;4819:25;4853:32;4819:25;4853:32;:::i;:::-;4913:2;4901:15;;4894:32;4981:3;4966:19;;;4960:26;4942:16;;;4935:52;;;;-1:-1:-1;4905:6:136;4018:1000;-1:-1:-1;4018:1000:136:o;5023:756::-;5103:6;5156:2;5144:9;5135:7;5131:23;5127:32;5124:52;;;5172:1;5169;5162:12;5124:52;5205:9;5199:16;5238:18;5230:6;5227:30;5224:50;;;5270:1;5267;5260:12;5224:50;5293:22;;5346:4;5338:13;;5334:27;-1:-1:-1;5324:55:136;;5375:1;5372;5365:12;5324:55;5408:2;5402:9;5434:18;5426:6;5423:30;5420:56;;;5456:18;;:::i;:::-;5498:57;5545:2;5522:17;;-1:-1:-1;;5518:31:136;5551:2;5514:40;5498:57;:::i;:::-;5578:6;5571:5;5564:21;5626:7;5621:2;5612:6;5608:2;5604:15;5600:24;5597:37;5594:57;;;5647:1;5644;5637:12;5594:57;5695:6;5690:2;5686;5682:11;5677:2;5670:5;5666:14;5660:42;5747:1;5722:18;;;5742:2;5718:27;5711:38;;;;5726:5;5023:756;-1:-1:-1;;;;5023:756:136:o",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.8.0 <0.9.0;\r\n\r\nimport {IWitPriceFeeds, IWitPriceFeedsTypes} from \"../interfaces/IWitPriceFeeds.sol\";\r\nimport {IWitPythChainlinkAggregator} from \"../interfaces/legacy/IWitPythChainlinkAggregator.sol\";\r\nimport {Witnet} from \"../libs/Witnet.sol\";\r\n\r\ncontract WitPythChainlinkAggregator\r\n    is\r\n        IWitPythChainlinkAggregator, \r\n        IWitPriceFeedsTypes\r\n{\r\n    bytes4  immutable public override id4;\r\n    bytes32 immutable public override priceId;\r\n    address immutable public override pyth;\r\n    address immutable public override witOracle;\r\n    \r\n    constructor(address _witOracle, bytes4 _id4) {\r\n        id4 = _id4;\r\n        priceId = IWitPriceFeeds(address(_witOracle)).lookupPriceFeedID(ID4.wrap(id4));\r\n        pyth = _witOracle;\r\n        witOracle = _witOracle;\r\n    }\r\n\r\n    function getAnswer(uint256) virtual public view returns (int256) {\r\n        return latestAnswer();\r\n    }\r\n\r\n    function latestAnswer() virtual public view returns (int256) {\r\n        IWitPriceFeeds.Price memory price = IWitPriceFeeds(witOracle).getPriceUnsafe(ID4.wrap(id4));\r\n        return int256(int64(price.price));\r\n    }\r\n\r\n    function latestRound() virtual public view returns (uint256) {\r\n        // use timestamp as the round id\r\n        return latestTimestamp();\r\n    }\r\n\r\n    function latestTimestamp() virtual public view returns (uint256) {\r\n        IWitPriceFeeds.Price memory price = IWitPriceFeeds(witOracle).getPriceUnsafe(ID4.wrap(id4));\r\n        return uint(Witnet.Timestamp.unwrap(price.timestamp));\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- IWitPythChainlinkAggregator -------------------------------------------------------------------------------\r\n\r\n    function decimals() virtual override public view returns (uint8) {\r\n        int8 _exponent = IWitPriceFeeds(msg.sender).lookupPriceFeedExponent(ID4.wrap(id4));\r\n        return (_exponent < 0 ? uint8(-_exponent) : uint8(_exponent));\r\n    }\r\n\r\n    function description() virtual override external view returns (string memory) {\r\n        return symbol();\r\n    }\r\n\r\n    function getRoundData(uint80 _roundId) \r\n        virtual override \r\n        external view\r\n        returns (uint80, int256, uint256, uint256, uint80)\r\n    {\r\n        IWitPriceFeeds.Price memory price = IWitPriceFeeds(witOracle).getPriceUnsafe(ID4.wrap(id4));\r\n        uint _timestamp = uint(Witnet.Timestamp.unwrap(price.timestamp));\r\n        return (\r\n            _roundId,\r\n            int(int64(price.price)),\r\n            _timestamp,\r\n            _timestamp,\r\n            _roundId\r\n        );\r\n    }\r\n\r\n    function latestRoundData()\r\n        virtual override\r\n        external view\r\n        returns (uint80, int256, uint256, uint256, uint80)\r\n    {\r\n        IWitPriceFeeds.Price memory price = IWitPriceFeeds(witOracle).getPriceUnsafe(ID4.wrap(id4));\r\n        uint80 _roundId = uint80(Witnet.Timestamp.unwrap(price.timestamp));\r\n        uint _timestamp = uint(Witnet.Timestamp.unwrap(price.timestamp));\r\n        return (\r\n            _roundId,\r\n            int(int64(price.price)),\r\n            _timestamp,\r\n            _timestamp,\r\n            _roundId\r\n        );\r\n    }\r\n\r\n    function symbol() override public view returns (string memory) {\r\n        return IWitPriceFeeds(address(witOracle)).lookupPriceFeedCaption(ID4.wrap(id4));\r\n    }\r\n\r\n    function version() virtual override external pure returns (uint256) {\r\n        return 3;\r\n    }\r\n}\r\n",
  "sourcePath": "C:\\Users\\guill\\github\\guidiaz\\witnet-solidity-bridge\\contracts\\mockups\\WitPythChainlinkAggregator.sol",
  "ast": {
    "absolutePath": "project:/contracts/mockups/WitPythChainlinkAggregator.sol",
    "exportedSymbols": {
      "IWitPriceFeeds": [
        27848
      ],
      "IWitPriceFeedsTypes": [
        28156
      ],
      "IWitPythChainlinkAggregator": [
        29664
      ],
      "WitPythChainlinkAggregator": [
        44805
      ],
      "Witnet": [
        40741
      ]
    },
    "id": 44806,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 44464,
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:122"
      },
      {
        "absolutePath": "project:/contracts/interfaces/IWitPriceFeeds.sol",
        "file": "../interfaces/IWitPriceFeeds.sol",
        "id": 44467,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 44806,
        "sourceUnit": 27849,
        "src": "70:85:122",
        "symbolAliases": [
          {
            "foreign": {
              "id": 44465,
              "name": "IWitPriceFeeds",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 27848,
              "src": "78:14:122",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 44466,
              "name": "IWitPriceFeedsTypes",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 28156,
              "src": "94:19:122",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/legacy/IWitPythChainlinkAggregator.sol",
        "file": "../interfaces/legacy/IWitPythChainlinkAggregator.sol",
        "id": 44469,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 44806,
        "sourceUnit": 29665,
        "src": "157:97:122",
        "symbolAliases": [
          {
            "foreign": {
              "id": 44468,
              "name": "IWitPythChainlinkAggregator",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 29664,
              "src": "165:27:122",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/libs/Witnet.sol",
        "file": "../libs/Witnet.sol",
        "id": 44471,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 44806,
        "sourceUnit": 40742,
        "src": "256:42:122",
        "symbolAliases": [
          {
            "foreign": {
              "id": 44470,
              "name": "Witnet",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 40741,
              "src": "264:6:122",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 44472,
              "name": "IWitPythChainlinkAggregator",
              "nameLocations": [
                "355:27:122"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 29664,
              "src": "355:27:122"
            },
            "id": 44473,
            "nodeType": "InheritanceSpecifier",
            "src": "355:27:122"
          },
          {
            "baseName": {
              "id": 44474,
              "name": "IWitPriceFeedsTypes",
              "nameLocations": [
                "394:19:122"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 28156,
              "src": "394:19:122"
            },
            "id": 44475,
            "nodeType": "InheritanceSpecifier",
            "src": "394:19:122"
          }
        ],
        "canonicalName": "WitPythChainlinkAggregator",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 44805,
        "linearizedBaseContracts": [
          44805,
          28156,
          29664,
          28524,
          28507
        ],
        "name": "WitPythChainlinkAggregator",
        "nameLocation": "311:26:122",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "baseFunctions": [
              29653
            ],
            "constant": false,
            "functionSelector": "e9159d64",
            "id": 44478,
            "mutability": "immutable",
            "name": "id4",
            "nameLocation": "456:3:122",
            "nodeType": "VariableDeclaration",
            "overrides": {
              "id": 44477,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "447:8:122"
            },
            "scope": 44805,
            "src": "422:37:122",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes4",
              "typeString": "bytes4"
            },
            "typeName": {
              "id": 44476,
              "name": "bytes4",
              "nodeType": "ElementaryTypeName",
              "src": "422:6:122",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28518
            ],
            "constant": false,
            "functionSelector": "31189334",
            "id": 44481,
            "mutability": "immutable",
            "name": "priceId",
            "nameLocation": "500:7:122",
            "nodeType": "VariableDeclaration",
            "overrides": {
              "id": 44480,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "491:8:122"
            },
            "scope": 44805,
            "src": "466:41:122",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 44479,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "466:7:122",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28523
            ],
            "constant": false,
            "functionSelector": "f98d06f0",
            "id": 44484,
            "mutability": "immutable",
            "name": "pyth",
            "nameLocation": "548:4:122",
            "nodeType": "VariableDeclaration",
            "overrides": {
              "id": 44483,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "539:8:122"
            },
            "scope": 44805,
            "src": "514:38:122",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 44482,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "514:7:122",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "public"
          },
          {
            "baseFunctions": [
              29663
            ],
            "constant": false,
            "functionSelector": "1014d375",
            "id": 44487,
            "mutability": "immutable",
            "name": "witOracle",
            "nameLocation": "593:9:122",
            "nodeType": "VariableDeclaration",
            "overrides": {
              "id": 44486,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "584:8:122"
            },
            "scope": 44805,
            "src": "559:43:122",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 44485,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "559:7:122",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 44521,
              "nodeType": "Block",
              "src": "660:179:122",
              "statements": [
                {
                  "expression": {
                    "id": 44496,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 44494,
                      "name": "id4",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44478,
                      "src": "671:3:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 44495,
                      "name": "_id4",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44491,
                      "src": "677:4:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      }
                    },
                    "src": "671:10:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "id": 44497,
                  "nodeType": "ExpressionStatement",
                  "src": "671:10:122"
                },
                {
                  "expression": {
                    "id": 44511,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 44498,
                      "name": "priceId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44481,
                      "src": "692:7:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "id": 44508,
                              "name": "id4",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44478,
                              "src": "765:3:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            ],
                            "expression": {
                              "id": 44506,
                              "name": "ID4",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28155,
                              "src": "756:3:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_userDefinedValueType$_ID4_$28155_$",
                                "typeString": "type(IWitPriceFeedsTypes.ID4)"
                              }
                            },
                            "id": 44507,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "760:4:122",
                            "memberName": "wrap",
                            "nodeType": "MemberAccess",
                            "src": "756:8:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_wrap_pure$_t_bytes4_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                              "typeString": "function (bytes4) pure returns (IWitPriceFeedsTypes.ID4)"
                            }
                          },
                          "id": 44509,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "756:13:122",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                            "typeString": "IWitPriceFeedsTypes.ID4"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                            "typeString": "IWitPriceFeedsTypes.ID4"
                          }
                        ],
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 44502,
                                  "name": "_witOracle",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 44489,
                                  "src": "725:10:122",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 44501,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "717:7:122",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": {
                                  "id": 44500,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "717:7:122",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 44503,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "717:19:122",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 44499,
                            "name": "IWitPriceFeeds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 27848,
                            "src": "702:14:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_IWitPriceFeeds_$27848_$",
                              "typeString": "type(contract IWitPriceFeeds)"
                            }
                          },
                          "id": 44504,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "702:35:122",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IWitPriceFeeds_$27848",
                            "typeString": "contract IWitPriceFeeds"
                          }
                        },
                        "id": 44505,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "738:17:122",
                        "memberName": "lookupPriceFeedID",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27825,
                        "src": "702:53:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_bytes32_$",
                          "typeString": "function (IWitPriceFeedsTypes.ID4) view external returns (bytes32)"
                        }
                      },
                      "id": 44510,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "702:68:122",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "692:78:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 44512,
                  "nodeType": "ExpressionStatement",
                  "src": "692:78:122"
                },
                {
                  "expression": {
                    "id": 44515,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 44513,
                      "name": "pyth",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44484,
                      "src": "781:4:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 44514,
                      "name": "_witOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44489,
                      "src": "788:10:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "781:17:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 44516,
                  "nodeType": "ExpressionStatement",
                  "src": "781:17:122"
                },
                {
                  "expression": {
                    "id": 44519,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 44517,
                      "name": "witOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44487,
                      "src": "809:9:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 44518,
                      "name": "_witOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44489,
                      "src": "821:10:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "809:22:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 44520,
                  "nodeType": "ExpressionStatement",
                  "src": "809:22:122"
                }
              ]
            },
            "id": 44522,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 44492,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44489,
                  "mutability": "mutable",
                  "name": "_witOracle",
                  "nameLocation": "635:10:122",
                  "nodeType": "VariableDeclaration",
                  "scope": 44522,
                  "src": "627:18:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44488,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "627:7:122",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44491,
                  "mutability": "mutable",
                  "name": "_id4",
                  "nameLocation": "654:4:122",
                  "nodeType": "VariableDeclaration",
                  "scope": 44522,
                  "src": "647:11:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 44490,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "647:6:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "626:33:122"
            },
            "returnParameters": {
              "id": 44493,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "660:0:122"
            },
            "scope": 44805,
            "src": "615:224:122",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 44532,
              "nodeType": "Block",
              "src": "912:40:122",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 44529,
                      "name": "latestAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44563,
                      "src": "930:12:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_int256_$",
                        "typeString": "function () view returns (int256)"
                      }
                    },
                    "id": 44530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "930:14:122",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 44528,
                  "id": 44531,
                  "nodeType": "Return",
                  "src": "923:21:122"
                }
              ]
            },
            "functionSelector": "b5ab58dc",
            "id": 44533,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getAnswer",
            "nameLocation": "856:9:122",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 44525,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44524,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44533,
                  "src": "866:7:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44523,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "866:7:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "865:9:122"
            },
            "returnParameters": {
              "id": 44528,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44527,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44533,
                  "src": "904:6:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 44526,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "904:6:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "903:8:122"
            },
            "scope": 44805,
            "src": "847:105:122",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 44562,
              "nodeType": "Block",
              "src": "1021:154:122",
              "statements": [
                {
                  "assignments": [
                    44542
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 44542,
                      "mutability": "mutable",
                      "name": "price",
                      "nameLocation": "1060:5:122",
                      "nodeType": "VariableDeclaration",
                      "scope": 44562,
                      "src": "1032:33:122",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                        "typeString": "struct IWitPriceFeedsTypes.Price"
                      },
                      "typeName": {
                        "id": 44541,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 44540,
                          "name": "IWitPriceFeeds.Price",
                          "nameLocations": [
                            "1032:14:122",
                            "1047:5:122"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 28105,
                          "src": "1032:20:122"
                        },
                        "referencedDeclaration": 28105,
                        "src": "1032:20:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Price_$28105_storage_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 44552,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 44549,
                            "name": "id4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44478,
                            "src": "1118:3:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 44547,
                            "name": "ID4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28155,
                            "src": "1109:3:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_ID4_$28155_$",
                              "typeString": "type(IWitPriceFeedsTypes.ID4)"
                            }
                          },
                          "id": 44548,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "1113:4:122",
                          "memberName": "wrap",
                          "nodeType": "MemberAccess",
                          "src": "1109:8:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_wrap_pure$_t_bytes4_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                            "typeString": "function (bytes4) pure returns (IWitPriceFeedsTypes.ID4)"
                          }
                        },
                        "id": 44550,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1109:13:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 44544,
                            "name": "witOracle",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44487,
                            "src": "1083:9:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 44543,
                          "name": "IWitPriceFeeds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27848,
                          "src": "1068:14:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IWitPriceFeeds_$27848_$",
                            "typeString": "type(contract IWitPriceFeeds)"
                          }
                        },
                        "id": 44545,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1068:25:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitPriceFeeds_$27848",
                          "typeString": "contract IWitPriceFeeds"
                        }
                      },
                      "id": 44546,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1094:14:122",
                      "memberName": "getPriceUnsafe",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27792,
                      "src": "1068:40:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_Price_$28105_memory_ptr_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4) view external returns (struct IWitPriceFeedsTypes.Price memory)"
                      }
                    },
                    "id": 44551,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1068:55:122",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Price memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1032:91:122"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 44557,
                              "name": "price",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44542,
                              "src": "1154:5:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                                "typeString": "struct IWitPriceFeedsTypes.Price memory"
                              }
                            },
                            "id": 44558,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1160:5:122",
                            "memberName": "price",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 28096,
                            "src": "1154:11:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          ],
                          "id": 44556,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1148:5:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int64_$",
                            "typeString": "type(int64)"
                          },
                          "typeName": {
                            "id": 44555,
                            "name": "int64",
                            "nodeType": "ElementaryTypeName",
                            "src": "1148:5:122",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 44559,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1148:18:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int64",
                          "typeString": "int64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int64",
                          "typeString": "int64"
                        }
                      ],
                      "id": 44554,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1141:6:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int256_$",
                        "typeString": "type(int256)"
                      },
                      "typeName": {
                        "id": 44553,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1141:6:122",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 44560,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1141:26:122",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 44537,
                  "id": 44561,
                  "nodeType": "Return",
                  "src": "1134:33:122"
                }
              ]
            },
            "functionSelector": "50d25bcd",
            "id": 44563,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "latestAnswer",
            "nameLocation": "969:12:122",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 44534,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "981:2:122"
            },
            "returnParameters": {
              "id": 44537,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44536,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44563,
                  "src": "1013:6:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 44535,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1013:6:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1012:8:122"
            },
            "scope": 44805,
            "src": "960:215:122",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 44571,
              "nodeType": "Block",
              "src": "1244:85:122",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 44568,
                      "name": "latestTimestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44603,
                      "src": "1304:15:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 44569,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1304:17:122",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 44567,
                  "id": 44570,
                  "nodeType": "Return",
                  "src": "1297:24:122"
                }
              ]
            },
            "functionSelector": "668a0f02",
            "id": 44572,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "latestRound",
            "nameLocation": "1192:11:122",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 44564,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1203:2:122"
            },
            "returnParameters": {
              "id": 44567,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44566,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44572,
                  "src": "1235:7:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44565,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1235:7:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1234:9:122"
            },
            "scope": 44805,
            "src": "1183:146:122",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 44602,
              "nodeType": "Block",
              "src": "1402:174:122",
              "statements": [
                {
                  "assignments": [
                    44581
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 44581,
                      "mutability": "mutable",
                      "name": "price",
                      "nameLocation": "1441:5:122",
                      "nodeType": "VariableDeclaration",
                      "scope": 44602,
                      "src": "1413:33:122",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                        "typeString": "struct IWitPriceFeedsTypes.Price"
                      },
                      "typeName": {
                        "id": 44580,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 44579,
                          "name": "IWitPriceFeeds.Price",
                          "nameLocations": [
                            "1413:14:122",
                            "1428:5:122"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 28105,
                          "src": "1413:20:122"
                        },
                        "referencedDeclaration": 28105,
                        "src": "1413:20:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Price_$28105_storage_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 44591,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 44588,
                            "name": "id4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44478,
                            "src": "1499:3:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 44586,
                            "name": "ID4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28155,
                            "src": "1490:3:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_ID4_$28155_$",
                              "typeString": "type(IWitPriceFeedsTypes.ID4)"
                            }
                          },
                          "id": 44587,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "1494:4:122",
                          "memberName": "wrap",
                          "nodeType": "MemberAccess",
                          "src": "1490:8:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_wrap_pure$_t_bytes4_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                            "typeString": "function (bytes4) pure returns (IWitPriceFeedsTypes.ID4)"
                          }
                        },
                        "id": 44589,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1490:13:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 44583,
                            "name": "witOracle",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44487,
                            "src": "1464:9:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 44582,
                          "name": "IWitPriceFeeds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27848,
                          "src": "1449:14:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IWitPriceFeeds_$27848_$",
                            "typeString": "type(contract IWitPriceFeeds)"
                          }
                        },
                        "id": 44584,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1449:25:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitPriceFeeds_$27848",
                          "typeString": "contract IWitPriceFeeds"
                        }
                      },
                      "id": 44585,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1475:14:122",
                      "memberName": "getPriceUnsafe",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27792,
                      "src": "1449:40:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_Price_$28105_memory_ptr_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4) view external returns (struct IWitPriceFeedsTypes.Price memory)"
                      }
                    },
                    "id": 44590,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1449:55:122",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Price memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1413:91:122"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 44597,
                              "name": "price",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44581,
                              "src": "1551:5:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                                "typeString": "struct IWitPriceFeedsTypes.Price memory"
                              }
                            },
                            "id": 44598,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1557:9:122",
                            "memberName": "timestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 28101,
                            "src": "1551:15:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          ],
                          "expression": {
                            "expression": {
                              "id": 44594,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "1527:6:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 44595,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1534:9:122",
                            "memberName": "Timestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37157,
                            "src": "1527:16:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                              "typeString": "type(Witnet.Timestamp)"
                            }
                          },
                          "id": 44596,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "1544:6:122",
                          "memberName": "unwrap",
                          "nodeType": "MemberAccess",
                          "src": "1527:23:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                            "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                          }
                        },
                        "id": 44599,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1527:40:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 44593,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1522:4:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": {
                        "id": 44592,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1522:4:122",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 44600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1522:46:122",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 44576,
                  "id": 44601,
                  "nodeType": "Return",
                  "src": "1515:53:122"
                }
              ]
            },
            "functionSelector": "8205bf6a",
            "id": 44603,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "latestTimestamp",
            "nameLocation": "1346:15:122",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 44573,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1361:2:122"
            },
            "returnParameters": {
              "id": 44576,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44575,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44603,
                  "src": "1393:7:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44574,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1393:7:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1392:9:122"
            },
            "scope": 44805,
            "src": "1337:239:122",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28468
            ],
            "body": {
              "id": 44638,
              "nodeType": "Block",
              "src": "1895:173:122",
              "statements": [
                {
                  "assignments": [
                    44611
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 44611,
                      "mutability": "mutable",
                      "name": "_exponent",
                      "nameLocation": "1911:9:122",
                      "nodeType": "VariableDeclaration",
                      "scope": 44638,
                      "src": "1906:14:122",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int8",
                        "typeString": "int8"
                      },
                      "typeName": {
                        "id": 44610,
                        "name": "int8",
                        "nodeType": "ElementaryTypeName",
                        "src": "1906:4:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int8",
                          "typeString": "int8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 44622,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 44619,
                            "name": "id4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44478,
                            "src": "1983:3:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 44617,
                            "name": "ID4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28155,
                            "src": "1974:3:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_ID4_$28155_$",
                              "typeString": "type(IWitPriceFeedsTypes.ID4)"
                            }
                          },
                          "id": 44618,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "1978:4:122",
                          "memberName": "wrap",
                          "nodeType": "MemberAccess",
                          "src": "1974:8:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_wrap_pure$_t_bytes4_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                            "typeString": "function (bytes4) pure returns (IWitPriceFeedsTypes.ID4)"
                          }
                        },
                        "id": 44620,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1974:13:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "expression": {
                              "id": 44613,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "1938:3:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 44614,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1942:6:122",
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "1938:10:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 44612,
                          "name": "IWitPriceFeeds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27848,
                          "src": "1923:14:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IWitPriceFeeds_$27848_$",
                            "typeString": "type(contract IWitPriceFeeds)"
                          }
                        },
                        "id": 44615,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1923:26:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitPriceFeeds_$27848",
                          "typeString": "contract IWitPriceFeeds"
                        }
                      },
                      "id": 44616,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1950:23:122",
                      "memberName": "lookupPriceFeedExponent",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27817,
                      "src": "1923:50:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_int8_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4) view external returns (int8)"
                      }
                    },
                    "id": 44621,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1923:65:122",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int8",
                      "typeString": "int8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1906:82:122"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_int8",
                            "typeString": "int8"
                          },
                          "id": 44625,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44623,
                            "name": "_exponent",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44611,
                            "src": "2007:9:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int8",
                              "typeString": "int8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 44624,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2019:1:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "2007:13:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "arguments": [
                            {
                              "id": 44633,
                              "name": "_exponent",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44611,
                              "src": "2049:9:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int8",
                                "typeString": "int8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int8",
                                "typeString": "int8"
                              }
                            ],
                            "id": 44632,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2043:5:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint8_$",
                              "typeString": "type(uint8)"
                            },
                            "typeName": {
                              "id": 44631,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "2043:5:122",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 44634,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2043:16:122",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "id": 44635,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "2007:52:122",
                        "trueExpression": {
                          "arguments": [
                            {
                              "id": 44629,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "-",
                              "prefix": true,
                              "src": "2029:10:122",
                              "subExpression": {
                                "id": 44628,
                                "name": "_exponent",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 44611,
                                "src": "2030:9:122",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int8",
                                  "typeString": "int8"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_int8",
                                "typeString": "int8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int8",
                                "typeString": "int8"
                              }
                            ],
                            "id": 44627,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2023:5:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint8_$",
                              "typeString": "type(uint8)"
                            },
                            "typeName": {
                              "id": 44626,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "2023:5:122",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 44630,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2023:17:122",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "id": 44636,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "2006:54:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 44609,
                  "id": 44637,
                  "nodeType": "Return",
                  "src": "1999:61:122"
                }
              ]
            },
            "documentation": {
              "id": 44604,
              "nodeType": "StructuredDocumentation",
              "src": "1586:238:122",
              "text": "===============================================================================================================\n --- IWitPythChainlinkAggregator -------------------------------------------------------------------------------"
            },
            "functionSelector": "313ce567",
            "id": 44639,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decimals",
            "nameLocation": "1839:8:122",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 44606,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1858:8:122"
            },
            "parameters": {
              "id": 44605,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1847:2:122"
            },
            "returnParameters": {
              "id": 44609,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44608,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44639,
                  "src": "1888:5:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 44607,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1888:5:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1887:7:122"
            },
            "scope": 44805,
            "src": "1830:238:122",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28473
            ],
            "body": {
              "id": 44648,
              "nodeType": "Block",
              "src": "2154:34:122",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 44645,
                      "name": "symbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44795,
                      "src": "2172:6:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$",
                        "typeString": "function () view returns (string memory)"
                      }
                    },
                    "id": 44646,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2172:8:122",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 44644,
                  "id": 44647,
                  "nodeType": "Return",
                  "src": "2165:15:122"
                }
              ]
            },
            "functionSelector": "7284e416",
            "id": 44649,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "description",
            "nameLocation": "2085:11:122",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 44641,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2107:8:122"
            },
            "parameters": {
              "id": 44640,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2096:2:122"
            },
            "returnParameters": {
              "id": 44644,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44643,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44649,
                  "src": "2139:13:122",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 44642,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2139:6:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2138:15:122"
            },
            "scope": 44805,
            "src": "2076:112:122",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              28488
            ],
            "body": {
              "id": 44706,
              "nodeType": "Block",
              "src": "2351:348:122",
              "statements": [
                {
                  "assignments": [
                    44669
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 44669,
                      "mutability": "mutable",
                      "name": "price",
                      "nameLocation": "2390:5:122",
                      "nodeType": "VariableDeclaration",
                      "scope": 44706,
                      "src": "2362:33:122",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                        "typeString": "struct IWitPriceFeedsTypes.Price"
                      },
                      "typeName": {
                        "id": 44668,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 44667,
                          "name": "IWitPriceFeeds.Price",
                          "nameLocations": [
                            "2362:14:122",
                            "2377:5:122"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 28105,
                          "src": "2362:20:122"
                        },
                        "referencedDeclaration": 28105,
                        "src": "2362:20:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Price_$28105_storage_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 44679,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 44676,
                            "name": "id4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44478,
                            "src": "2448:3:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 44674,
                            "name": "ID4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28155,
                            "src": "2439:3:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_ID4_$28155_$",
                              "typeString": "type(IWitPriceFeedsTypes.ID4)"
                            }
                          },
                          "id": 44675,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "2443:4:122",
                          "memberName": "wrap",
                          "nodeType": "MemberAccess",
                          "src": "2439:8:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_wrap_pure$_t_bytes4_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                            "typeString": "function (bytes4) pure returns (IWitPriceFeedsTypes.ID4)"
                          }
                        },
                        "id": 44677,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2439:13:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 44671,
                            "name": "witOracle",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44487,
                            "src": "2413:9:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 44670,
                          "name": "IWitPriceFeeds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27848,
                          "src": "2398:14:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IWitPriceFeeds_$27848_$",
                            "typeString": "type(contract IWitPriceFeeds)"
                          }
                        },
                        "id": 44672,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2398:25:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitPriceFeeds_$27848",
                          "typeString": "contract IWitPriceFeeds"
                        }
                      },
                      "id": 44673,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2424:14:122",
                      "memberName": "getPriceUnsafe",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27792,
                      "src": "2398:40:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_Price_$28105_memory_ptr_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4) view external returns (struct IWitPriceFeedsTypes.Price memory)"
                      }
                    },
                    "id": 44678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2398:55:122",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Price memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2362:91:122"
                },
                {
                  "assignments": [
                    44681
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 44681,
                      "mutability": "mutable",
                      "name": "_timestamp",
                      "nameLocation": "2469:10:122",
                      "nodeType": "VariableDeclaration",
                      "scope": 44706,
                      "src": "2464:15:122",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 44680,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "2464:4:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 44691,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 44687,
                              "name": "price",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44669,
                              "src": "2511:5:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                                "typeString": "struct IWitPriceFeedsTypes.Price memory"
                              }
                            },
                            "id": 44688,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2517:9:122",
                            "memberName": "timestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 28101,
                            "src": "2511:15:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          ],
                          "expression": {
                            "expression": {
                              "id": 44684,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "2487:6:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 44685,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2494:9:122",
                            "memberName": "Timestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37157,
                            "src": "2487:16:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                              "typeString": "type(Witnet.Timestamp)"
                            }
                          },
                          "id": 44686,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "2504:6:122",
                          "memberName": "unwrap",
                          "nodeType": "MemberAccess",
                          "src": "2487:23:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                            "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                          }
                        },
                        "id": 44689,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2487:40:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 44683,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "2482:4:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": {
                        "id": 44682,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "2482:4:122",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 44690,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2482:46:122",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2464:64:122"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "id": 44692,
                        "name": "_roundId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44651,
                        "src": "2561:8:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 44697,
                                  "name": "price",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 44669,
                                  "src": "2594:5:122",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                                    "typeString": "struct IWitPriceFeedsTypes.Price memory"
                                  }
                                },
                                "id": 44698,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "2600:5:122",
                                "memberName": "price",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 28096,
                                "src": "2594:11:122",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "id": 44696,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2588:5:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int64_$",
                                "typeString": "type(int64)"
                              },
                              "typeName": {
                                "id": 44695,
                                "name": "int64",
                                "nodeType": "ElementaryTypeName",
                                "src": "2588:5:122",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 44699,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2588:18:122",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int64",
                              "typeString": "int64"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int64",
                              "typeString": "int64"
                            }
                          ],
                          "id": 44694,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2584:3:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 44693,
                            "name": "int",
                            "nodeType": "ElementaryTypeName",
                            "src": "2584:3:122",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 44700,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2584:23:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "id": 44701,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44681,
                        "src": "2622:10:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 44702,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44681,
                        "src": "2647:10:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 44703,
                        "name": "_roundId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44651,
                        "src": "2672:8:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        }
                      }
                    ],
                    "id": 44704,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "2546:145:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$",
                      "typeString": "tuple(uint80,int256,uint256,uint256,uint80)"
                    }
                  },
                  "functionReturnParameters": 44664,
                  "id": 44705,
                  "nodeType": "Return",
                  "src": "2539:152:122"
                }
              ]
            },
            "functionSelector": "9a6fc8f5",
            "id": 44707,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRoundData",
            "nameLocation": "2205:12:122",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 44653,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2253:8:122"
            },
            "parameters": {
              "id": 44652,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44651,
                  "mutability": "mutable",
                  "name": "_roundId",
                  "nameLocation": "2225:8:122",
                  "nodeType": "VariableDeclaration",
                  "scope": 44707,
                  "src": "2218:15:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 44650,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "2218:6:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2217:17:122"
            },
            "returnParameters": {
              "id": 44664,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44655,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44707,
                  "src": "2304:6:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 44654,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "2304:6:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44657,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44707,
                  "src": "2312:6:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 44656,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2312:6:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44659,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44707,
                  "src": "2320:7:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44658,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2320:7:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44661,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44707,
                  "src": "2329:7:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44660,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2329:7:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44663,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44707,
                  "src": "2338:6:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 44662,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "2338:6:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2303:42:122"
            },
            "scope": 44805,
            "src": "2196:503:122",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              28501
            ],
            "body": {
              "id": 44774,
              "nodeType": "Block",
              "src": "2848:425:122",
              "statements": [
                {
                  "assignments": [
                    44725
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 44725,
                      "mutability": "mutable",
                      "name": "price",
                      "nameLocation": "2887:5:122",
                      "nodeType": "VariableDeclaration",
                      "scope": 44774,
                      "src": "2859:33:122",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                        "typeString": "struct IWitPriceFeedsTypes.Price"
                      },
                      "typeName": {
                        "id": 44724,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 44723,
                          "name": "IWitPriceFeeds.Price",
                          "nameLocations": [
                            "2859:14:122",
                            "2874:5:122"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 28105,
                          "src": "2859:20:122"
                        },
                        "referencedDeclaration": 28105,
                        "src": "2859:20:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Price_$28105_storage_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 44735,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 44732,
                            "name": "id4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44478,
                            "src": "2945:3:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 44730,
                            "name": "ID4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28155,
                            "src": "2936:3:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_ID4_$28155_$",
                              "typeString": "type(IWitPriceFeedsTypes.ID4)"
                            }
                          },
                          "id": 44731,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "2940:4:122",
                          "memberName": "wrap",
                          "nodeType": "MemberAccess",
                          "src": "2936:8:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_wrap_pure$_t_bytes4_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                            "typeString": "function (bytes4) pure returns (IWitPriceFeedsTypes.ID4)"
                          }
                        },
                        "id": 44733,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2936:13:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 44727,
                            "name": "witOracle",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44487,
                            "src": "2910:9:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 44726,
                          "name": "IWitPriceFeeds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27848,
                          "src": "2895:14:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IWitPriceFeeds_$27848_$",
                            "typeString": "type(contract IWitPriceFeeds)"
                          }
                        },
                        "id": 44728,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2895:25:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitPriceFeeds_$27848",
                          "typeString": "contract IWitPriceFeeds"
                        }
                      },
                      "id": 44729,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2921:14:122",
                      "memberName": "getPriceUnsafe",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27792,
                      "src": "2895:40:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_Price_$28105_memory_ptr_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4) view external returns (struct IWitPriceFeedsTypes.Price memory)"
                      }
                    },
                    "id": 44734,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2895:55:122",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Price memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2859:91:122"
                },
                {
                  "assignments": [
                    44737
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 44737,
                      "mutability": "mutable",
                      "name": "_roundId",
                      "nameLocation": "2968:8:122",
                      "nodeType": "VariableDeclaration",
                      "scope": 44774,
                      "src": "2961:15:122",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint80",
                        "typeString": "uint80"
                      },
                      "typeName": {
                        "id": 44736,
                        "name": "uint80",
                        "nodeType": "ElementaryTypeName",
                        "src": "2961:6:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 44747,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 44743,
                              "name": "price",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44725,
                              "src": "3010:5:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                                "typeString": "struct IWitPriceFeedsTypes.Price memory"
                              }
                            },
                            "id": 44744,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3016:9:122",
                            "memberName": "timestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 28101,
                            "src": "3010:15:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          ],
                          "expression": {
                            "expression": {
                              "id": 44740,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "2986:6:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 44741,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2993:9:122",
                            "memberName": "Timestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37157,
                            "src": "2986:16:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                              "typeString": "type(Witnet.Timestamp)"
                            }
                          },
                          "id": 44742,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "3003:6:122",
                          "memberName": "unwrap",
                          "nodeType": "MemberAccess",
                          "src": "2986:23:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                            "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                          }
                        },
                        "id": 44745,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2986:40:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 44739,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "2979:6:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint80_$",
                        "typeString": "type(uint80)"
                      },
                      "typeName": {
                        "id": 44738,
                        "name": "uint80",
                        "nodeType": "ElementaryTypeName",
                        "src": "2979:6:122",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 44746,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2979:48:122",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2961:66:122"
                },
                {
                  "assignments": [
                    44749
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 44749,
                      "mutability": "mutable",
                      "name": "_timestamp",
                      "nameLocation": "3043:10:122",
                      "nodeType": "VariableDeclaration",
                      "scope": 44774,
                      "src": "3038:15:122",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 44748,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "3038:4:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 44759,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 44755,
                              "name": "price",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44725,
                              "src": "3085:5:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                                "typeString": "struct IWitPriceFeedsTypes.Price memory"
                              }
                            },
                            "id": 44756,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3091:9:122",
                            "memberName": "timestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 28101,
                            "src": "3085:15:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          ],
                          "expression": {
                            "expression": {
                              "id": 44752,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "3061:6:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 44753,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3068:9:122",
                            "memberName": "Timestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37157,
                            "src": "3061:16:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                              "typeString": "type(Witnet.Timestamp)"
                            }
                          },
                          "id": 44754,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "3078:6:122",
                          "memberName": "unwrap",
                          "nodeType": "MemberAccess",
                          "src": "3061:23:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                            "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                          }
                        },
                        "id": 44757,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3061:40:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 44751,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "3056:4:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": {
                        "id": 44750,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "3056:4:122",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 44758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3056:46:122",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3038:64:122"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "id": 44760,
                        "name": "_roundId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44737,
                        "src": "3135:8:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 44765,
                                  "name": "price",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 44725,
                                  "src": "3168:5:122",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                                    "typeString": "struct IWitPriceFeedsTypes.Price memory"
                                  }
                                },
                                "id": 44766,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "3174:5:122",
                                "memberName": "price",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 28096,
                                "src": "3168:11:122",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "id": 44764,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3162:5:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int64_$",
                                "typeString": "type(int64)"
                              },
                              "typeName": {
                                "id": 44763,
                                "name": "int64",
                                "nodeType": "ElementaryTypeName",
                                "src": "3162:5:122",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 44767,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3162:18:122",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int64",
                              "typeString": "int64"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int64",
                              "typeString": "int64"
                            }
                          ],
                          "id": 44762,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3158:3:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 44761,
                            "name": "int",
                            "nodeType": "ElementaryTypeName",
                            "src": "3158:3:122",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 44768,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3158:23:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "id": 44769,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44749,
                        "src": "3196:10:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 44770,
                        "name": "_timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44749,
                        "src": "3221:10:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 44771,
                        "name": "_roundId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44737,
                        "src": "3246:8:122",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        }
                      }
                    ],
                    "id": 44772,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "3120:145:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$",
                      "typeString": "tuple(uint80,int256,uint256,uint256,uint80)"
                    }
                  },
                  "functionReturnParameters": 44720,
                  "id": 44773,
                  "nodeType": "Return",
                  "src": "3113:152:122"
                }
              ]
            },
            "functionSelector": "feaf968c",
            "id": 44775,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "latestRoundData",
            "nameLocation": "2716:15:122",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 44709,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2751:8:122"
            },
            "parameters": {
              "id": 44708,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2731:2:122"
            },
            "returnParameters": {
              "id": 44720,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44711,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44775,
                  "src": "2801:6:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 44710,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "2801:6:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44713,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44775,
                  "src": "2809:6:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 44712,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2809:6:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44715,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44775,
                  "src": "2817:7:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44714,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2817:7:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44717,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44775,
                  "src": "2826:7:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44716,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2826:7:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44719,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44775,
                  "src": "2835:6:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 44718,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "2835:6:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2800:42:122"
            },
            "scope": 44805,
            "src": "2707:566:122",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              29658
            ],
            "body": {
              "id": 44794,
              "nodeType": "Block",
              "src": "3344:98:122",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 44790,
                            "name": "id4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44478,
                            "src": "3429:3:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 44788,
                            "name": "ID4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28155,
                            "src": "3420:3:122",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_ID4_$28155_$",
                              "typeString": "type(IWitPriceFeedsTypes.ID4)"
                            }
                          },
                          "id": 44789,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "3424:4:122",
                          "memberName": "wrap",
                          "nodeType": "MemberAccess",
                          "src": "3420:8:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_wrap_pure$_t_bytes4_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                            "typeString": "function (bytes4) pure returns (IWitPriceFeedsTypes.ID4)"
                          }
                        },
                        "id": 44791,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3420:13:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 44784,
                                "name": "witOracle",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 44487,
                                "src": "3385:9:122",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 44783,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3377:7:122",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 44782,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "3377:7:122",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 44785,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3377:18:122",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 44781,
                          "name": "IWitPriceFeeds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27848,
                          "src": "3362:14:122",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IWitPriceFeeds_$27848_$",
                            "typeString": "type(contract IWitPriceFeeds)"
                          }
                        },
                        "id": 44786,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3362:34:122",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitPriceFeeds_$27848",
                          "typeString": "contract IWitPriceFeeds"
                        }
                      },
                      "id": 44787,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3397:22:122",
                      "memberName": "lookupPriceFeedCaption",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27809,
                      "src": "3362:57:122",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4) view external returns (string memory)"
                      }
                    },
                    "id": 44792,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3362:72:122",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 44780,
                  "id": 44793,
                  "nodeType": "Return",
                  "src": "3355:79:122"
                }
              ]
            },
            "functionSelector": "95d89b41",
            "id": 44795,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "symbol",
            "nameLocation": "3290:6:122",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 44777,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3299:8:122"
            },
            "parameters": {
              "id": 44776,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3296:2:122"
            },
            "returnParameters": {
              "id": 44780,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44779,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44795,
                  "src": "3329:13:122",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 44778,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3329:6:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3328:15:122"
            },
            "scope": 44805,
            "src": "3281:161:122",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28506
            ],
            "body": {
              "id": 44803,
              "nodeType": "Block",
              "src": "3518:27:122",
              "statements": [
                {
                  "expression": {
                    "hexValue": "33",
                    "id": 44801,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3536:1:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_3_by_1",
                      "typeString": "int_const 3"
                    },
                    "value": "3"
                  },
                  "functionReturnParameters": 44800,
                  "id": 44802,
                  "nodeType": "Return",
                  "src": "3529:8:122"
                }
              ]
            },
            "functionSelector": "54fd4d50",
            "id": 44804,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "version",
            "nameLocation": "3459:7:122",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 44797,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3477:8:122"
            },
            "parameters": {
              "id": 44796,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3466:2:122"
            },
            "returnParameters": {
              "id": 44800,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44799,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44804,
                  "src": "3509:7:122",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44798,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3509:7:122",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3508:9:122"
            },
            "scope": 44805,
            "src": "3450:95:122",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "external"
          }
        ],
        "scope": 44806,
        "src": "302:3246:122",
        "usedErrors": [],
        "usedEvents": []
      }
    ],
    "src": "35:3515:122"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.30+commit.73712a01.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-10-15T14:34:46.034Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {
      "decimals()": {
        "notice": "=============================================================================================================== --- IWitPythChainlinkAggregator -------------------------------------------------------------------------------"
      }
    },
    "version": 1
  }
}