{
  "contractName": "MockERC1155CreatorExtensionBurnable",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "AdminApproved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "AdminRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "approveAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAdmins",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "admins",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "isAdmin",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "mintNew",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "revokeAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        },
        {
          "internalType": "bool",
          "name": "identical",
          "type": "bool"
        }
      ],
      "name": "setBaseTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setBaseTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "prefix",
          "type": "string"
        }
      ],
      "name": "setTokenURIPrefix",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "testMintNew",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "testMintExisting",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "mintedTokens",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "burntTokens",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "onBurn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AdminApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AdminRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"approveAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burntTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAdmins\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"isAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"mintNew\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintedTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"onBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"revokeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"identical\",\"type\":\"bool\"}],\"name\":\"setBaseTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setBaseTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"prefix\",\"type\":\"string\"}],\"name\":\"setTokenURIPrefix\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"testMintExisting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"testMintNew\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approveAdmin(address)\":{\"details\":\"See {IAdminControl-approveAdmin}.\"},\"getAdmins()\":{\"details\":\"See {IAdminControl-getAdmins}.\"},\"isAdmin(address)\":{\"details\":\"See {IAdminControl-isAdmin}.\"},\"mintNew(address,address[],uint256[],string[])\":{\"details\":\"batch mint a token\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"revokeAdmin(address)\":{\"details\":\"See {IAdminControl-revokeAdmin}.\"},\"setBaseTokenURI(address,string)\":{\"details\":\"See {ICreatorExtensionBasic-setBaseTokenURI}.\"},\"setBaseTokenURI(address,string,bool)\":{\"details\":\"See {ICreatorExtensionBasic-setBaseTokenURI}.\"},\"setTokenURI(address,uint256,string)\":{\"details\":\"See {ICreatorExtensionBasic-setTokenURI}.\"},\"setTokenURI(address,uint256[],string[])\":{\"details\":\"See {ICreatorExtensionBasic-setTokenURI}.\"},\"setTokenURIPrefix(address,string)\":{\"details\":\"See {ICreatorExtensionBasic-setTokenURIPrefix}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/mocks/MockERC1155CreatorExtensionBurnable.sol\":\"MockERC1155CreatorExtensionBurnable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":25},\"remappings\":[]},\"sources\":{\"@manifoldxyz/libraries-solidity/contracts/access/AdminControl.sol\":{\"keccak256\":\"0xaed5e7784e33745ab1b16f1d87b22084a8b25d531c1dcb8dc41fc2a89e2617da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44837a9cc639062b2d7424a10e9d579b8d3a9bc1cefede2cfbb917bee8f452ae\",\"dweb:/ipfs/QmburkqmRDZYWjKPRUynhdfkAfP5QDKcXH4WCbH1JC8UDq\"]},\"@manifoldxyz/libraries-solidity/contracts/access/IAdminControl.sol\":{\"keccak256\":\"0x7cc2e4e7d9052532f445e62ec1fa2f05cc0f5d1d8ee1fea913b43a132277bf2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://266618317d0654fe209b5450b8b5afa3a4a8d41294a2b37ddbae540099859887\",\"dweb:/ipfs/QmYksDqoxhachoqZquXGtjfiuAWJ1rxAKLtUYPL3YboBkE\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010\",\"dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x0812bc73d6e30558840122fa48d6f64ae978ccc1b1fc42e616bac190c6360f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d95a53b7e19ca1d46043eaad8967b6e0b02aab2b5fefc2108bfa6d1ad425f5b\",\"dweb:/ipfs/QmQq7AUGT9juE3hun2Wy7r2BDoDBFdBn43DVwhJpK2StLV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"project:/contracts/core/CreatorCore.sol\":{\"keccak256\":\"0x6e8b20c32d6122ed1d23af683260ea242f1197dc95b063b63ccfac5b90e65f31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bffa862c93d614e9d5727ff595cb8595dbb9eae43bfdf06f65c7331aec09c268\",\"dweb:/ipfs/QmUsPC55S2vdfQWL3HQTYDz66yRFhdbPGCjr1NYyxBT83P\"]},\"project:/contracts/core/ICreatorCore.sol\":{\"keccak256\":\"0x6bdcb757953594d3a259f1d68ec3d208ca42dba02115f08a6e32e2936ccb0349\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd1853dabcd57eb9b735b3991cf59259cd28cdeca1353495b5c59dc0db2d85df\",\"dweb:/ipfs/QmfJLFZ7RoMvdR7kJLR7QmqreS1x5VNJSa7xvjVsC4mXte\"]},\"project:/contracts/core/IERC1155CreatorCore.sol\":{\"keccak256\":\"0xc91d0050b622fbb41b7516c6a8c75ab6236e6a52feab681d36fb75b8b49fc8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f045081bb40c91837c076530bb07b9f8b7fa77cbd1191748a12920f01f1678f8\",\"dweb:/ipfs/QmP5kx53wBz2eUqZV26ttYJmsHP7R9n3rF6dAbTjVPh5gL\"]},\"project:/contracts/extensions/CreatorExtension.sol\":{\"keccak256\":\"0x36fe8d17e2364675e2bdd3fc6539976613cac057db580f3d43a202865f7f5cc9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a6f47309d37ef8dcc76802ab2c8a1500b2160099c9e368f6ac0bf05175e0b97\",\"dweb:/ipfs/QmbyMW37myT5wuQuAjTcna7AuEn8b5EgUh2sPqR9VSTF3B\"]},\"project:/contracts/extensions/CreatorExtensionBasic.sol\":{\"keccak256\":\"0x52c23a33eac9e48136dd50b34095faf86ac62d8e979d030d9050c635ab9619a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://589e312efc098997379a8c133b79dde68cd9e14a6f261a8ef4bb7e24a7cc38a5\",\"dweb:/ipfs/Qmasss69Fxvcpe55jjhMgK9XADKzuKzqLq6ByZYWNbzVgs\"]},\"project:/contracts/extensions/ERC1155/ERC1155CreatorExtensionBurnable.sol\":{\"keccak256\":\"0xfa71a8f5868896c8ecc431a0ae0eec032a95d04f9ac4c60d42bf3acc4a28e1d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adb48c495e666b04bd0afe1505e8f1ea3dde3f8067d8097ec25bc4ca8ffc06f0\",\"dweb:/ipfs/QmYotpJjLSfQfVAutPYqNXhwRjBfwVE4MrJfNBgA5wTeYb\"]},\"project:/contracts/extensions/ERC1155/IERC1155CreatorExtensionBurnable.sol\":{\"keccak256\":\"0xc274a67fd639f490659aae3c188b7eaef5f819367f61b058e547681c1410e22f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2862472b3f417e447faa442cf27a1ea33cea678ff4f64b4cc99102d5d1e6bfb8\",\"dweb:/ipfs/QmepVRQniqf5hpSWgptfoxbYw546s9L6uo9PiobsStxJ7D\"]},\"project:/contracts/extensions/ICreatorExtensionBasic.sol\":{\"keccak256\":\"0x2cedecb4e700effb573513e340a7fc13073452419d690ed42d81870debcdbca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc82e046ee568bcdc13052b78f3a56e78f4cc66ce7ea46ac34ff437dbb800f61\",\"dweb:/ipfs/Qmedo8matTotr8fbk8dsbUPAU43gXWUJYZnWia7M7eCqKc\"]},\"project:/contracts/extensions/ICreatorExtensionRoyalties.sol\":{\"keccak256\":\"0xf61dcf7e6bc3e49e629630ad28377f079a31b154ecd0e604d1c0a51ae2a057f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fda5e6d49a47fbe347ed9198c1fff5555bd687a3a73d2a9f45d5c3a2d053e40\",\"dweb:/ipfs/QmdrLJ3rscxvpMTjdRp1FyhPtYDTDL1CCQyhFeLFuFkFXH\"]},\"project:/contracts/extensions/ICreatorExtensionTokenURI.sol\":{\"keccak256\":\"0x6c8ca804ee7dea9d78f0dacdd9233b1b75ca2b2fa517f52f0fdf6beb34780a51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a04a6f0cce2bbdb022a8125e147519c7fbaa89692c8f0cfee69a67a2956316f\",\"dweb:/ipfs/QmdUxwBEnFshm1j5FEcJctC7DbFWUznis2LaPcKR7FEZX7\"]},\"project:/contracts/mocks/MockERC1155CreatorExtensionBurnable.sol\":{\"keccak256\":\"0xaea937069ceccaf24c99f1b0fa0536a06d93bb7cda3606f25f61b72d502cbaea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://033436afcc09fe194ff5f46f50aedf6a0a45ed97ac58453752980fdd92ad828b\",\"dweb:/ipfs/QmWGsNnCdNGKok2dDgYyoDBScKrHPscJ9NfqnsYNRWQ98f\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b50604051611a9f380380611a9f83398101604081905261002f916100ad565b6100383361005d565b600680546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b6119b3806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100f15760003560e01c806301ffc9a7146100f657806324d7806c1461011e57806324d8a510146101315780632d3456701461015f57806331ae450b146101745780634aec8cc5146101895780634c5cfbf21461019c5780634e5786bf146101af5780636d73e669146101c2578063715018a6146101d557806372ebee8e146101dd5780637b8deca0146101f05780638d75fe05146102035780638da5cb5b14610218578063aaa9883b14610238578063d36c4bc71461024b578063d8a73fdb1461025e578063f2fde38b14610271578063f753987614610284575b600080fd5b610109610104366004611101565b610297565b60405190151581526020015b60405180910390f35b61010961012c366004611147565b6102b7565b61015161013f366004611162565b60009081526005602052604090205490565b604051908152602001610115565b61017261016d366004611147565b6102e6565b005b61017c610344565b604051610115919061117b565b610172610197366004611213565b6103f2565b6101726101aa3660046112ed565b610467565b6101726101bd366004611357565b61053b565b6101726101d0366004611147565b6105d8565b610172610630565b6101726101eb3660046113b0565b610644565b6101726101fe366004611402565b610716565b61020b610796565b6040516101159190611482565b6102206107ee565b6040516001600160a01b039091168152602001610115565b610172610246366004611402565b6107fd565b61020b6102593660046114ba565b6108d5565b61017261026c3660046113b0565b610932565b61017261027f366004611147565b610a10565b610172610292366004611213565b610a86565b60006102a282610afa565b806102b157506102b182610b1f565b92915050565b6000816001600160a01b03166102cb6107ee565b6001600160a01b031614806102b157506102b1600183610b44565b6102ee610b69565b6102f9600182610b44565b156103415760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a361033f600182610bc8565b505b50565b60606103506001610bdd565b6001600160401b0381111561036757610367611564565b604051908082528060200260200182016040528015610390578160200160208202803683370190505b50905060005b6103a06001610bdd565b8110156103ee576103b2600182610be7565b8282815181106103c4576103c461157a565b6001600160a01b0390921660209283029190910190910152806103e6816115a6565b915050610396565b5090565b600654600090610410906001600160a01b0316888888888888610bf3565b905060005b815181101561045d5760048282815181106104325761043261157a565b6020908102919091018101518254600181810185556000948552929093209092019190915501610415565b5050505050505050565b336104706107ee565b6001600160a01b0316148061048b575061048b600133610b44565b6104b05760405162461bcd60e51b81526004016104a7906115bf565b60405180910390fd5b6104c1846314d9799760e21b610d58565b6104dd5760405162461bcd60e51b81526004016104a790611603565b60405163105b981960e31b81526001600160a01b038516906382dcc0c89061050d90869086908690600401611675565b600060405180830381600087803b15801561052757600080fd5b505af115801561045d573d6000803e3d6000fd5b336105446107ee565b6001600160a01b0316148061055f575061055f600133610b44565b61057b5760405162461bcd60e51b81526004016104a7906115bf565b61058c846314d9799760e21b610d58565b6105a85760405162461bcd60e51b81526004016104a790611603565b60405163749544fb60e11b81526001600160a01b0385169063e92a89f69061050d9086908690869060040161169b565b6105e0610b69565b6105eb600182610b44565b6103415760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a361033f600182610d74565b610638610b69565b6106426000610d89565b565b3361064d6107ee565b6001600160a01b031614806106685750610668600133610b44565b6106845760405162461bcd60e51b81526004016104a7906115bf565b610695836314d9799760e21b610d58565b6106b15760405162461bcd60e51b81526004016104a790611603565b60405163066d1e9d60e41b81526001600160a01b038416906366d1e9d0906106df90859085906004016116be565b600060405180830381600087803b1580156106f957600080fd5b505af115801561070d573d6000803e3d6000fd5b50505050505050565b6107238585858585610dd9565b60005b8381101561078e578282828181106107405761074061157a565b905060200201356005600087878581811061075d5761075d61157a565b905060200201358152602001908152602001600020600082825461078191906116da565b9091555050600101610726565b505050505050565b606060048054806020026020016040519081016040528092919081815260200182805480156107e457602002820191906000526020600020905b8154815260200190600101908083116107d0575b5050505050905090565b6000546001600160a01b031690565b336108066107ee565b6001600160a01b031614806108215750610821600133610b44565b61083d5760405162461bcd60e51b81526004016104a7906115bf565b61084e856314d9799760e21b610d58565b61086a5760405162461bcd60e51b81526004016104a790611603565b6040516361e5bc6b60e01b81526001600160a01b038616906361e5bc6b9061089c9087908790879087906004016117b0565b600060405180830381600087803b1580156108b657600080fd5b505af11580156108ca573d6000803e3d6000fd5b505050505050505050565b6060336108e06107ee565b6001600160a01b031614806108fb57506108fb600133610b44565b6109175760405162461bcd60e51b81526004016104a7906115bf565b61092688888888888888610bf3565b98975050505050505050565b3361093b6107ee565b6001600160a01b031614806109565750610956600133610b44565b6109725760405162461bcd60e51b81526004016104a7906115bf565b610983836314d9799760e21b610d58565b6109e25760405162461bcd60e51b815260206004820152602a60248201527f52657175697265732063726561746f7220746f20696d706c656d656e74204943604482015269726561746f72436f726560b01b60648201526084016104a7565b6040516307cc269760e31b81526001600160a01b03841690633e6134b8906106df90859085906004016116be565b610a18610b69565b6001600160a01b038116610a7d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a7565b61034181610d89565b6006546040516339b2213760e21b81526001600160a01b039091169063e6c884dc90610ac09089908990899089908990899060040161181e565b600060405180830381600087803b158015610ada57600080fd5b505af1158015610aee573d6000803e3d6000fd5b50505050505050505050565b60006001600160e01b031982166302ee242360e01b14806102b157506102b182610e7f565b60006001600160e01b031982166303dc6f6560e51b14806102b157506102b182610afa565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b33610b726107ee565b6001600160a01b0316146106425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a7565b6000610b62836001600160a01b038416610ea4565b60006102b1825490565b6000610b628383610f97565b6060610c06886301f4921160e61b610d58565b610c655760405162461bcd60e51b815260206004820152602a60248201527f63726561746f72206d75737420696d706c656d656e7420494552433131353543604482015269726561746f72436f726560b01b60648201526084016104a7565b604051634637423960e11b81526001600160a01b03891690638c6e847290610c9b908a908a908a908a908a908a90600401611867565b6000604051808303816000875af1158015610cba573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ce291908101906118a3565b905060005b8151811015610d4c578860036000848481518110610d0757610d0761157a565b6020026020010151815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001019050610ce7565b50979650505050505050565b6000610d6383610fc1565b8015610b625750610b628383610ff4565b6000610b62836001600160a01b03841661107d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b8381101561078e573360036000878785818110610dfb57610dfb61157a565b60209081029290920135835250810191909152604001600020546001600160a01b031614610e775760405162461bcd60e51b815260206004820152602360248201527f43616e206f6e6c792062652063616c6c656420627920746f6b656e20637265616044820152623a37b960e91b60648201526084016104a7565b600101610ddc565b60006001600160e01b03198216637005caad60e01b14806102b157506102b1826110cc565b60008181526001830160205260408120548015610f8d576000610ec8600183611954565b8554909150600090610edc90600190611954565b9050818114610f41576000866000018281548110610efc57610efc61157a565b9060005260206000200154905080876000018481548110610f1f57610f1f61157a565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610f5257610f52611967565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102b1565b60009150506102b1565b6000826000018281548110610fae57610fae61157a565b9060005260206000200154905092915050565b6000610fd4826301ffc9a760e01b610ff4565b80156102b15750610fed826001600160e01b0319610ff4565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015611066575060208210155b80156110725750600081115b979650505050505050565b60008181526001830160205260408120546110c4575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102b1565b5060006102b1565b60006001600160e01b03198216632a9f3abf60e11b14806102b157506301ffc9a760e01b6001600160e01b03198316146102b1565b60006020828403121561111357600080fd5b81356001600160e01b031981168114610b6257600080fd5b80356001600160a01b038116811461114257600080fd5b919050565b60006020828403121561115957600080fd5b610b628261112b565b60006020828403121561117457600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b818110156111bc5783516001600160a01b031683529284019291840191600101611197565b50909695505050505050565b60008083601f8401126111da57600080fd5b5081356001600160401b038111156111f157600080fd5b6020830191508360208260051b850101111561120c57600080fd5b9250929050565b6000806000806000806060878903121561122c57600080fd5b86356001600160401b038082111561124357600080fd5b61124f8a838b016111c8565b9098509650602089013591508082111561126857600080fd5b6112748a838b016111c8565b9096509450604089013591508082111561128d57600080fd5b5061129a89828a016111c8565b979a9699509497509295939492505050565b60008083601f8401126112be57600080fd5b5081356001600160401b038111156112d557600080fd5b60208301915083602082850101111561120c57600080fd5b6000806000806060858703121561130357600080fd5b61130c8561112b565b935060208501356001600160401b0381111561132757600080fd5b611333878288016112ac565b9094509250506040850135801515811461134c57600080fd5b939692955090935050565b6000806000806060858703121561136d57600080fd5b6113768561112b565b93506020850135925060408501356001600160401b0381111561139857600080fd5b6113a4878288016112ac565b95989497509550505050565b6000806000604084860312156113c557600080fd5b6113ce8461112b565b925060208401356001600160401b038111156113e957600080fd5b6113f5868287016112ac565b9497909650939450505050565b60008060008060006060868803121561141a57600080fd5b6114238661112b565b945060208601356001600160401b038082111561143f57600080fd5b61144b89838a016111c8565b9096509450604088013591508082111561146457600080fd5b50611471888289016111c8565b969995985093965092949392505050565b6020808252825182820181905260009190848201906040850190845b818110156111bc5783518352928401929184019160010161149e565b60008060008060008060006080888a0312156114d557600080fd5b6114de8861112b565b965060208801356001600160401b03808211156114fa57600080fd5b6115068b838c016111c8565b909850965060408a013591508082111561151f57600080fd5b61152b8b838c016111c8565b909650945060608a013591508082111561154457600080fd5b506115518a828b016111c8565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016115b8576115b8611590565b5060010190565b60208082526024908201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616040820152633236b4b760e11b606082015260800190565b60208082526029908201527f52657175697265732063726561746f7220746f20696d706c656d656e742043726040820152686561746f72436f726560b81b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061168960408301858761164c565b90508215156020830152949350505050565b8381526040602082015260006116b560408301848661164c565b95945050505050565b6020815260006116d260208301848661164c565b949350505050565b808201808211156102b1576102b1611590565b81835260006001600160fb1b0383111561170657600080fd5b8260051b80836020870137939093016020019392505050565b81835260006020808501808196508560051b810191508460005b878110156117a35782840389528135601e1988360301811261175a57600080fd5b870185810190356001600160401b0381111561177557600080fd5b80360382131561178457600080fd5b61178f86828461164c565b9a87019a9550505090840190600101611739565b5091979650505050505050565b6040815260006117c46040830186886116ed565b828103602084015261107281858761171f565b8183526000602080850194508260005b85811015611813576001600160a01b036118008361112b565b16875295820195908201906001016117e7565b509495945050505050565b60608152600061183260608301888a6117d7565b82810360208401526118458187896116ed565b9050828103604084015261185a8185876116ed565b9998505050505050505050565b60608152600061187b60608301888a6117d7565b828103602084015261188e8187896116ed565b9050828103604084015261185a81858761171f565b600060208083850312156118b657600080fd5b82516001600160401b03808211156118cd57600080fd5b818501915085601f8301126118e157600080fd5b8151818111156118f3576118f3611564565b8060051b604051601f19603f8301168101818110858211171561191857611918611564565b60405291825284820192508381018501918883111561193657600080fd5b938501935b828510156109265784518452938501939285019261193b565b818103818111156102b1576102b1611590565b634e487b7160e01b600052603160045260246000fdfea26469706673582212205864aee565ef7d34693d37a5385c8b589914967628254cc2967ac711f562b51664736f6c63430008130033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f15760003560e01c806301ffc9a7146100f657806324d7806c1461011e57806324d8a510146101315780632d3456701461015f57806331ae450b146101745780634aec8cc5146101895780634c5cfbf21461019c5780634e5786bf146101af5780636d73e669146101c2578063715018a6146101d557806372ebee8e146101dd5780637b8deca0146101f05780638d75fe05146102035780638da5cb5b14610218578063aaa9883b14610238578063d36c4bc71461024b578063d8a73fdb1461025e578063f2fde38b14610271578063f753987614610284575b600080fd5b610109610104366004611101565b610297565b60405190151581526020015b60405180910390f35b61010961012c366004611147565b6102b7565b61015161013f366004611162565b60009081526005602052604090205490565b604051908152602001610115565b61017261016d366004611147565b6102e6565b005b61017c610344565b604051610115919061117b565b610172610197366004611213565b6103f2565b6101726101aa3660046112ed565b610467565b6101726101bd366004611357565b61053b565b6101726101d0366004611147565b6105d8565b610172610630565b6101726101eb3660046113b0565b610644565b6101726101fe366004611402565b610716565b61020b610796565b6040516101159190611482565b6102206107ee565b6040516001600160a01b039091168152602001610115565b610172610246366004611402565b6107fd565b61020b6102593660046114ba565b6108d5565b61017261026c3660046113b0565b610932565b61017261027f366004611147565b610a10565b610172610292366004611213565b610a86565b60006102a282610afa565b806102b157506102b182610b1f565b92915050565b6000816001600160a01b03166102cb6107ee565b6001600160a01b031614806102b157506102b1600183610b44565b6102ee610b69565b6102f9600182610b44565b156103415760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a361033f600182610bc8565b505b50565b60606103506001610bdd565b6001600160401b0381111561036757610367611564565b604051908082528060200260200182016040528015610390578160200160208202803683370190505b50905060005b6103a06001610bdd565b8110156103ee576103b2600182610be7565b8282815181106103c4576103c461157a565b6001600160a01b0390921660209283029190910190910152806103e6816115a6565b915050610396565b5090565b600654600090610410906001600160a01b0316888888888888610bf3565b905060005b815181101561045d5760048282815181106104325761043261157a565b6020908102919091018101518254600181810185556000948552929093209092019190915501610415565b5050505050505050565b336104706107ee565b6001600160a01b0316148061048b575061048b600133610b44565b6104b05760405162461bcd60e51b81526004016104a7906115bf565b60405180910390fd5b6104c1846314d9799760e21b610d58565b6104dd5760405162461bcd60e51b81526004016104a790611603565b60405163105b981960e31b81526001600160a01b038516906382dcc0c89061050d90869086908690600401611675565b600060405180830381600087803b15801561052757600080fd5b505af115801561045d573d6000803e3d6000fd5b336105446107ee565b6001600160a01b0316148061055f575061055f600133610b44565b61057b5760405162461bcd60e51b81526004016104a7906115bf565b61058c846314d9799760e21b610d58565b6105a85760405162461bcd60e51b81526004016104a790611603565b60405163749544fb60e11b81526001600160a01b0385169063e92a89f69061050d9086908690869060040161169b565b6105e0610b69565b6105eb600182610b44565b6103415760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a361033f600182610d74565b610638610b69565b6106426000610d89565b565b3361064d6107ee565b6001600160a01b031614806106685750610668600133610b44565b6106845760405162461bcd60e51b81526004016104a7906115bf565b610695836314d9799760e21b610d58565b6106b15760405162461bcd60e51b81526004016104a790611603565b60405163066d1e9d60e41b81526001600160a01b038416906366d1e9d0906106df90859085906004016116be565b600060405180830381600087803b1580156106f957600080fd5b505af115801561070d573d6000803e3d6000fd5b50505050505050565b6107238585858585610dd9565b60005b8381101561078e578282828181106107405761074061157a565b905060200201356005600087878581811061075d5761075d61157a565b905060200201358152602001908152602001600020600082825461078191906116da565b9091555050600101610726565b505050505050565b606060048054806020026020016040519081016040528092919081815260200182805480156107e457602002820191906000526020600020905b8154815260200190600101908083116107d0575b5050505050905090565b6000546001600160a01b031690565b336108066107ee565b6001600160a01b031614806108215750610821600133610b44565b61083d5760405162461bcd60e51b81526004016104a7906115bf565b61084e856314d9799760e21b610d58565b61086a5760405162461bcd60e51b81526004016104a790611603565b6040516361e5bc6b60e01b81526001600160a01b038616906361e5bc6b9061089c9087908790879087906004016117b0565b600060405180830381600087803b1580156108b657600080fd5b505af11580156108ca573d6000803e3d6000fd5b505050505050505050565b6060336108e06107ee565b6001600160a01b031614806108fb57506108fb600133610b44565b6109175760405162461bcd60e51b81526004016104a7906115bf565b61092688888888888888610bf3565b98975050505050505050565b3361093b6107ee565b6001600160a01b031614806109565750610956600133610b44565b6109725760405162461bcd60e51b81526004016104a7906115bf565b610983836314d9799760e21b610d58565b6109e25760405162461bcd60e51b815260206004820152602a60248201527f52657175697265732063726561746f7220746f20696d706c656d656e74204943604482015269726561746f72436f726560b01b60648201526084016104a7565b6040516307cc269760e31b81526001600160a01b03841690633e6134b8906106df90859085906004016116be565b610a18610b69565b6001600160a01b038116610a7d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a7565b61034181610d89565b6006546040516339b2213760e21b81526001600160a01b039091169063e6c884dc90610ac09089908990899089908990899060040161181e565b600060405180830381600087803b158015610ada57600080fd5b505af1158015610aee573d6000803e3d6000fd5b50505050505050505050565b60006001600160e01b031982166302ee242360e01b14806102b157506102b182610e7f565b60006001600160e01b031982166303dc6f6560e51b14806102b157506102b182610afa565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b33610b726107ee565b6001600160a01b0316146106425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a7565b6000610b62836001600160a01b038416610ea4565b60006102b1825490565b6000610b628383610f97565b6060610c06886301f4921160e61b610d58565b610c655760405162461bcd60e51b815260206004820152602a60248201527f63726561746f72206d75737420696d706c656d656e7420494552433131353543604482015269726561746f72436f726560b01b60648201526084016104a7565b604051634637423960e11b81526001600160a01b03891690638c6e847290610c9b908a908a908a908a908a908a90600401611867565b6000604051808303816000875af1158015610cba573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ce291908101906118a3565b905060005b8151811015610d4c578860036000848481518110610d0757610d0761157a565b6020026020010151815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001019050610ce7565b50979650505050505050565b6000610d6383610fc1565b8015610b625750610b628383610ff4565b6000610b62836001600160a01b03841661107d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b8381101561078e573360036000878785818110610dfb57610dfb61157a565b60209081029290920135835250810191909152604001600020546001600160a01b031614610e775760405162461bcd60e51b815260206004820152602360248201527f43616e206f6e6c792062652063616c6c656420627920746f6b656e20637265616044820152623a37b960e91b60648201526084016104a7565b600101610ddc565b60006001600160e01b03198216637005caad60e01b14806102b157506102b1826110cc565b60008181526001830160205260408120548015610f8d576000610ec8600183611954565b8554909150600090610edc90600190611954565b9050818114610f41576000866000018281548110610efc57610efc61157a565b9060005260206000200154905080876000018481548110610f1f57610f1f61157a565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610f5257610f52611967565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102b1565b60009150506102b1565b6000826000018281548110610fae57610fae61157a565b9060005260206000200154905092915050565b6000610fd4826301ffc9a760e01b610ff4565b80156102b15750610fed826001600160e01b0319610ff4565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015611066575060208210155b80156110725750600081115b979650505050505050565b60008181526001830160205260408120546110c4575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102b1565b5060006102b1565b60006001600160e01b03198216632a9f3abf60e11b14806102b157506301ffc9a760e01b6001600160e01b03198316146102b1565b60006020828403121561111357600080fd5b81356001600160e01b031981168114610b6257600080fd5b80356001600160a01b038116811461114257600080fd5b919050565b60006020828403121561115957600080fd5b610b628261112b565b60006020828403121561117457600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b818110156111bc5783516001600160a01b031683529284019291840191600101611197565b50909695505050505050565b60008083601f8401126111da57600080fd5b5081356001600160401b038111156111f157600080fd5b6020830191508360208260051b850101111561120c57600080fd5b9250929050565b6000806000806000806060878903121561122c57600080fd5b86356001600160401b038082111561124357600080fd5b61124f8a838b016111c8565b9098509650602089013591508082111561126857600080fd5b6112748a838b016111c8565b9096509450604089013591508082111561128d57600080fd5b5061129a89828a016111c8565b979a9699509497509295939492505050565b60008083601f8401126112be57600080fd5b5081356001600160401b038111156112d557600080fd5b60208301915083602082850101111561120c57600080fd5b6000806000806060858703121561130357600080fd5b61130c8561112b565b935060208501356001600160401b0381111561132757600080fd5b611333878288016112ac565b9094509250506040850135801515811461134c57600080fd5b939692955090935050565b6000806000806060858703121561136d57600080fd5b6113768561112b565b93506020850135925060408501356001600160401b0381111561139857600080fd5b6113a4878288016112ac565b95989497509550505050565b6000806000604084860312156113c557600080fd5b6113ce8461112b565b925060208401356001600160401b038111156113e957600080fd5b6113f5868287016112ac565b9497909650939450505050565b60008060008060006060868803121561141a57600080fd5b6114238661112b565b945060208601356001600160401b038082111561143f57600080fd5b61144b89838a016111c8565b9096509450604088013591508082111561146457600080fd5b50611471888289016111c8565b969995985093965092949392505050565b6020808252825182820181905260009190848201906040850190845b818110156111bc5783518352928401929184019160010161149e565b60008060008060008060006080888a0312156114d557600080fd5b6114de8861112b565b965060208801356001600160401b03808211156114fa57600080fd5b6115068b838c016111c8565b909850965060408a013591508082111561151f57600080fd5b61152b8b838c016111c8565b909650945060608a013591508082111561154457600080fd5b506115518a828b016111c8565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016115b8576115b8611590565b5060010190565b60208082526024908201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616040820152633236b4b760e11b606082015260800190565b60208082526029908201527f52657175697265732063726561746f7220746f20696d706c656d656e742043726040820152686561746f72436f726560b81b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061168960408301858761164c565b90508215156020830152949350505050565b8381526040602082015260006116b560408301848661164c565b95945050505050565b6020815260006116d260208301848661164c565b949350505050565b808201808211156102b1576102b1611590565b81835260006001600160fb1b0383111561170657600080fd5b8260051b80836020870137939093016020019392505050565b81835260006020808501808196508560051b810191508460005b878110156117a35782840389528135601e1988360301811261175a57600080fd5b870185810190356001600160401b0381111561177557600080fd5b80360382131561178457600080fd5b61178f86828461164c565b9a87019a9550505090840190600101611739565b5091979650505050505050565b6040815260006117c46040830186886116ed565b828103602084015261107281858761171f565b8183526000602080850194508260005b85811015611813576001600160a01b036118008361112b565b16875295820195908201906001016117e7565b509495945050505050565b60608152600061183260608301888a6117d7565b82810360208401526118458187896116ed565b9050828103604084015261185a8185876116ed565b9998505050505050505050565b60608152600061187b60608301888a6117d7565b828103602084015261188e8187896116ed565b9050828103604084015261185a81858761171f565b600060208083850312156118b657600080fd5b82516001600160401b03808211156118cd57600080fd5b818501915085601f8301126118e157600080fd5b8151818111156118f3576118f3611564565b8060051b604051601f19603f8301168101818110858211171561191857611918611564565b60405291825284820192508381018501918883111561193657600080fd5b938501935b828510156109265784518452938501939285019261193b565b818103818111156102b1576102b1611590565b634e487b7160e01b600052603160045260246000fdfea26469706673582212205864aee565ef7d34693d37a5385c8b589914967628254cc2967ac711f562b51664736f6c63430008130033",
  "immutableReferences": {},
  "generatedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:306:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "95:209:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "141:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "150:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "153:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "143:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "143:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "143:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "116:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "125:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "112:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "112:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "137:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "108:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "108:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "105:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "166:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "185:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "179:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "179:16:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "170:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "258:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "267:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "270:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "260:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "260:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "260:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "217:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "228:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "243:3:81",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "248:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "239:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "239:11:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "252:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "235:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "235:19:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "224:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "224:31:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "214:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "214:42:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "207:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "207:50:81"
                  },
                  "nodeType": "YulIf",
                  "src": "204:70:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "283:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "293:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "283:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "61:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "72:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "84:6:81",
                "type": ""
              }
            ],
            "src": "14:290:81"
          }
        ]
      },
      "contents": "{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:20429:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "83:217:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "129:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "138:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "141:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "131:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "131:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "131:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "104:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "113:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "100:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "100:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "125:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "96:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "96:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "93:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "154:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "180:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "167:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "167:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "158:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "254:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "263:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "266:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "256:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "256:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "256:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "212:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "223:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "234:3:81",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "239:10:81",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "230:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "230:20:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "219:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "219:32:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "209:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "209:43:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "202:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "202:51:81"
                  },
                  "nodeType": "YulIf",
                  "src": "199:71:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "279:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "289:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "279:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "49:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "60:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "72:6:81",
                "type": ""
              }
            ],
            "src": "14:286:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "400:92:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "410:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "422:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "433:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "418:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "418:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "410:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "452:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "477:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "470:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "470:14:81"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "463:6:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "463:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "445:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "445:41:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "445:41:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "369:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "380:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "391:4:81",
                "type": ""
              }
            ],
            "src": "305:187:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "546:124:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "556:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "578:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "565:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "565:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nodeType": "YulIdentifier",
                      "src": "556:5:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "648:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "657:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "660:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "650:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "650:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "650:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "607:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "618:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "633:3:81",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "638:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "629:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "629:11:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "642:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "625:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "625:19:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "614:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "614:31:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "604:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "604:42:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "597:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "597:50:81"
                  },
                  "nodeType": "YulIf",
                  "src": "594:70:81"
                }
              ]
            },
            "name": "abi_decode_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "525:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "536:5:81",
                "type": ""
              }
            ],
            "src": "497:173:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "745:116:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "791:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "800:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "803:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "793:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "793:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "793:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "766:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "775:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "762:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "762:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "787:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "758:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "758:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "755:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "816:39:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "845:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "826:18:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "826:29:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "816:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "711:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "722:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "734:6:81",
                "type": ""
              }
            ],
            "src": "675:186:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "936:110:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "982:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "991:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "994:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "984:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "984:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "984:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "957:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "966:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "953:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "953:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "978:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "949:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "949:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "946:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1007:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1030:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1017:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1017:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1007:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "902:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "913:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "925:6:81",
                "type": ""
              }
            ],
            "src": "866:180:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1152:76:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1162:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1174:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1185:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1170:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1170:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1162:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1204:9:81"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "1215:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1197:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1197:25:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1197:25:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1121:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1132:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1143:4:81",
                "type": ""
              }
            ],
            "src": "1051:177:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1384:507:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1394:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "1404:2:81",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "1398:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1415:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1433:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1444:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1429:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1429:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "1419:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1463:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1474:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1456:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1456:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1456:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1486:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "1497:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "1490:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1512:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "1532:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "1526:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1526:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "1516:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "1555:6:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1563:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1548:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1548:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1548:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1579:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1590:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1601:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1586:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1586:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "1579:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1613:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "1631:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1639:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1627:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1627:15:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "1617:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1651:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "1660:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "1655:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1719:146:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "1740:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "1755:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "1749:5:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1749:13:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1772:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1777:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "1768:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1768:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "1781:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "1764:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1764:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "1745:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1745:39:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1733:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1733:52:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1733:52:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "1798:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "1809:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "1814:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1805:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1805:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1798:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "1830:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "1844:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "1852:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1840:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1840:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "1830:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "1681:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1684:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "1678:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1678:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "1692:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "1694:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "1703:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1706:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1699:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1699:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "1694:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "1674:3:81",
                    "statements": []
                  },
                  "src": "1670:195:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1874:11:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "1882:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1874:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1353:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1364:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1375:4:81",
                "type": ""
              }
            ],
            "src": "1233:658:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1980:283:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2029:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2038:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2041:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2031:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2031:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2031:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "2008:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2016:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2004:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2004:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "2023:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "2000:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2000:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "1993:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1993:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1990:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2054:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "2077:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2064:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2064:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "2054:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2127:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2136:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2139:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2129:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2129:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2129:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2099:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2107:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "2096:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2096:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2093:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2152:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "2168:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2176:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2164:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2164:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nodeType": "YulIdentifier",
                      "src": "2152:8:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2241:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2250:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2253:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2243:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2243:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2243:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "2204:6:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2216:1:81",
                                    "type": "",
                                    "value": "5"
                                  },
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "2219:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "2212:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2212:14:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2200:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2200:27:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2229:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2196:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2196:38:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "2236:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "2193:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2193:47:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2190:67:81"
                }
              ]
            },
            "name": "abi_decode_array_address_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "1943:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "1951:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nodeType": "YulTypedName",
                "src": "1959:8:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "1969:6:81",
                "type": ""
              }
            ],
            "src": "1896:367:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2489:879:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2535:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2544:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2547:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2537:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2537:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2537:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2510:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2519:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2506:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2506:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2531:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "2502:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2502:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2499:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2560:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2587:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2574:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2574:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "2564:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2606:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2616:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "2610:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2661:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2670:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2673:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2663:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2663:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2663:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "2649:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2657:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "2646:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2646:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2643:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2686:96:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2754:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "2765:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2750:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2750:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "2774:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "2712:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2712:70:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "2690:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "2700:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2791:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "2801:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "2791:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2818:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "2828:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "2818:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2845:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2878:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2889:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2874:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2874:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2861:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2861:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "2849:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2922:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2931:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2934:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2924:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2924:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2924:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "2908:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2918:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "2905:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2905:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2902:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2947:98:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3015:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "3026:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3011:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3011:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "3037:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "2973:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2973:72:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "2951:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "2961:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3054:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "3064:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "3054:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3081:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "3091:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "3081:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3108:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3141:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3152:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3137:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3137:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3124:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3124:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "3112:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3185:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3194:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3197:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3187:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3187:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3187:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "3171:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "3181:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3168:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3168:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3165:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3210:98:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3278:9:81"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "3289:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3274:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3274:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "3300:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "3236:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3236:72:81"
                  },
                  "variables": [
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "3214:8:81",
                      "type": ""
                    },
                    {
                      "name": "value5_1",
                      "nodeType": "YulTypedName",
                      "src": "3224:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3317:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "3327:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "3317:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3344:18:81",
                  "value": {
                    "name": "value5_1",
                    "nodeType": "YulIdentifier",
                    "src": "3354:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value5",
                      "nodeType": "YulIdentifier",
                      "src": "3344:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2415:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "2426:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2438:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "2446:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "2454:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "2462:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "2470:6:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "2478:6:81",
                "type": ""
              }
            ],
            "src": "2268:1100:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3446:275:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3495:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3504:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3507:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3497:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3497:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3497:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3474:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3482:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3470:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3470:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "3489:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "3466:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3466:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "3459:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3459:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3456:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3520:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3543:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3530:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3530:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "3520:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3593:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3602:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3605:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3595:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3595:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3595:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "3565:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3573:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3562:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3562:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3559:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3618:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3634:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3642:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3630:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3630:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nodeType": "YulIdentifier",
                      "src": "3618:8:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3699:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3708:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3711:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3701:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3701:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3701:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3670:6:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "3678:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3666:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3666:19:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3687:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3662:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3662:30:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "3694:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3659:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3659:39:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3656:59:81"
                }
              ]
            },
            "name": "abi_decode_string_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "3409:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "3417:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nodeType": "YulTypedName",
                "src": "3425:8:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "3435:6:81",
                "type": ""
              }
            ],
            "src": "3373:348:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3847:525:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3893:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3902:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3905:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3895:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3895:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3895:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "3868:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3877:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "3864:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3864:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3889:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "3860:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3860:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3857:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3918:39:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3947:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "3928:18:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3928:29:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "3918:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3966:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3997:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4008:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3993:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3993:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3980:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3980:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "3970:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4055:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4064:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4067:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4057:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4057:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4057:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4027:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4035:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4024:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4024:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4021:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4080:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4137:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "4148:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4133:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4133:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "4157:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "4106:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4106:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "4084:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "4094:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4174:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "4184:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "4174:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4201:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "4211:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "4201:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4228:45:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4258:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4269:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4254:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4254:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4241:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4241:32:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "4232:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4326:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4335:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4338:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4328:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4328:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4328:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "4295:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "4316:5:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "4309:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4309:13:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "4302:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4302:21:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "4292:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4292:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "4285:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4285:40:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4282:60:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4351:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "4361:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "4351:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_string_calldata_ptrt_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3789:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "3800:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3812:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "3820:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "3828:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "3836:6:81",
                "type": ""
              }
            ],
            "src": "3726:646:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4501:429:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4547:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4556:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4559:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4549:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4549:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4549:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4522:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4531:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "4518:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4518:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4543:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "4514:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4514:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4511:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4572:39:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4601:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "4582:18:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4582:29:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "4572:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4620:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4647:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4658:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4643:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4643:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4630:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4630:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "4620:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4671:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4702:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4713:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4698:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4698:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4685:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4685:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "4675:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4760:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4769:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4772:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4762:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4762:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4762:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4732:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4740:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4729:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4729:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4726:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4785:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4842:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "4853:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4838:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4838:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "4862:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "4811:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4811:59:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "4789:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "4799:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4879:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "4889:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "4879:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4906:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "4916:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "4906:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint256t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4443:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "4454:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "4466:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "4474:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "4482:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "4490:6:81",
                "type": ""
              }
            ],
            "src": "4377:553:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5042:378:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5088:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5097:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5100:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5090:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5090:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5090:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5063:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5072:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "5059:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5059:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5084:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "5055:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5055:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5052:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5113:39:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5142:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "5123:18:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5123:29:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "5113:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5161:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5192:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5203:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5188:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5188:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5175:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5175:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "5165:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5250:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5259:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5262:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5252:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5252:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5252:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "5222:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5230:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5219:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5219:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5216:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5275:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5332:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "5343:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5328:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5328:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "5352:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "5301:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5301:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "5279:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "5289:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5369:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "5379:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "5369:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5396:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "5406:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "5396:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4992:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "5003:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5015:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5023:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "5031:6:81",
                "type": ""
              }
            ],
            "src": "4935:485:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5599:673:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5645:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5654:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5657:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5647:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5647:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5647:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5620:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5629:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "5616:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5616:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5641:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "5612:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5612:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5609:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5670:39:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5699:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "5680:18:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5680:29:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "5670:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5718:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5749:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5760:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5745:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5745:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5732:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5732:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "5722:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5773:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "5783:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "5777:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5828:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5837:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5840:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5830:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5830:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5830:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "5816:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "5824:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5813:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5813:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5810:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5853:96:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5921:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "5932:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5917:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5917:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "5941:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "5879:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5879:70:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "5857:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "5867:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5958:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "5968:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "5958:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5985:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "5995:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "5985:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6012:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6045:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6056:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6041:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6041:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6028:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6028:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "6016:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6089:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6098:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6101:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6091:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6091:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6091:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "6075:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6085:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "6072:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6072:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6069:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6114:98:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6182:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "6193:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6178:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6178:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "6204:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "6140:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6140:72:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "6118:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "6128:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6221:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "6231:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "6221:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6248:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "6258:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "6248:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5533:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "5544:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5556:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5564:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "5572:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "5580:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "5588:6:81",
                "type": ""
              }
            ],
            "src": "5425:847:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6428:481:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6438:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "6448:2:81",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "6442:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6459:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6477:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6488:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6473:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6473:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "6463:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6507:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6518:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6500:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6500:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6500:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6530:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "6541:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "6534:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6556:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "6576:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "6570:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6570:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "6560:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "6599:6:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "6607:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6592:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6592:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6592:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6623:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6634:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6645:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6630:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6630:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "6623:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6657:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "6675:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6683:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6671:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6671:15:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "6661:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6695:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "6704:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "6699:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6763:120:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "6784:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nodeType": "YulIdentifier",
                                  "src": "6795:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "6789:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6789:13:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "6777:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6777:26:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6777:26:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6816:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "6827:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "6832:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "6823:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6823:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "6816:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6848:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "6862:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "6870:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "6858:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6858:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "6848:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "6725:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "6728:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "6722:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6722:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "6736:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "6738:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "6747:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6750:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "6743:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6743:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "6738:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "6718:3:81",
                    "statements": []
                  },
                  "src": "6714:169:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6892:11:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "6900:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "6892:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "6397:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "6408:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "6419:4:81",
                "type": ""
              }
            ],
            "src": "6277:632:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "7015:102:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "7025:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7037:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7048:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7033:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7033:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "7025:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7067:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "7082:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "7098:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "7103:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "7094:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "7094:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "7107:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "7090:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7090:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "7078:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7078:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7060:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7060:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7060:51:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "6984:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "6995:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "7006:4:81",
                "type": ""
              }
            ],
            "src": "6914:203:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "7308:673:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7354:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7363:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7366:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7356:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7356:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7356:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "7329:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7338:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "7325:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7325:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7350:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "7321:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7321:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7318:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7379:39:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7408:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "7389:18:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7389:29:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "7379:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7427:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7458:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7469:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7454:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7454:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7441:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7441:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "7431:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7482:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "7492:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "7486:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7537:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7546:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7549:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7539:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7539:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7539:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "7525:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7533:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7522:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7522:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7519:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7562:96:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7630:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "7641:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7626:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7626:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7650:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "7588:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7588:70:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "7566:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "7576:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7667:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "7677:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "7667:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7694:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "7704:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "7694:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7721:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7754:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7765:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7750:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7750:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7737:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7737:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "7725:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7798:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7807:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7810:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7800:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7800:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7800:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "7784:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7794:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7781:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7781:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7778:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7823:98:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7891:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "7902:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7887:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7887:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7913:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "7849:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7849:72:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "7827:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "7837:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7930:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "7940:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "7930:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7957:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "7967:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "7957:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "7242:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "7253:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "7265:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "7273:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "7281:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "7289:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "7297:6:81",
                "type": ""
              }
            ],
            "src": "7122:859:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8224:937:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8271:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8280:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8283:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8273:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8273:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8273:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8245:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8254:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "8241:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8241:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8266:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "8237:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8237:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8234:53:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8296:39:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "8325:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "8306:18:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8306:29:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "8296:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8344:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8375:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8386:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8371:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8371:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8358:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8358:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "8348:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8399:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "8409:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "8403:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8454:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8463:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8466:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8456:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8456:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8456:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "8442:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8450:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8439:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8439:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8436:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8479:96:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8547:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "8558:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8543:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8543:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8567:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "8505:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8505:70:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "8483:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "8493:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8584:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "8594:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "8584:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8611:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "8621:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "8611:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8638:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8671:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8682:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8667:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8667:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8654:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8654:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "8642:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8715:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8724:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8727:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8717:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8717:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8717:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "8701:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8711:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8698:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8698:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8695:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8740:98:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8808:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "8819:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8804:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8804:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8830:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "8766:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8766:72:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "8744:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "8754:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8847:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "8857:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "8847:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8874:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "8884:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "8874:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8901:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8934:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8945:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8930:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8930:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8917:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8917:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "8905:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8978:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8987:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8990:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8980:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8980:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8980:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "8964:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8974:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8961:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8961:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8958:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9003:98:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9071:9:81"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "9082:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9067:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9067:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9093:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "9029:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9029:72:81"
                  },
                  "variables": [
                    {
                      "name": "value5_1",
                      "nodeType": "YulTypedName",
                      "src": "9007:8:81",
                      "type": ""
                    },
                    {
                      "name": "value6_1",
                      "nodeType": "YulTypedName",
                      "src": "9017:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9110:18:81",
                  "value": {
                    "name": "value5_1",
                    "nodeType": "YulIdentifier",
                    "src": "9120:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value5",
                      "nodeType": "YulIdentifier",
                      "src": "9110:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9137:18:81",
                  "value": {
                    "name": "value6_1",
                    "nodeType": "YulIdentifier",
                    "src": "9147:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value6",
                      "nodeType": "YulIdentifier",
                      "src": "9137:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "8142:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "8153:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "8165:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "8173:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "8181:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "8189:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "8197:6:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "8205:6:81",
                "type": ""
              },
              {
                "name": "value6",
                "nodeType": "YulTypedName",
                "src": "8213:6:81",
                "type": ""
              }
            ],
            "src": "7986:1175:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9375:879:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9421:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9430:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9433:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9423:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9423:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9423:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9396:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9405:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9392:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9392:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9417:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "9388:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9388:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9385:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9446:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9473:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9460:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9460:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "9450:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9492:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "9502:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "9496:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9547:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9556:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9559:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9549:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9549:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9549:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "9535:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "9543:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9532:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9532:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9529:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9572:96:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9640:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "9651:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9636:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9636:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9660:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "9598:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9598:70:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "9576:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "9586:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9677:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "9687:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "9677:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9704:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "9714:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "9704:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9731:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9764:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9775:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9760:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9760:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9747:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9747:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "9735:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9808:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9817:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9820:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9810:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9810:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9810:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "9794:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "9804:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9791:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9791:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9788:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9833:98:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9901:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "9912:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9897:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9897:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9923:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "9859:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9859:72:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "9837:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "9847:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9940:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "9950:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "9940:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9967:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "9977:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "9967:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9994:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10027:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10038:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10023:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10023:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "10010:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10010:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "9998:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10071:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10080:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10083:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "10073:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10073:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10073:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "10057:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "10067:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "10054:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10054:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "10051:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10096:98:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10164:9:81"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "10175:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10160:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10160:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "10186:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "10122:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10122:72:81"
                  },
                  "variables": [
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "10100:8:81",
                      "type": ""
                    },
                    {
                      "name": "value5_1",
                      "nodeType": "YulTypedName",
                      "src": "10110:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10203:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "10213:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "10203:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10230:18:81",
                  "value": {
                    "name": "value5_1",
                    "nodeType": "YulIdentifier",
                    "src": "10240:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value5",
                      "nodeType": "YulIdentifier",
                      "src": "10230:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9301:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "9312:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9324:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "9332:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "9340:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "9348:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "9356:6:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "9364:6:81",
                "type": ""
              }
            ],
            "src": "9166:1088:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10291:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10308:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10315:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10320:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "10311:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10311:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10301:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10301:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10301:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10348:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10351:4:81",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10341:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10341:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10341:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10372:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10375:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "10365:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10365:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10365:15:81"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nodeType": "YulFunctionDefinition",
            "src": "10259:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10423:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10440:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10447:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10452:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "10443:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10443:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10433:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10433:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10433:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10480:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10483:4:81",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10473:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10473:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10473:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10504:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10507:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "10497:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10497:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10497:15:81"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nodeType": "YulFunctionDefinition",
            "src": "10391:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10555:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10572:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10579:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10584:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "10575:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10575:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10565:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10565:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10565:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10612:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10615:4:81",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10605:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10605:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10605:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10636:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10639:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "10629:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10629:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10629:15:81"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nodeType": "YulFunctionDefinition",
            "src": "10523:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10702:88:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10733:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "10735:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10735:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10735:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "10718:5:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10729:1:81",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "10725:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10725:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "10715:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10715:17:81"
                  },
                  "nodeType": "YulIf",
                  "src": "10712:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10764:20:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "10775:5:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10782:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "10771:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10771:13:81"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "10764:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "10684:5:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "10694:3:81",
                "type": ""
              }
            ],
            "src": "10655:135:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10969:226:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "10986:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10997:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10979:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10979:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10979:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11020:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11031:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11016:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11016:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11036:2:81",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11009:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11009:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11009:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11059:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11070:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11055:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11055:18:81"
                      },
                      {
                        "hexValue": "41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f722061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "11075:34:81",
                        "type": "",
                        "value": "AdminControl: Must be owner or a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11048:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11048:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11048:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11130:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11141:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11126:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11126:18:81"
                      },
                      {
                        "hexValue": "646d696e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "11146:6:81",
                        "type": "",
                        "value": "dmin"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11119:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11119:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11119:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11162:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "11174:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11185:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "11170:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11170:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "11162:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ca6fc84f9a44d1110756284e5c56ff72cff80e2de6c9cfbe8379a88afa111687__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "10946:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "10960:4:81",
                "type": ""
              }
            ],
            "src": "10795:400:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11374:231:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "11391:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11402:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11384:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11384:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11384:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11425:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11436:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11421:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11421:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11441:2:81",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11414:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11414:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11414:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11464:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11475:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11460:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11460:18:81"
                      },
                      {
                        "hexValue": "52657175697265732063726561746f7220746f20696d706c656d656e74204372",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "11480:34:81",
                        "type": "",
                        "value": "Requires creator to implement Cr"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11453:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11453:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11453:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11535:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11546:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11531:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11531:18:81"
                      },
                      {
                        "hexValue": "6561746f72436f7265",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "11551:11:81",
                        "type": "",
                        "value": "eatorCore"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11524:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11524:39:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11524:39:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11572:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "11584:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11595:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "11580:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11580:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "11572:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_a9e30b95a1848f4603ebfb567134faff2d36aca09b34ea40454f03c2999717db__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "11351:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "11365:4:81",
                "type": ""
              }
            ],
            "src": "11200:405:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11677:200:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "11694:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "11699:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11687:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11687:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11687:19:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "11732:3:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11737:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11728:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11728:14:81"
                      },
                      {
                        "name": "start",
                        "nodeType": "YulIdentifier",
                        "src": "11744:5:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "11751:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "11715:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11715:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11715:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "pos",
                                "nodeType": "YulIdentifier",
                                "src": "11782:3:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "11787:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "11778:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11778:16:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11796:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11774:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11774:27:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11803:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11767:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11767:38:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11767:38:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11814:57:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "11829:3:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "11842:6:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "11850:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "11838:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "11838:15:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "11859:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "11855:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "11855:7:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "11834:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11834:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11825:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11825:39:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11866:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "11821:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11821:50:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "11814:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "start",
                "nodeType": "YulTypedName",
                "src": "11646:5:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "11653:6:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "11661:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "11669:3:81",
                "type": ""
              }
            ],
            "src": "11610:267:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12035:175:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12052:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12063:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12045:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12045:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12045:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12075:70:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "12110:6:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "12118:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12130:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12141:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12126:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12126:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "12083:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12083:62:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "12075:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12165:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12176:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12161:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12161:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value2",
                                "nodeType": "YulIdentifier",
                                "src": "12195:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "12188:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "12188:14:81"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "12181:6:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12181:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12154:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12154:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12154:50:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_calldata_ptr_t_bool__to_t_string_memory_ptr_t_bool__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "11988:9:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "11999:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "12007:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "12015:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "12026:4:81",
                "type": ""
              }
            ],
            "src": "11882:328:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12374:159:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12391:9:81"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "12402:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12384:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12384:25:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12384:25:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12429:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12440:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12425:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12425:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12445:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12418:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12418:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12418:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12457:70:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "12492:6:81"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "12500:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12512:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12523:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12508:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12508:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "12465:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12465:62:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "12457:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_string_calldata_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "12327:9:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "12338:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "12346:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "12354:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "12365:4:81",
                "type": ""
              }
            ],
            "src": "12215:318:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12669:116:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12686:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12697:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12679:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12679:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12679:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12709:70:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "12744:6:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "12752:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12764:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12775:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12760:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12760:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "12717:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12717:62:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "12709:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "12630:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "12641:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "12649:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "12660:4:81",
                "type": ""
              }
            ],
            "src": "12538:247:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12838:77:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "12848:16:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "12859:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "12862:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "12855:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12855:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nodeType": "YulIdentifier",
                      "src": "12848:3:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12887:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "12889:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12889:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12889:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "12879:1:81"
                      },
                      {
                        "name": "sum",
                        "nodeType": "YulIdentifier",
                        "src": "12882:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "12876:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12876:10:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12873:36:81"
                }
              ]
            },
            "name": "checked_add_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "12821:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "12824:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nodeType": "YulTypedName",
                "src": "12830:3:81",
                "type": ""
              }
            ],
            "src": "12790:125:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12998:233:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "13015:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "13020:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13008:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13008:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13008:19:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13071:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13080:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13083:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13073:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13073:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13073:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "13042:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "13058:3:81",
                                "type": "",
                                "value": "251"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "13063:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "13054:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "13054:11:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13067:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "13050:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13050:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "13039:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13039:31:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13036:51:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13096:30:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13116:1:81",
                        "type": "",
                        "value": "5"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "13119:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "shl",
                      "nodeType": "YulIdentifier",
                      "src": "13112:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13112:14:81"
                  },
                  "variables": [
                    {
                      "name": "length_1",
                      "nodeType": "YulTypedName",
                      "src": "13100:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "13152:3:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13157:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13148:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13148:14:81"
                      },
                      {
                        "name": "start",
                        "nodeType": "YulIdentifier",
                        "src": "13164:5:81"
                      },
                      {
                        "name": "length_1",
                        "nodeType": "YulIdentifier",
                        "src": "13171:8:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "13135:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13135:45:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13135:45:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13189:36:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "13204:3:81"
                          },
                          {
                            "name": "length_1",
                            "nodeType": "YulIdentifier",
                            "src": "13209:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13200:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13200:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13220:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "13196:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13196:29:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "13189:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_uint256_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "start",
                "nodeType": "YulTypedName",
                "src": "12967:5:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "12974:6:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "12982:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "12990:3:81",
                "type": ""
              }
            ],
            "src": "12920:311:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13322:983:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "13339:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "13344:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13332:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13332:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13332:19:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13360:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "13370:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "13364:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13383:31:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "13406:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "13411:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "13402:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13402:12:81"
                  },
                  "variables": [
                    {
                      "name": "updated_pos",
                      "nodeType": "YulTypedName",
                      "src": "13387:11:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13423:24:81",
                  "value": {
                    "name": "updated_pos",
                    "nodeType": "YulIdentifier",
                    "src": "13436:11:81"
                  },
                  "variables": [
                    {
                      "name": "pos_1",
                      "nodeType": "YulTypedName",
                      "src": "13427:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13456:18:81",
                  "value": {
                    "name": "updated_pos",
                    "nodeType": "YulIdentifier",
                    "src": "13463:11:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "13456:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13483:38:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos_1",
                        "nodeType": "YulIdentifier",
                        "src": "13499:5:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13510:1:81",
                            "type": "",
                            "value": "5"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "13513:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "13506:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13506:14:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "13495:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13495:26:81"
                  },
                  "variables": [
                    {
                      "name": "tail",
                      "nodeType": "YulTypedName",
                      "src": "13487:4:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13530:19:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "13544:5:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "13534:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13558:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "13567:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "13562:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13626:653:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "13647:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "tail",
                                  "nodeType": "YulIdentifier",
                                  "src": "13656:4:81"
                                },
                                {
                                  "name": "pos_1",
                                  "nodeType": "YulIdentifier",
                                  "src": "13662:5:81"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "13652:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "13652:16:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "13640:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13640:29:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13640:29:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "13682:46:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "13721:6:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "13708:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13708:20:81"
                        },
                        "variables": [
                          {
                            "name": "rel_offset_of_tail",
                            "nodeType": "YulTypedName",
                            "src": "13686:18:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "13818:16:81",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "13827:1:81",
                                    "type": "",
                                    "value": "0"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "13830:1:81",
                                    "type": "",
                                    "value": "0"
                                  }
                                ],
                                "functionName": {
                                  "name": "revert",
                                  "nodeType": "YulIdentifier",
                                  "src": "13820:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "13820:12:81"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "13820:12:81"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "rel_offset_of_tail",
                                  "nodeType": "YulIdentifier",
                                  "src": "13755:18:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "arguments": [],
                                          "functionName": {
                                            "name": "calldatasize",
                                            "nodeType": "YulIdentifier",
                                            "src": "13783:12:81"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "13783:14:81"
                                        },
                                        {
                                          "name": "value",
                                          "nodeType": "YulIdentifier",
                                          "src": "13799:5:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "sub",
                                        "nodeType": "YulIdentifier",
                                        "src": "13779:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "13779:26:81"
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "13811:2:81",
                                          "type": "",
                                          "value": "30"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "not",
                                        "nodeType": "YulIdentifier",
                                        "src": "13807:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "13807:7:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "13775:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "13775:40:81"
                                }
                              ],
                              "functionName": {
                                "name": "slt",
                                "nodeType": "YulIdentifier",
                                "src": "13751:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "13751:65:81"
                            }
                          ],
                          "functionName": {
                            "name": "iszero",
                            "nodeType": "YulIdentifier",
                            "src": "13744:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13744:73:81"
                        },
                        "nodeType": "YulIf",
                        "src": "13741:93:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "13847:45:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "rel_offset_of_tail",
                              "nodeType": "YulIdentifier",
                              "src": "13866:18:81"
                            },
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "13886:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "13862:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13862:30:81"
                        },
                        "variables": [
                          {
                            "name": "value_1",
                            "nodeType": "YulTypedName",
                            "src": "13851:7:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "13905:37:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "value_1",
                              "nodeType": "YulIdentifier",
                              "src": "13934:7:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "13921:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13921:21:81"
                        },
                        "variables": [
                          {
                            "name": "length_1",
                            "nodeType": "YulTypedName",
                            "src": "13909:8:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "13955:31:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "value_1",
                              "nodeType": "YulIdentifier",
                              "src": "13974:7:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "13983:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "13970:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13970:16:81"
                        },
                        "variables": [
                          {
                            "name": "value_2",
                            "nodeType": "YulTypedName",
                            "src": "13959:7:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "14035:16:81",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "14044:1:81",
                                    "type": "",
                                    "value": "0"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "14047:1:81",
                                    "type": "",
                                    "value": "0"
                                  }
                                ],
                                "functionName": {
                                  "name": "revert",
                                  "nodeType": "YulIdentifier",
                                  "src": "14037:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "14037:12:81"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "14037:12:81"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "length_1",
                              "nodeType": "YulIdentifier",
                              "src": "14005:8:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14015:18:81",
                              "type": "",
                              "value": "0xffffffffffffffff"
                            }
                          ],
                          "functionName": {
                            "name": "gt",
                            "nodeType": "YulIdentifier",
                            "src": "14002:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14002:32:81"
                        },
                        "nodeType": "YulIf",
                        "src": "13999:52:81"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "14111:16:81",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "14120:1:81",
                                    "type": "",
                                    "value": "0"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "14123:1:81",
                                    "type": "",
                                    "value": "0"
                                  }
                                ],
                                "functionName": {
                                  "name": "revert",
                                  "nodeType": "YulIdentifier",
                                  "src": "14113:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "14113:12:81"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "14113:12:81"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "value_2",
                              "nodeType": "YulIdentifier",
                              "src": "14071:7:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [],
                                  "functionName": {
                                    "name": "calldatasize",
                                    "nodeType": "YulIdentifier",
                                    "src": "14084:12:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "14084:14:81"
                                },
                                {
                                  "name": "length_1",
                                  "nodeType": "YulIdentifier",
                                  "src": "14100:8:81"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "14080:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "14080:29:81"
                            }
                          ],
                          "functionName": {
                            "name": "sgt",
                            "nodeType": "YulIdentifier",
                            "src": "14067:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14067:43:81"
                        },
                        "nodeType": "YulIf",
                        "src": "14064:63:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "14140:59:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "value_2",
                              "nodeType": "YulIdentifier",
                              "src": "14175:7:81"
                            },
                            {
                              "name": "length_1",
                              "nodeType": "YulIdentifier",
                              "src": "14184:8:81"
                            },
                            {
                              "name": "tail",
                              "nodeType": "YulIdentifier",
                              "src": "14194:4:81"
                            }
                          ],
                          "functionName": {
                            "name": "abi_encode_string_calldata",
                            "nodeType": "YulIdentifier",
                            "src": "14148:26:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14148:51:81"
                        },
                        "variableNames": [
                          {
                            "name": "tail",
                            "nodeType": "YulIdentifier",
                            "src": "14140:4:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "14212:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "14226:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "14234:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "14222:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14222:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "14212:6:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "14250:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "14261:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "14266:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "14257:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14257:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "14250:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "13588:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "13591:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "13585:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13585:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "13599:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "13601:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "13610:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13613:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "13606:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13606:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "13601:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "13581:3:81",
                    "statements": []
                  },
                  "src": "13577:702:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14288:11:81",
                  "value": {
                    "name": "tail",
                    "nodeType": "YulIdentifier",
                    "src": "14295:4:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "14288:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_string_calldata_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "13291:5:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "13298:6:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "13306:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "13314:3:81",
                "type": ""
              }
            ],
            "src": "13236:1069:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "14581:278:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14598:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14609:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14591:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14591:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14591:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14621:87:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "14673:6:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "14681:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14693:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14704:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14689:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14689:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "14635:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14635:73:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "14625:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14728:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14739:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14724:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14724:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "14748:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14756:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "14744:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14744:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14717:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14717:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14717:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14776:77:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "14830:6:81"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "14838:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "14846:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_string_calldata_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "14784:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14784:69:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "14776:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "14526:9:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "14537:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "14545:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "14553:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "14561:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "14572:4:81",
                "type": ""
              }
            ],
            "src": "14310:549:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15038:232:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15055:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15066:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15048:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15048:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15048:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15089:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15100:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15085:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15085:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15105:2:81",
                        "type": "",
                        "value": "42"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15078:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15078:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15078:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15128:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15139:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15124:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15124:18:81"
                      },
                      {
                        "hexValue": "52657175697265732063726561746f7220746f20696d706c656d656e74204943",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "15144:34:81",
                        "type": "",
                        "value": "Requires creator to implement IC"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15117:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15117:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15117:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15199:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15210:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15195:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15195:18:81"
                      },
                      {
                        "hexValue": "726561746f72436f7265",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "15215:12:81",
                        "type": "",
                        "value": "reatorCore"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15188:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15188:40:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15188:40:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15237:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15249:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15260:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "15245:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15245:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "15237:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_5008840e1de1507df2e3a620d2dc14b2ab0df7e1a9ea23315157a6dc120997fd__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "15015:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "15029:4:81",
                "type": ""
              }
            ],
            "src": "14864:406:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15449:228:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15466:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15477:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15459:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15459:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15459:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15500:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15511:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15496:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15496:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15516:2:81",
                        "type": "",
                        "value": "38"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15489:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15489:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15489:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15539:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15550:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15535:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15535:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "15555:34:81",
                        "type": "",
                        "value": "Ownable: new owner is the zero a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15528:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15528:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15528:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15610:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15621:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15606:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15606:18:81"
                      },
                      {
                        "hexValue": "646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "15626:8:81",
                        "type": "",
                        "value": "ddress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15599:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15599:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15599:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15644:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15656:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15667:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "15652:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15652:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "15644:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "15426:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "15440:4:81",
                "type": ""
              }
            ],
            "src": "15275:402:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15760:369:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "15777:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "15782:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15770:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15770:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15770:19:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15798:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "15808:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "15802:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15821:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "15832:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "15837:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "15828:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15828:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "15821:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15849:19:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "15863:5:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "15853:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15877:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "15886:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "15881:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15945:159:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "15966:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "15994:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "abi_decode_address",
                                    "nodeType": "YulIdentifier",
                                    "src": "15975:18:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "15975:26:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "16011:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "16016:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "16007:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "16007:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "16020:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "16003:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "16003:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "15971:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "15971:52:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "15959:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15959:65:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15959:65:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "16037:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "16048:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "16053:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "16044:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16044:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "16037:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "16069:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "16083:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "16091:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "16079:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16079:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "16069:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "15907:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "15910:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "15904:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15904:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "15918:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "15920:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "15929:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15932:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "15925:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15925:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "15920:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "15900:3:81",
                    "statements": []
                  },
                  "src": "15896:208:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16113:10:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "16120:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "16113:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_address_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "15729:5:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "15736:6:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "15744:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "15752:3:81",
                "type": ""
              }
            ],
            "src": "15682:447:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16471:413:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16488:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16499:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "16481:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16481:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16481:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16511:87:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "16563:6:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "16571:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16583:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16594:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16579:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16579:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "16525:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16525:73:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "16515:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16618:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16629:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16614:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16614:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "16638:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16646:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "16634:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16634:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "16607:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16607:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16607:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16666:75:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "16718:6:81"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "16726:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "16734:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "16680:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16680:61:81"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nodeType": "YulTypedName",
                      "src": "16670:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16761:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16772:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16757:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16757:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_2",
                            "nodeType": "YulIdentifier",
                            "src": "16781:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16789:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "16777:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16777:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "16750:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16750:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16750:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16809:69:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "16855:6:81"
                      },
                      {
                        "name": "value5",
                        "nodeType": "YulIdentifier",
                        "src": "16863:6:81"
                      },
                      {
                        "name": "tail_2",
                        "nodeType": "YulIdentifier",
                        "src": "16871:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "16817:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16817:61:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "16809:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "16400:9:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "16411:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "16419:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "16427:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "16435:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "16443:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "16451:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "16462:4:81",
                "type": ""
              }
            ],
            "src": "16134:750:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17063:182:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17080:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17091:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17073:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17073:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17073:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17114:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17125:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17110:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17110:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17130:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17103:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17103:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17103:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17153:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17164:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17149:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17149:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "17169:34:81",
                        "type": "",
                        "value": "Ownable: caller is not the owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17142:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17142:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17142:62:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17213:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17225:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17236:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "17221:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17221:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "17213:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "17040:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "17054:4:81",
                "type": ""
              }
            ],
            "src": "16889:356:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17424:232:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17441:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17452:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17434:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17434:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17434:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17475:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17486:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17471:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17471:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17491:2:81",
                        "type": "",
                        "value": "42"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17464:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17464:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17464:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17514:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17525:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17510:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17510:18:81"
                      },
                      {
                        "hexValue": "63726561746f72206d75737420696d706c656d656e7420494552433131353543",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "17530:34:81",
                        "type": "",
                        "value": "creator must implement IERC1155C"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17503:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17503:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17503:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17585:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17596:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17581:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17581:18:81"
                      },
                      {
                        "hexValue": "726561746f72436f7265",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "17601:12:81",
                        "type": "",
                        "value": "reatorCore"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17574:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17574:40:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17574:40:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17623:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17635:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17646:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "17631:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17631:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "17623:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_3014647907c38d3a80ad4aa54f6cb0cec86575ac6288d560919ff9bf7f89a0f7__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "17401:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "17415:4:81",
                "type": ""
              }
            ],
            "src": "17250:406:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18020:421:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18037:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18048:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18030:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18030:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18030:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18060:87:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "18112:6:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "18120:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18132:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18143:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18128:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18128:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "18074:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18074:73:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "18064:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18167:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18178:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18163:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18163:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "18187:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18195:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18183:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18183:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18156:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18156:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18156:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18215:75:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "18267:6:81"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "18275:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "18283:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "18229:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18229:61:81"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nodeType": "YulTypedName",
                      "src": "18219:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18310:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18321:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18306:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18306:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_2",
                            "nodeType": "YulIdentifier",
                            "src": "18330:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18338:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18326:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18326:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18299:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18299:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18299:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18358:77:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "18412:6:81"
                      },
                      {
                        "name": "value5",
                        "nodeType": "YulIdentifier",
                        "src": "18420:6:81"
                      },
                      {
                        "name": "tail_2",
                        "nodeType": "YulIdentifier",
                        "src": "18428:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_string_calldata_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "18366:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18366:69:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "18358:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "17949:9:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "17960:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "17968:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "17976:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "17984:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "17992:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "18000:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "18011:4:81",
                "type": ""
              }
            ],
            "src": "17661:780:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18552:999:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18562:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "18572:2:81",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "18566:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18619:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18628:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18631:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18621:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18621:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18621:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "18594:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18603:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18590:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18590:23:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "18615:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "18586:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18586:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18583:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18644:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18664:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "18658:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18658:16:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "18648:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18683:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "18693:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "18687:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18738:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18747:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18750:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18740:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18740:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18740:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "18726:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "18734:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "18723:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18723:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18720:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18763:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18777:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "18788:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "18773:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18773:22:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "18767:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18843:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18852:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18855:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18845:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18845:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18845:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "18822:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "18826:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "18818:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "18818:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "18833:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "18814:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18814:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "18807:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18807:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18804:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18868:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "18884:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "18878:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18878:9:81"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nodeType": "YulTypedName",
                      "src": "18872:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18910:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "18912:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18912:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18912:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "18902:2:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "18906:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "18899:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18899:10:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18896:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18941:20:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18955:1:81",
                        "type": "",
                        "value": "5"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "18958:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "shl",
                      "nodeType": "YulIdentifier",
                      "src": "18951:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18951:10:81"
                  },
                  "variables": [
                    {
                      "name": "_5",
                      "nodeType": "YulTypedName",
                      "src": "18945:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18970:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18990:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "18984:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18984:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "18974:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19002:56:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "19024:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_5",
                                "nodeType": "YulIdentifier",
                                "src": "19040:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "19044:2:81",
                                "type": "",
                                "value": "63"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "19036:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "19036:11:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "19053:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "19049:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "19049:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "19032:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19032:25:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "19020:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19020:38:81"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nodeType": "YulTypedName",
                      "src": "19006:10:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19117:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "19119:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19119:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19119:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "19076:10:81"
                          },
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "19088:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "19073:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19073:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "19096:10:81"
                          },
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "19108:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "19093:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19093:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "19070:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19070:46:81"
                  },
                  "nodeType": "YulIf",
                  "src": "19067:72:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19155:2:81",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nodeType": "YulIdentifier",
                        "src": "19159:10:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19148:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19148:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19148:22:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19179:17:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "19190:6:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "19183:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "19212:6:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "19220:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19205:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19205:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19205:18:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19232:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "19243:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "19251:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "19239:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19239:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "19232:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19263:34:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_3",
                            "nodeType": "YulIdentifier",
                            "src": "19285:2:81"
                          },
                          {
                            "name": "_5",
                            "nodeType": "YulIdentifier",
                            "src": "19289:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19281:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19281:11:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "19294:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "19277:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19277:20:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "19267:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19329:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19338:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19341:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "19331:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19331:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19331:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "19312:6:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "19320:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "19309:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19309:19:81"
                  },
                  "nodeType": "YulIf",
                  "src": "19306:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19354:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "19369:2:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "19373:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "19365:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19365:11:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "19358:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19441:79:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "19462:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "src",
                                  "nodeType": "YulIdentifier",
                                  "src": "19473:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "19467:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "19467:10:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "19455:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19455:23:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19455:23:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "19491:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "19502:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "19507:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "19498:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19498:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "19491:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "19396:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "19401:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "19393:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19393:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "19409:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "19411:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "19422:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "19427:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "19418:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19418:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "19411:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "19389:3:81",
                    "statements": []
                  },
                  "src": "19385:135:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19529:16:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "19539:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "19529:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18518:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "18529:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "18541:6:81",
                "type": ""
              }
            ],
            "src": "18446:1105:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "19730:225:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "19747:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19758:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19740:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19740:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19740:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19781:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19792:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19777:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19777:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19797:2:81",
                        "type": "",
                        "value": "35"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19770:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19770:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19770:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19820:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19831:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19816:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19816:18:81"
                      },
                      {
                        "hexValue": "43616e206f6e6c792062652063616c6c656420627920746f6b656e2063726561",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "19836:34:81",
                        "type": "",
                        "value": "Can only be called by token crea"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19809:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19809:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19809:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19891:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19902:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19887:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19887:18:81"
                      },
                      {
                        "hexValue": "746f72",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "19907:5:81",
                        "type": "",
                        "value": "tor"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19880:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19880:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19880:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19922:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "19934:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19945:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "19930:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19930:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "19922:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_a7799927f69afdc4e349874d858a998867065cdd7a64751c41248a3f2a0a2190__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "19707:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "19721:4:81",
                "type": ""
              }
            ],
            "src": "19556:399:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20009:79:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "20019:17:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "20031:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "20034:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "20027:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20027:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nodeType": "YulIdentifier",
                      "src": "20019:4:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "20060:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "20062:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "20062:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "20062:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "diff",
                        "nodeType": "YulIdentifier",
                        "src": "20051:4:81"
                      },
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "20057:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "20048:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20048:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "20045:37:81"
                }
              ]
            },
            "name": "checked_sub_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "19991:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "19994:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nodeType": "YulTypedName",
                "src": "20000:4:81",
                "type": ""
              }
            ],
            "src": "19960:128:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20125:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20142:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20149:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20154:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "20145:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20145:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20135:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20135:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20135:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20182:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20185:4:81",
                        "type": "",
                        "value": "0x31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20175:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20175:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20175:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20206:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20209:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "20199:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20199:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20199:15:81"
                }
              ]
            },
            "name": "panic_error_0x31",
            "nodeType": "YulFunctionDefinition",
            "src": "20093:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20324:103:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "20334:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20346:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20357:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "20342:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20342:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "20334:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20376:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "20391:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "20403:3:81",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "20408:10:81",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "20399:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "20399:20:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "20387:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20387:33:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20369:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20369:52:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20369:52:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "20293:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "20304:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "20315:4:81",
                "type": ""
              }
            ],
            "src": "20225:202:81"
          }
        ]
      },
      "contents": "{\n    { }\n    function abi_decode_tuple_t_bytes4(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, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\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_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_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_decode_array_address_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n    function abi_decode_string_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_string_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let value := calldataload(add(headStart, 64))\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value3 := value\n    }\n    function abi_decode_tuple_t_addresst_uint256t_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_decode_tuple_t_addresst_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n        let offset_2 := calldataload(add(headStart, 96))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value5_1, value6_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value5 := value5_1\n        value6 := value6_1\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_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 panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_stringliteral_ca6fc84f9a44d1110756284e5c56ff72cff80e2de6c9cfbe8379a88afa111687__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"AdminControl: Must be owner or a\")\n        mstore(add(headStart, 96), \"dmin\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_a9e30b95a1848f4603ebfb567134faff2d36aca09b34ea40454f03c2999717db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Requires creator to implement Cr\")\n        mstore(add(headStart, 96), \"eatorCore\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_string_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_calldata_ptr_t_bool__to_t_string_memory_ptr_t_bool__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        tail := abi_encode_string_calldata(value0, value1, add(headStart, 64))\n        mstore(add(headStart, 32), iszero(iszero(value2)))\n    }\n    function abi_encode_tuple_t_uint256_t_string_calldata_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string_calldata(value1, value2, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string_calldata(value0, value1, add(headStart, 32))\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_array_uint256_dyn_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        if gt(length, sub(shl(251, 1), 1)) { revert(0, 0) }\n        let length_1 := shl(5, length)\n        calldatacopy(add(pos, 0x20), start, length_1)\n        end := add(add(pos, length_1), 0x20)\n    }\n    function abi_encode_array_string_calldata_dyn_calldata(value, length, pos) -> end\n    {\n        mstore(pos, length)\n        let _1 := 0x20\n        let updated_pos := add(pos, _1)\n        let pos_1 := updated_pos\n        pos := updated_pos\n        let tail := add(pos_1, shl(5, length))\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, sub(tail, pos_1))\n            let rel_offset_of_tail := calldataload(srcPtr)\n            if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), value), not(30)))) { revert(0, 0) }\n            let value_1 := add(rel_offset_of_tail, value)\n            let length_1 := calldataload(value_1)\n            let value_2 := add(value_1, _1)\n            if gt(length_1, 0xffffffffffffffff) { revert(0, 0) }\n            if sgt(value_2, sub(calldatasize(), length_1)) { revert(0, 0) }\n            tail := abi_encode_string_calldata(value_2, length_1, tail)\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        end := tail\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        let tail_1 := abi_encode_array_uint256_dyn_calldata(value0, value1, add(headStart, 64))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        tail := abi_encode_array_string_calldata_dyn_calldata(value2, value3, tail_1)\n    }\n    function abi_encode_tuple_t_stringliteral_5008840e1de1507df2e3a620d2dc14b2ab0df7e1a9ea23315157a6dc120997fd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"Requires creator to implement IC\")\n        mstore(add(headStart, 96), \"reatorCore\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_array_address_dyn_calldata(value, length, pos) -> end\n    {\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(abi_decode_address(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 96)\n        let tail_1 := abi_encode_array_address_dyn_calldata(value0, value1, add(headStart, 96))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn_calldata(value2, value3, tail_1)\n        mstore(add(headStart, 64), sub(tail_2, headStart))\n        tail := abi_encode_array_uint256_dyn_calldata(value4, value5, tail_2)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_3014647907c38d3a80ad4aa54f6cb0cec86575ac6288d560919ff9bf7f89a0f7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"creator must implement IERC1155C\")\n        mstore(add(headStart, 96), \"reatorCore\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 96)\n        let tail_1 := abi_encode_array_address_dyn_calldata(value0, value1, add(headStart, 96))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn_calldata(value2, value3, tail_1)\n        mstore(add(headStart, 64), sub(tail_2, headStart))\n        tail := abi_encode_array_string_calldata_dyn_calldata(value4, value5, tail_2)\n    }\n    function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        let _1 := 32\n        if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(0, 0) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n        let _4 := mload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let _5 := shl(5, _4)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(_5, 63), not(31)))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let dst := memPtr\n        mstore(memPtr, _4)\n        dst := add(memPtr, _1)\n        let srcEnd := add(add(_3, _5), _1)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_3, _1)\n        for { } lt(src, srcEnd) { src := add(src, _1) }\n        {\n            mstore(dst, mload(src))\n            dst := add(dst, _1)\n        }\n        value0 := memPtr\n    }\n    function abi_encode_tuple_t_stringliteral_a7799927f69afdc4e349874d858a998867065cdd7a64751c41248a3f2a0a2190__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"Can only be called by token crea\")\n        mstore(add(headStart, 96), \"tor\")\n        tail := add(headStart, 128)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x31)\n        revert(0, 0x24)\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}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "177:1721:59:-:0;;;745:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:7;719:10:17;936:18:7;:32::i;:::-;784:8:59;:18;;-1:-1:-1;;;;;;784:18:59;-1:-1:-1;;;;;784:18:59;;;;;;;;;;177:1721;;2433:187:7;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:7;;;-1:-1:-1;;;;;;2541:17:7;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:290:81:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:81;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:81:o;:::-;177:1721:59;;;;;;",
  "deployedSourceMap": "177:1721:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;450:289;;;;;;:::i;:::-;;:::i;:::-;;;470:14:81;;463:22;445:41;;433:2;418:18;450:289:59;;;;;;;;1980:137:0;;;;;;:::i;:::-;;:::i;1458:114:59:-;;;;;;:::i;:::-;1518:7;1544:21;;;:12;:21;;;;;;;1458:114;;;;1197:25:81;;;1185:2;1170:18;1458:114:59;1051:177:81;1712:205:0;;;;;;:::i;:::-;;:::i;:::-;;1111:261;;;:::i;:::-;;;;;;;:::i;815:318:59:-;;;;;;:::i;:::-;;:::i;1284:326:42:-;;;;;;:::i;:::-;;:::i;1686:317::-;;;;;;:::i;:::-;;:::i;1440:205:0:-;;;;;;:::i;:::-;;:::i;1831:101:7:-;;;:::i;2495:309:42:-;;;;;;:::i;:::-;;:::i;1578:318:59:-;;;;;;:::i;:::-;;:::i;1351:101::-;;;:::i;:::-;;;;;;;:::i;1201:85:7:-;;;:::i;:::-;;;-1:-1:-1;;;;;7078:32:81;;;7060:51;;7048:2;7033:18;1201:85:7;6914:203:81;2079:334:42;;;;;;:::i;:::-;;:::i;1075:219:45:-;;;;;;:::i;:::-;;:::i;904:300:42:-;;;;;;:::i;:::-;;:::i;2081:198:7:-;;;;;;:::i;:::-;;:::i;1139:206:59:-;;;;;;:::i;:::-;;:::i;450:289::-;591:4;614:52;654:11;614:39;:52::i;:::-;:118;;;;670:62;720:11;670:49;:62::i;:::-;607:125;450:289;-1:-1:-1;;450:289:59:o;1980:137:0:-;2042:4;2077:5;-1:-1:-1;;;;;2066:16:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2066:16:0;;:43;;;-1:-1:-1;2086:23:0;:7;2103:5;2086:16;:23::i;1712:205::-;1094:13:7;:11;:13::i;:::-;1790:23:0::1;:7;1807:5:::0;1790:16:::1;:23::i;:::-;1786:125;;;1834:31;::::0;1854:10:::1;::::0;-1:-1:-1;;;;;1834:31:0;::::1;::::0;::::1;::::0;;;::::1;1879:21;:7;1894:5:::0;1879:14:::1;:21::i;:::-;;1786:125;1712:205:::0;:::o;1111:261::-;1164:23;1222:16;:7;:14;:16::i;:::-;-1:-1:-1;;;;;1208:31:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1208:31:0;;1199:40;;1254:6;1249:94;1270:16;:7;:14;:16::i;:::-;1266:1;:20;1249:94;;;1319:13;:7;1330:1;1319:10;:13::i;:::-;1307:6;1314:1;1307:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1307:25:0;;;:9;;;;;;;;;;;:25;1288:3;;;;:::i;:::-;;;;1249:94;;;;1111:261;:::o;815:318:59:-;967:8;;930:25;;958:37;;-1:-1:-1;;;;;967:8:59;977:2;;981:7;;990:4;;958:8;:37::i;:::-;930:65;;1010:6;1005:122;1022:8;:15;1018:1;:19;1005:122;;;1054:13;1073:8;1082:1;1073:11;;;;;;;;:::i;:::-;;;;;;;;;;;;1054:31;;;;;;;;-1:-1:-1;1054:31:59;;;;;;;;;;;;;;1111:3;1005:122;;;;920:213;815:318;;;;;;:::o;1284:326:42:-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;;;;;;;;;1413:72:42::1;1445:7;-1:-1:-1::0;;;1413:31:42::1;:72::i;:::-;1405:126;;;;-1:-1:-1::0;;;1405:126:42::1;;;;;;;:::i;:::-;1541:62;::::0;-1:-1:-1;;;1541:62:42;;-1:-1:-1;;;;;1541:46:42;::::1;::::0;::::1;::::0;:62:::1;::::0;1588:3;;;;1593:9;;1541:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;1686:317:::0;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;1812:72:42::1;1844:7;-1:-1:-1::0;;;1812:31:42::1;:72::i;:::-;1804:126;;;;-1:-1:-1::0;;;1804:126:42::1;;;;;;;:::i;:::-;1940:56;::::0;-1:-1:-1;;;1940:56:42;;-1:-1:-1;;;;;1940:42:42;::::1;::::0;::::1;::::0;:56:::1;::::0;1983:7;;1992:3;;;;1940:56:::1;;;:::i;1440:205:0:-:0;1094:13:7;:11;:13::i;:::-;1520:23:0::1;:7;1537:5:::0;1520:16:::1;:23::i;:::-;1515:124;;1564:32;::::0;1585:10:::1;::::0;-1:-1:-1;;;;;1564:32:0;::::1;::::0;::::1;::::0;;;::::1;1610:18;:7;1622:5:::0;1610:11:::1;:18::i;1831:101:7:-:0;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2495:309:42:-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;2613:72:42::1;2645:7;-1:-1:-1::0;;;2613:31:42::1;:72::i;:::-;2605:126;;;;-1:-1:-1::0;;;2605:126:42::1;;;;;;;:::i;:::-;2741:56;::::0;-1:-1:-1;;;2741:56:42;;-1:-1:-1;;;;;2741:48:42;::::1;::::0;::::1;::::0;:56:::1;::::0;2790:6;;;;2741:56:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2495:309:::0;;;:::o;1578:318:59:-;1689:61;1728:2;1732:8;;1742:7;;1689:38;:61::i;:::-;1765:6;1760:130;1773:19;;;1760:130;;;1838:7;;1846:1;1838:10;;;;;;;:::i;:::-;;;;;;;1809:12;:25;1822:8;;1831:1;1822:11;;;;;;;:::i;:::-;;;;;;;1809:25;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;-1:-1:-1;;1874:3:59;;1760:130;;;;1578:318;;;;;:::o;1351:101::-;1397:16;1432:13;1425:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1351:101;:::o;1201:85:7:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:7;;1201:85::o;2079:334:42:-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;2220:72:42::1;2252:7;-1:-1:-1::0;;;2220:31:42::1;:72::i;:::-;2212:126;;;;-1:-1:-1::0;;;2212:126:42::1;;;;;;;:::i;:::-;2348:58;::::0;-1:-1:-1;;;2348:58:42;;-1:-1:-1;;;;;2348:42:42;::::1;::::0;::::1;::::0;:58:::1;::::0;2391:8;;;;2401:4;;;;2348:58:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2079:334:::0;;;;;:::o;1075:219:45:-;1216:16;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;1251:36:45::1;1260:7;1269:2;;1273:7;;1282:4;;1251:8;:36::i;:::-;1244:43:::0;1075:219;-1:-1:-1;;;;;;;;1075:219:45:o;904:300:42:-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;1017:72:42::1;1049:7;-1:-1:-1::0;;;1017:31:42::1;:72::i;:::-;1009:127;;;::::0;-1:-1:-1;;;1009:127:42;;15066:2:81;1009:127:42::1;::::0;::::1;15048:21:81::0;15105:2;15085:18;;;15078:30;15144:34;15124:18;;;15117:62;-1:-1:-1;;;15195:18:81;;;15188:40;15245:19;;1009:127:42::1;14864:406:81::0;1009:127:42::1;1146:51;::::0;-1:-1:-1;;;1146:51:42;;-1:-1:-1;;;;;1146:46:42;::::1;::::0;::::1;::::0;:51:::1;::::0;1193:3;;;;1146:51:::1;;;:::i;2081:198:7:-:0;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:7;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:7;;15477:2:81;2161:73:7::1;::::0;::::1;15459:21:81::0;15516:2;15496:18;;;15489:30;15555:34;15535:18;;;15528:62;-1:-1:-1;;;15606:18:81;;;15599:36;15652:19;;2161:73:7::1;15275:402:81::0;2161:73:7::1;2244:28;2263:8;2244:18;:28::i;1139:206:59:-:0;1284:8;;1264:74;;-1:-1:-1;;;1264:74:59;;-1:-1:-1;;;;;1284:8:59;;;;1264:51;;:74;;1316:2;;;;1320:8;;;;1330:7;;;;1264:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1139:206;;;;;;:::o;561:263:42:-;687:4;-1:-1:-1;;;;;;710:55:42;;-1:-1:-1;;;710:55:42;;:107;;;781:36;805:11;781:23;:36::i;767:255:45:-;875:4;-1:-1:-1;;;;;;898:65:45;;-1:-1:-1;;;898:65:45;;:117;;;979:36;1003:11;979:23;:36::i;8852:165:23:-;-1:-1:-1;;;;;8985:23:23;;8932:4;4343:19;;;:12;;;:19;;;;;;:24;;8955:55;8948:62;8852:165;-1:-1:-1;;;8852:165:23:o;1359:130:7:-;719:10:17;1422:7:7;:5;:7::i;:::-;-1:-1:-1;;;;;1422:23:7;;1414:68;;;;-1:-1:-1;;;1414:68:7;;17091:2:81;1414:68:7;;;17073:21:81;;;17110:18;;;17103:30;17169:34;17149:18;;;17142:62;17221:18;;1414:68:7;16889:356:81;8615:156:23;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:23;;8711:7;:53::i;9098:115::-;9161:7;9187:19;9195:3;4537:18;;4455:107;9555:156;9629:7;9679:22;9683:3;9695:5;9679:3;:22::i;1300:528:45:-;1428:25;1473:79;1505:7;-1:-1:-1;;;1473:31:45;:79::i;:::-;1465:134;;;;-1:-1:-1;;;1465:134:45;;17452:2:81;1465:134:45;;;17434:21:81;17491:2;17471:18;;;17464:30;17530:34;17510:18;;;17503:62;-1:-1:-1;;;17581:18:81;;;17574:40;17631:19;;1465:134:45;17250:406:81;1465:134:45;1620:64;;-1:-1:-1;;;1620:64:45;;-1:-1:-1;;;;;1620:45:45;;;;;:64;;1666:2;;;;1670:7;;;;1679:4;;;;1620:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1620:64:45;;;;;;;;;;;;:::i;:::-;1609:75;;1699:6;1694:128;1711:8;:15;1707:1;:19;1694:128;;;1773:7;1743:14;:27;1758:8;1767:1;1758:11;;;;;;;;:::i;:::-;;;;;;;1743:27;;;;;;;;;;;;:37;;;;;-1:-1:-1;;;;;1743:37:45;;;;;-1:-1:-1;;;;;1743:37:45;;;;;;1806:3;;;;;1694:128;;;;1300:528;;;;;;;;;:::o;1349:282:20:-;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;8297:150:23:-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:23;;8390:4;:50::i;2433:187:7:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:7;;;-1:-1:-1;;;;;;2541:17:7;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;1909:294:45:-;2022:6;2017:180;2030:19;;;2017:180;;;2105:10;2074:14;:27;2089:8;;2098:1;2089:11;;;;;;;:::i;:::-;;;;;;;;;;2074:27;;-1:-1:-1;2074:27:45;;;;;;;;-1:-1:-1;2074:27:45;;-1:-1:-1;;;;;2074:27:45;:41;2066:89;;;;-1:-1:-1;;;2066:89:45;;19758:2:81;2066:89:45;;;19740:21:81;19797:2;19777:18;;;19770:30;19836:34;19816:18;;;19809:62;-1:-1:-1;;;19887:18:81;;;19880:33;19930:19;;2066:89:45;19556:399:81;2066:89:45;2181:3;;2017:180;;601:216:41;694:4;-1:-1:-1;;;;;;717:41:41;;-1:-1:-1;;;717:41:41;;:93;;;774:36;798:11;774:23;:36::i;2778:1388:23:-;2844:4;2981:19;;;:12;;;:19;;;;;;3015:15;;3011:1149;;3384:21;3408:14;3421:1;3408:10;:14;:::i;:::-;3456:18;;3384:38;;-1:-1:-1;3436:17:23;;3456:22;;3477:1;;3456:22;:::i;:::-;3436:42;;3510:13;3497:9;:26;3493:398;;3543:17;3563:3;:11;;3575:9;3563:22;;;;;;;;:::i;:::-;;;;;;;;;3543:42;;3714:9;3685:3;:11;;3697:13;3685:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3797:23;;;:12;;;:23;;;;;:36;;;3493:398;3969:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4061:3;:12;;:19;4074:5;4061:19;;;;;;;;;;;4054:26;;;4102:4;4095:11;;;;;;;3011:1149;4144:5;4137:12;;;;;4904:118;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::o;704:427:20:-;768:4;975:68;1008:7;-1:-1:-1;;;975:32:20;:68::i;:::-;:149;;;;-1:-1:-1;1060:64:20;1093:7;-1:-1:-1;;;;;;1060:32:20;:64::i;:::-;1059:65;956:168;704:427;-1:-1:-1;;704:427:20:o;4262:647::-;4433:71;;;-1:-1:-1;;;;;;20387:33:81;;4433:71:20;;;;20369:52:81;;;;4433:71:20;;;;;;;;;;20342:18:81;;;;4433:71:20;;;;;;;;;-1:-1:-1;;;;;4433:71:20;-1:-1:-1;;;4433:71:20;;;4712:20;;4364:4;;4433:71;4364:4;;;;;;4433:71;4364:4;;4712:20;4677:7;4670:5;4659:86;4648:97;;4772:16;4758:30;;4822:4;4816:11;4801:26;;4854:7;:29;;;;;4879:4;4865:10;:18;;4854:29;:48;;;;;4901:1;4887:11;:15;4854:48;4847:55;4262:647;-1:-1:-1;;;;;;;4262:647:20:o;2206:404:23:-;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:23;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:23;2581:12;;565:230:0;667:4;-1:-1:-1;;;;;;690:46:0;;-1:-1:-1;;;690:46:0;;:98;;-1:-1:-1;;;;;;;;;;937:40:19;;;752:36:0;829:155:19;14:286:81;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:81;;209:43;;199:71;;266:1;263;256:12;497:173;565:20;;-1:-1:-1;;;;;614:31:81;;604:42;;594:70;;660:1;657;650:12;594:70;497:173;;;:::o;675:186::-;734:6;787:2;775:9;766:7;762:23;758:32;755:52;;;803:1;800;793:12;755:52;826:29;845:9;826:29;:::i;866:180::-;925:6;978:2;966:9;957:7;953:23;949:32;946:52;;;994:1;991;984:12;946:52;-1:-1:-1;1017:23:81;;866:180;-1:-1:-1;866:180:81:o;1233:658::-;1404:2;1456:21;;;1526:13;;1429:18;;;1548:22;;;1375:4;;1404:2;1627:15;;;;1601:2;1586:18;;;1375:4;1670:195;1684:6;1681:1;1678:13;1670:195;;;1749:13;;-1:-1:-1;;;;;1745:39:81;1733:52;;1840:15;;;;1805:12;;;;1781:1;1699:9;1670:195;;;-1:-1:-1;1882:3:81;;1233:658;-1:-1:-1;;;;;;1233:658:81:o;1896:367::-;1959:8;1969:6;2023:3;2016:4;2008:6;2004:17;2000:27;1990:55;;2041:1;2038;2031:12;1990:55;-1:-1:-1;2064:20:81;;-1:-1:-1;;;;;2096:30:81;;2093:50;;;2139:1;2136;2129:12;2093:50;2176:4;2168:6;2164:17;2152:29;;2236:3;2229:4;2219:6;2216:1;2212:14;2204:6;2200:27;2196:38;2193:47;2190:67;;;2253:1;2250;2243:12;2190:67;1896:367;;;;;:::o;2268:1100::-;2438:6;2446;2454;2462;2470;2478;2531:2;2519:9;2510:7;2506:23;2502:32;2499:52;;;2547:1;2544;2537:12;2499:52;2587:9;2574:23;-1:-1:-1;;;;;2657:2:81;2649:6;2646:14;2643:34;;;2673:1;2670;2663:12;2643:34;2712:70;2774:7;2765:6;2754:9;2750:22;2712:70;:::i;:::-;2801:8;;-1:-1:-1;2686:96:81;-1:-1:-1;2889:2:81;2874:18;;2861:32;;-1:-1:-1;2905:16:81;;;2902:36;;;2934:1;2931;2924:12;2902:36;2973:72;3037:7;3026:8;3015:9;3011:24;2973:72;:::i;:::-;3064:8;;-1:-1:-1;2947:98:81;-1:-1:-1;3152:2:81;3137:18;;3124:32;;-1:-1:-1;3168:16:81;;;3165:36;;;3197:1;3194;3187:12;3165:36;;3236:72;3300:7;3289:8;3278:9;3274:24;3236:72;:::i;:::-;2268:1100;;;;-1:-1:-1;2268:1100:81;;-1:-1:-1;2268:1100:81;;3327:8;;2268:1100;-1:-1:-1;;;2268:1100:81:o;3373:348::-;3425:8;3435:6;3489:3;3482:4;3474:6;3470:17;3466:27;3456:55;;3507:1;3504;3497:12;3456:55;-1:-1:-1;3530:20:81;;-1:-1:-1;;;;;3562:30:81;;3559:50;;;3605:1;3602;3595:12;3559:50;3642:4;3634:6;3630:17;3618:29;;3694:3;3687:4;3678:6;3670;3666:19;3662:30;3659:39;3656:59;;;3711:1;3708;3701:12;3726:646;3812:6;3820;3828;3836;3889:2;3877:9;3868:7;3864:23;3860:32;3857:52;;;3905:1;3902;3895:12;3857:52;3928:29;3947:9;3928:29;:::i;:::-;3918:39;;4008:2;3997:9;3993:18;3980:32;-1:-1:-1;;;;;4027:6:81;4024:30;4021:50;;;4067:1;4064;4057:12;4021:50;4106:59;4157:7;4148:6;4137:9;4133:22;4106:59;:::i;:::-;4184:8;;-1:-1:-1;4080:85:81;-1:-1:-1;;4269:2:81;4254:18;;4241:32;4309:13;;4302:21;4292:32;;4282:60;;4338:1;4335;4328:12;4282:60;3726:646;;;;-1:-1:-1;3726:646:81;;-1:-1:-1;;3726:646:81:o;4377:553::-;4466:6;4474;4482;4490;4543:2;4531:9;4522:7;4518:23;4514:32;4511:52;;;4559:1;4556;4549:12;4511:52;4582:29;4601:9;4582:29;:::i;:::-;4572:39;;4658:2;4647:9;4643:18;4630:32;4620:42;;4713:2;4702:9;4698:18;4685:32;-1:-1:-1;;;;;4732:6:81;4729:30;4726:50;;;4772:1;4769;4762:12;4726:50;4811:59;4862:7;4853:6;4842:9;4838:22;4811:59;:::i;:::-;4377:553;;;;-1:-1:-1;4889:8:81;-1:-1:-1;;;;4377:553:81:o;4935:485::-;5015:6;5023;5031;5084:2;5072:9;5063:7;5059:23;5055:32;5052:52;;;5100:1;5097;5090:12;5052:52;5123:29;5142:9;5123:29;:::i;:::-;5113:39;;5203:2;5192:9;5188:18;5175:32;-1:-1:-1;;;;;5222:6:81;5219:30;5216:50;;;5262:1;5259;5252:12;5216:50;5301:59;5352:7;5343:6;5332:9;5328:22;5301:59;:::i;:::-;4935:485;;5379:8;;-1:-1:-1;5275:85:81;;-1:-1:-1;;;;4935:485:81:o;5425:847::-;5556:6;5564;5572;5580;5588;5641:2;5629:9;5620:7;5616:23;5612:32;5609:52;;;5657:1;5654;5647:12;5609:52;5680:29;5699:9;5680:29;:::i;:::-;5670:39;;5760:2;5749:9;5745:18;5732:32;-1:-1:-1;;;;;5824:2:81;5816:6;5813:14;5810:34;;;5840:1;5837;5830:12;5810:34;5879:70;5941:7;5932:6;5921:9;5917:22;5879:70;:::i;:::-;5968:8;;-1:-1:-1;5853:96:81;-1:-1:-1;6056:2:81;6041:18;;6028:32;;-1:-1:-1;6072:16:81;;;6069:36;;;6101:1;6098;6091:12;6069:36;;6140:72;6204:7;6193:8;6182:9;6178:24;6140:72;:::i;:::-;5425:847;;;;-1:-1:-1;5425:847:81;;-1:-1:-1;6231:8:81;;6114:98;5425:847;-1:-1:-1;;;5425:847:81:o;6277:632::-;6448:2;6500:21;;;6570:13;;6473:18;;;6592:22;;;6419:4;;6448:2;6671:15;;;;6645:2;6630:18;;;6419:4;6714:169;6728:6;6725:1;6722:13;6714:169;;;6789:13;;6777:26;;6858:15;;;;6823:12;;;;6750:1;6743:9;6714:169;;7986:1175;8165:6;8173;8181;8189;8197;8205;8213;8266:3;8254:9;8245:7;8241:23;8237:33;8234:53;;;8283:1;8280;8273:12;8234:53;8306:29;8325:9;8306:29;:::i;:::-;8296:39;;8386:2;8375:9;8371:18;8358:32;-1:-1:-1;;;;;8450:2:81;8442:6;8439:14;8436:34;;;8466:1;8463;8456:12;8436:34;8505:70;8567:7;8558:6;8547:9;8543:22;8505:70;:::i;:::-;8594:8;;-1:-1:-1;8479:96:81;-1:-1:-1;8682:2:81;8667:18;;8654:32;;-1:-1:-1;8698:16:81;;;8695:36;;;8727:1;8724;8717:12;8695:36;8766:72;8830:7;8819:8;8808:9;8804:24;8766:72;:::i;:::-;8857:8;;-1:-1:-1;8740:98:81;-1:-1:-1;8945:2:81;8930:18;;8917:32;;-1:-1:-1;8961:16:81;;;8958:36;;;8990:1;8987;8980:12;8958:36;;9029:72;9093:7;9082:8;9071:9;9067:24;9029:72;:::i;:::-;7986:1175;;;;-1:-1:-1;7986:1175:81;;-1:-1:-1;7986:1175:81;;;;9003:98;;-1:-1:-1;;;7986:1175:81:o;10259:127::-;10320:10;10315:3;10311:20;10308:1;10301:31;10351:4;10348:1;10341:15;10375:4;10372:1;10365:15;10391:127;10452:10;10447:3;10443:20;10440:1;10433:31;10483:4;10480:1;10473:15;10507:4;10504:1;10497:15;10523:127;10584:10;10579:3;10575:20;10572:1;10565:31;10615:4;10612:1;10605:15;10639:4;10636:1;10629:15;10655:135;10694:3;10715:17;;;10712:43;;10735:18;;:::i;:::-;-1:-1:-1;10782:1:81;10771:13;;10655:135::o;10795:400::-;10997:2;10979:21;;;11036:2;11016:18;;;11009:30;11075:34;11070:2;11055:18;;11048:62;-1:-1:-1;;;11141:2:81;11126:18;;11119:34;11185:3;11170:19;;10795:400::o;11200:405::-;11402:2;11384:21;;;11441:2;11421:18;;;11414:30;11480:34;11475:2;11460:18;;11453:62;-1:-1:-1;;;11546:2:81;11531:18;;11524:39;11595:3;11580:19;;11200:405::o;11610:267::-;11699:6;11694:3;11687:19;11751:6;11744:5;11737:4;11732:3;11728:14;11715:43;-1:-1:-1;11803:1:81;11778:16;;;11796:4;11774:27;;;11767:38;;;;11859:2;11838:15;;;-1:-1:-1;;11834:29:81;11825:39;;;11821:50;;11610:267::o;11882:328::-;12063:2;12052:9;12045:21;12026:4;12083:62;12141:2;12130:9;12126:18;12118:6;12110;12083:62;:::i;:::-;12075:70;;12195:6;12188:14;12181:22;12176:2;12165:9;12161:18;12154:50;11882:328;;;;;;:::o;12215:318::-;12402:6;12391:9;12384:25;12445:2;12440;12429:9;12425:18;12418:30;12365:4;12465:62;12523:2;12512:9;12508:18;12500:6;12492;12465:62;:::i;:::-;12457:70;12215:318;-1:-1:-1;;;;;12215:318:81:o;12538:247::-;12697:2;12686:9;12679:21;12660:4;12717:62;12775:2;12764:9;12760:18;12752:6;12744;12717:62;:::i;:::-;12709:70;12538:247;-1:-1:-1;;;;12538:247:81:o;12790:125::-;12855:9;;;12876:10;;;12873:36;;;12889:18;;:::i;12920:311::-;13008:19;;;12990:3;-1:-1:-1;;;;;13039:31:81;;13036:51;;;13083:1;13080;13073:12;13036:51;13119:6;13116:1;13112:14;13171:8;13164:5;13157:4;13152:3;13148:14;13135:45;13200:18;;;;13220:4;13196:29;;12920:311;-1:-1:-1;;;12920:311:81:o;13236:1069::-;13344:6;13339:3;13332:19;13314:3;13370:4;13411:2;13406:3;13402:12;13436:11;13463;13456:18;;13513:6;13510:1;13506:14;13499:5;13495:26;13483:38;;13544:5;13567:1;13577:702;13591:6;13588:1;13585:13;13577:702;;;13662:5;13656:4;13652:16;13647:3;13640:29;13721:6;13708:20;13811:2;13807:7;13799:5;13783:14;13779:26;13775:40;13755:18;13751:65;13741:93;;13830:1;13827;13820:12;13741:93;13862:30;;13970:16;;;;13921:21;-1:-1:-1;;;;;14002:32:81;;13999:52;;;14047:1;14044;14037:12;13999:52;14100:8;14084:14;14080:29;14071:7;14067:43;14064:63;;;14123:1;14120;14113:12;14064:63;14148:51;14194:4;14184:8;14175:7;14148:51;:::i;:::-;14257:12;;;;14140:59;-1:-1:-1;;;14222:15:81;;;;13613:1;13606:9;13577:702;;;-1:-1:-1;14295:4:81;;13236:1069;-1:-1:-1;;;;;;;13236:1069:81:o;14310:549::-;14609:2;14598:9;14591:21;14572:4;14635:73;14704:2;14693:9;14689:18;14681:6;14673;14635:73;:::i;:::-;14756:9;14748:6;14744:22;14739:2;14728:9;14724:18;14717:50;14784:69;14846:6;14838;14830;14784:69;:::i;15682:447::-;15782:6;15777:3;15770:19;15752:3;15808:4;15837:2;15832:3;15828:12;15821:19;;15863:5;15886:1;15896:208;15910:6;15907:1;15904:13;15896:208;;;-1:-1:-1;;;;;15975:26:81;15994:6;15975:26;:::i;:::-;15971:52;15959:65;;16044:12;;;;16079:15;;;;15932:1;15925:9;15896:208;;;-1:-1:-1;16120:3:81;;15682:447;-1:-1:-1;;;;;15682:447:81:o;16134:750::-;16499:2;16488:9;16481:21;16462:4;16525:73;16594:2;16583:9;16579:18;16571:6;16563;16525:73;:::i;:::-;16646:9;16638:6;16634:22;16629:2;16618:9;16614:18;16607:50;16680:61;16734:6;16726;16718;16680:61;:::i;:::-;16666:75;;16789:9;16781:6;16777:22;16772:2;16761:9;16757:18;16750:50;16817:61;16871:6;16863;16855;16817:61;:::i;:::-;16809:69;16134:750;-1:-1:-1;;;;;;;;;16134:750:81:o;17661:780::-;18048:2;18037:9;18030:21;18011:4;18074:73;18143:2;18132:9;18128:18;18120:6;18112;18074:73;:::i;:::-;18195:9;18187:6;18183:22;18178:2;18167:9;18163:18;18156:50;18229:61;18283:6;18275;18267;18229:61;:::i;:::-;18215:75;;18338:9;18330:6;18326:22;18321:2;18310:9;18306:18;18299:50;18366:69;18428:6;18420;18412;18366:69;:::i;18446:1105::-;18541:6;18572:2;18615;18603:9;18594:7;18590:23;18586:32;18583:52;;;18631:1;18628;18621:12;18583:52;18664:9;18658:16;-1:-1:-1;;;;;18734:2:81;18726:6;18723:14;18720:34;;;18750:1;18747;18740:12;18720:34;18788:6;18777:9;18773:22;18763:32;;18833:7;18826:4;18822:2;18818:13;18814:27;18804:55;;18855:1;18852;18845:12;18804:55;18884:2;18878:9;18906:2;18902;18899:10;18896:36;;;18912:18;;:::i;:::-;18958:2;18955:1;18951:10;18990:2;18984:9;19053:2;19049:7;19044:2;19040;19036:11;19032:25;19024:6;19020:38;19108:6;19096:10;19093:22;19088:2;19076:10;19073:18;19070:46;19067:72;;;19119:18;;:::i;:::-;19155:2;19148:22;19205:18;;;19239:15;;;;-1:-1:-1;19281:11:81;;;19277:20;;;19309:19;;;19306:39;;;19341:1;19338;19331:12;19306:39;19365:11;;;;19385:135;19401:6;19396:3;19393:15;19385:135;;;19467:10;;19455:23;;19418:12;;;;19498;;;;19385:135;;19960:128;20027:9;;;20048:11;;;20045:37;;;20062:18;;:::i;20093:127::-;20154:10;20149:3;20145:20;20142:1;20135:31;20185:4;20182:1;20175:15;20209:4;20206:1;20199:15",
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../extensions/ERC1155/ERC1155CreatorExtensionBurnable.sol\";\nimport \"../extensions/CreatorExtensionBasic.sol\";\n\ncontract MockERC1155CreatorExtensionBurnable is CreatorExtensionBasic, ERC1155CreatorExtensionBurnable {\n    uint256 [] _mintedTokens;\n    mapping(uint256 => uint256) _burntTokens;\n    address _creator;\n    \n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(CreatorExtensionBasic, ERC1155CreatorExtensionBurnable) returns (bool) {\n        return CreatorExtensionBasic.supportsInterface(interfaceId) || ERC1155CreatorExtensionBurnable.supportsInterface(interfaceId);\n    }\n\n    constructor(address creator) {\n        _creator = creator;\n    }\n\n    function testMintNew(address[] calldata to, uint256[] calldata amounts, string[] calldata uris) external {\n        uint256[] memory tokenIds = _mintNew(_creator, to, amounts, uris);\n        for (uint i; i < tokenIds.length;) {\n            _mintedTokens.push(tokenIds[i]);\n            unchecked { ++i; }\n        }\n    }\n\n    function testMintExisting(address[] calldata to, uint256[] calldata tokenIds, uint256[] calldata amounts) external {\n        IERC1155CreatorCore(_creator).mintExtensionExisting(to, tokenIds, amounts);\n    }\n\n    function mintedTokens() external view returns(uint256[] memory) {\n        return _mintedTokens;\n    }\n\n    function burntTokens(uint256 tokenId) external view returns(uint256) {\n        return _burntTokens[tokenId];\n    }\n\n    function onBurn(address to, uint256[] calldata tokenIds, uint256[] calldata amounts) public override {\n        ERC1155CreatorExtensionBurnable.onBurn(to, tokenIds, amounts);\n        for (uint i; i < tokenIds.length;) {\n            _burntTokens[tokenIds[i]] += amounts[i];\n            unchecked { ++i; }\n        }\n    }\n}\n",
  "sourcePath": "/Users/chung/git/manifoldxyz/solidity/creator-core-solidity/contracts/mocks/MockERC1155CreatorExtensionBurnable.sol",
  "ast": {
    "absolutePath": "project:/contracts/mocks/MockERC1155CreatorExtensionBurnable.sol",
    "exportedSymbols": {
      "AddressUpgradeable": [
        1002
      ],
      "AdminControl": [
        185
      ],
      "Context": [
        1933
      ],
      "CreatorCore": [
        13473
      ],
      "CreatorExtension": [
        15525
      ],
      "CreatorExtensionBasic": [
        15731
      ],
      "ERC1155CreatorExtensionBurnable": [
        16022
      ],
      "ERC165": [
        2132
      ],
      "ERC165Checker": [
        2326
      ],
      "EnumerableSet": [
        3816
      ],
      "IAdminControl": [
        417
      ],
      "ICreatorCore": [
        15197
      ],
      "ICreatorExtensionBasic": [
        16553
      ],
      "ICreatorExtensionRoyalties": [
        16574
      ],
      "ICreatorExtensionTokenURI": [
        16591
      ],
      "IERC1155CreatorCore": [
        15282
      ],
      "IERC1155CreatorExtensionBurnable": [
        16074
      ],
      "IERC165": [
        2338
      ],
      "Math": [
        3203
      ],
      "MockERC1155CreatorExtensionBurnable": [
        16960
      ],
      "Ownable": [
        1157
      ],
      "ReentrancyGuard": [
        1211
      ],
      "Strings": [
        2108
      ]
    },
    "id": 16961,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 16779,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:23:59"
      },
      {
        "absolutePath": "project:/contracts/extensions/ERC1155/ERC1155CreatorExtensionBurnable.sol",
        "file": "../extensions/ERC1155/ERC1155CreatorExtensionBurnable.sol",
        "id": 16780,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 16961,
        "sourceUnit": 16023,
        "src": "58:67:59",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/extensions/CreatorExtensionBasic.sol",
        "file": "../extensions/CreatorExtensionBasic.sol",
        "id": 16781,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 16961,
        "sourceUnit": 15732,
        "src": "126:49:59",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 16782,
              "name": "CreatorExtensionBasic",
              "nameLocations": [
                "225:21:59"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 15731,
              "src": "225:21:59"
            },
            "id": 16783,
            "nodeType": "InheritanceSpecifier",
            "src": "225:21:59"
          },
          {
            "baseName": {
              "id": 16784,
              "name": "ERC1155CreatorExtensionBurnable",
              "nameLocations": [
                "248:31:59"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 16022,
              "src": "248:31:59"
            },
            "id": 16785,
            "nodeType": "InheritanceSpecifier",
            "src": "248:31:59"
          }
        ],
        "canonicalName": "MockERC1155CreatorExtensionBurnable",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 16960,
        "linearizedBaseContracts": [
          16960,
          16022,
          16074,
          15731,
          16553,
          15525,
          185,
          2132,
          417,
          2338,
          1157,
          1933
        ],
        "name": "MockERC1155CreatorExtensionBurnable",
        "nameLocation": "186:35:59",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 16788,
            "mutability": "mutable",
            "name": "_mintedTokens",
            "nameLocation": "297:13:59",
            "nodeType": "VariableDeclaration",
            "scope": 16960,
            "src": "286:24:59",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
              "typeString": "uint256[]"
            },
            "typeName": {
              "baseType": {
                "id": 16786,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "286:7:59",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 16787,
              "nodeType": "ArrayTypeName",
              "src": "286:10:59",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 16792,
            "mutability": "mutable",
            "name": "_burntTokens",
            "nameLocation": "344:12:59",
            "nodeType": "VariableDeclaration",
            "scope": 16960,
            "src": "316:40:59",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
              "typeString": "mapping(uint256 => uint256)"
            },
            "typeName": {
              "id": 16791,
              "keyName": "",
              "keyNameLocation": "-1:-1:-1",
              "keyType": {
                "id": 16789,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "324:7:59",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "316:27:59",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                "typeString": "mapping(uint256 => uint256)"
              },
              "valueName": "",
              "valueNameLocation": "-1:-1:-1",
              "valueType": {
                "id": 16790,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "335:7:59",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 16794,
            "mutability": "mutable",
            "name": "_creator",
            "nameLocation": "370:8:59",
            "nodeType": "VariableDeclaration",
            "scope": 16960,
            "src": "362:16:59",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 16793,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "362:7:59",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              15564,
              15892
            ],
            "body": {
              "id": 16815,
              "nodeType": "Block",
              "src": "597:142:59",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 16813,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 16807,
                          "name": "interfaceId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16797,
                          "src": "654:11:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        ],
                        "expression": {
                          "id": 16805,
                          "name": "CreatorExtensionBasic",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15731,
                          "src": "614:21:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_CreatorExtensionBasic_$15731_$",
                            "typeString": "type(contract CreatorExtensionBasic)"
                          }
                        },
                        "id": 16806,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "636:17:59",
                        "memberName": "supportsInterface",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 15564,
                        "src": "614:39:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                          "typeString": "function (bytes4) view returns (bool)"
                        }
                      },
                      "id": 16808,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "614:52:59",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 16811,
                          "name": "interfaceId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16797,
                          "src": "720:11:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        ],
                        "expression": {
                          "id": 16809,
                          "name": "ERC1155CreatorExtensionBurnable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16022,
                          "src": "670:31:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_ERC1155CreatorExtensionBurnable_$16022_$",
                            "typeString": "type(contract ERC1155CreatorExtensionBurnable)"
                          }
                        },
                        "id": 16810,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "702:17:59",
                        "memberName": "supportsInterface",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 15892,
                        "src": "670:49:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                          "typeString": "function (bytes4) view returns (bool)"
                        }
                      },
                      "id": 16812,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "670:62:59",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "614:118:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 16804,
                  "id": 16814,
                  "nodeType": "Return",
                  "src": "607:125:59"
                }
              ]
            },
            "documentation": {
              "id": 16795,
              "nodeType": "StructuredDocumentation",
              "src": "389:56:59",
              "text": " @dev See {IERC165-supportsInterface}."
            },
            "functionSelector": "01ffc9a7",
            "id": 16816,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsInterface",
            "nameLocation": "459:17:59",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 16801,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 16799,
                  "name": "CreatorExtensionBasic",
                  "nameLocations": [
                    "526:21:59"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 15731,
                  "src": "526:21:59"
                },
                {
                  "id": 16800,
                  "name": "ERC1155CreatorExtensionBurnable",
                  "nameLocations": [
                    "549:31:59"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 16022,
                  "src": "549:31:59"
                }
              ],
              "src": "517:64:59"
            },
            "parameters": {
              "id": 16798,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16797,
                  "mutability": "mutable",
                  "name": "interfaceId",
                  "nameLocation": "484:11:59",
                  "nodeType": "VariableDeclaration",
                  "scope": 16816,
                  "src": "477:18:59",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 16796,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "477:6:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "476:20:59"
            },
            "returnParameters": {
              "id": 16804,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16803,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16816,
                  "src": "591:4:59",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16802,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "591:4:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "590:6:59"
            },
            "scope": 16960,
            "src": "450:289:59",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16825,
              "nodeType": "Block",
              "src": "774:35:59",
              "statements": [
                {
                  "expression": {
                    "id": 16823,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 16821,
                      "name": "_creator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16794,
                      "src": "784:8:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 16822,
                      "name": "creator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16818,
                      "src": "795:7:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "784:18:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 16824,
                  "nodeType": "ExpressionStatement",
                  "src": "784:18:59"
                }
              ]
            },
            "id": 16826,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16819,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16818,
                  "mutability": "mutable",
                  "name": "creator",
                  "nameLocation": "765:7:59",
                  "nodeType": "VariableDeclaration",
                  "scope": 16826,
                  "src": "757:15:59",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16817,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "757:7:59",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "756:17:59"
            },
            "returnParameters": {
              "id": 16820,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "774:0:59"
            },
            "scope": 16960,
            "src": "745:64:59",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16871,
              "nodeType": "Block",
              "src": "920:213:59",
              "statements": [
                {
                  "assignments": [
                    16842
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16842,
                      "mutability": "mutable",
                      "name": "tokenIds",
                      "nameLocation": "947:8:59",
                      "nodeType": "VariableDeclaration",
                      "scope": 16871,
                      "src": "930:25:59",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 16840,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "930:7:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 16841,
                        "nodeType": "ArrayTypeName",
                        "src": "930:9:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 16849,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 16844,
                        "name": "_creator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16794,
                        "src": "967:8:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 16845,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16829,
                        "src": "977:2:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 16846,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16832,
                        "src": "981:7:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 16847,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16835,
                        "src": "990:4:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      ],
                      "id": 16843,
                      "name": "_mintNew",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15982,
                      "src": "958:8:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (address,address[] calldata,uint256[] calldata,string calldata[] calldata) returns (uint256[] memory)"
                      }
                    },
                    "id": 16848,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "958:37:59",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "930:65:59"
                },
                {
                  "body": {
                    "id": 16869,
                    "nodeType": "Block",
                    "src": "1040:87:59",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 16860,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16842,
                                "src": "1073:8:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 16862,
                              "indexExpression": {
                                "id": 16861,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16851,
                                "src": "1082:1:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1073:11:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 16857,
                              "name": "_mintedTokens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16788,
                              "src": "1054:13:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                                "typeString": "uint256[] storage ref"
                              }
                            },
                            "id": 16859,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1068:4:59",
                            "memberName": "push",
                            "nodeType": "MemberAccess",
                            "src": "1054:18:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$",
                              "typeString": "function (uint256[] storage pointer,uint256)"
                            }
                          },
                          "id": 16863,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1054:31:59",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 16864,
                        "nodeType": "ExpressionStatement",
                        "src": "1054:31:59"
                      },
                      {
                        "id": 16868,
                        "nodeType": "UncheckedBlock",
                        "src": "1099:18:59",
                        "statements": [
                          {
                            "expression": {
                              "id": 16866,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "1111:3:59",
                              "subExpression": {
                                "id": 16865,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16851,
                                "src": "1113:1:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 16867,
                            "nodeType": "ExpressionStatement",
                            "src": "1111:3:59"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 16856,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 16853,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16851,
                      "src": "1018:1:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 16854,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16842,
                        "src": "1022:8:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 16855,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1031:6:59",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "1022:15:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1018:19:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16870,
                  "initializationExpression": {
                    "assignments": [
                      16851
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 16851,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "1015:1:59",
                        "nodeType": "VariableDeclaration",
                        "scope": 16870,
                        "src": "1010:6:59",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 16850,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "1010:4:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 16852,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1010:6:59"
                  },
                  "nodeType": "ForStatement",
                  "src": "1005:122:59"
                }
              ]
            },
            "functionSelector": "4aec8cc5",
            "id": 16872,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testMintNew",
            "nameLocation": "824:11:59",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16836,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16829,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "855:2:59",
                  "nodeType": "VariableDeclaration",
                  "scope": 16872,
                  "src": "836:21:59",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16827,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "836:7:59",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 16828,
                    "nodeType": "ArrayTypeName",
                    "src": "836:9:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16832,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "878:7:59",
                  "nodeType": "VariableDeclaration",
                  "scope": 16872,
                  "src": "859:26:59",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16830,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "859:7:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16831,
                    "nodeType": "ArrayTypeName",
                    "src": "859:9:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16835,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "905:4:59",
                  "nodeType": "VariableDeclaration",
                  "scope": 16872,
                  "src": "887:22:59",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16833,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "887:6:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 16834,
                    "nodeType": "ArrayTypeName",
                    "src": "887:8:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "835:75:59"
            },
            "returnParameters": {
              "id": 16837,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "920:0:59"
            },
            "scope": 16960,
            "src": "815:318:59",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 16893,
              "nodeType": "Block",
              "src": "1254:91:59",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 16888,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16875,
                        "src": "1316:2:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 16889,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16878,
                        "src": "1320:8:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 16890,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16881,
                        "src": "1330:7:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 16885,
                            "name": "_creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16794,
                            "src": "1284:8:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 16884,
                          "name": "IERC1155CreatorCore",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15282,
                          "src": "1264:19:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IERC1155CreatorCore_$15282_$",
                            "typeString": "type(contract IERC1155CreatorCore)"
                          }
                        },
                        "id": 16886,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1264:29:59",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC1155CreatorCore_$15282",
                          "typeString": "contract IERC1155CreatorCore"
                        }
                      },
                      "id": 16887,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1294:21:59",
                      "memberName": "mintExtensionExisting",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 15261,
                      "src": "1264:51:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory,uint256[] memory,uint256[] memory) external"
                      }
                    },
                    "id": 16891,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1264:74:59",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16892,
                  "nodeType": "ExpressionStatement",
                  "src": "1264:74:59"
                }
              ]
            },
            "functionSelector": "f7539876",
            "id": 16894,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testMintExisting",
            "nameLocation": "1148:16:59",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16882,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16875,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1184:2:59",
                  "nodeType": "VariableDeclaration",
                  "scope": 16894,
                  "src": "1165:21:59",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16873,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1165:7:59",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 16874,
                    "nodeType": "ArrayTypeName",
                    "src": "1165:9:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16878,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "1207:8:59",
                  "nodeType": "VariableDeclaration",
                  "scope": 16894,
                  "src": "1188:27:59",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16876,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1188:7:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16877,
                    "nodeType": "ArrayTypeName",
                    "src": "1188:9:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16881,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "1236:7:59",
                  "nodeType": "VariableDeclaration",
                  "scope": 16894,
                  "src": "1217:26:59",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16879,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1217:7:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16880,
                    "nodeType": "ArrayTypeName",
                    "src": "1217:9:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1164:80:59"
            },
            "returnParameters": {
              "id": 16883,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1254:0:59"
            },
            "scope": 16960,
            "src": "1139:206:59",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 16902,
              "nodeType": "Block",
              "src": "1415:37:59",
              "statements": [
                {
                  "expression": {
                    "id": 16900,
                    "name": "_mintedTokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 16788,
                    "src": "1432:13:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "functionReturnParameters": 16899,
                  "id": 16901,
                  "nodeType": "Return",
                  "src": "1425:20:59"
                }
              ]
            },
            "functionSelector": "8d75fe05",
            "id": 16903,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "mintedTokens",
            "nameLocation": "1360:12:59",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16895,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1372:2:59"
            },
            "returnParameters": {
              "id": 16899,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16898,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16903,
                  "src": "1397:16:59",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16896,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1397:7:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16897,
                    "nodeType": "ArrayTypeName",
                    "src": "1397:9:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1396:18:59"
            },
            "scope": 16960,
            "src": "1351:101:59",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 16914,
              "nodeType": "Block",
              "src": "1527:45:59",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 16910,
                      "name": "_burntTokens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16792,
                      "src": "1544:12:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                        "typeString": "mapping(uint256 => uint256)"
                      }
                    },
                    "id": 16912,
                    "indexExpression": {
                      "id": 16911,
                      "name": "tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16905,
                      "src": "1557:7:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1544:21:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 16909,
                  "id": 16913,
                  "nodeType": "Return",
                  "src": "1537:28:59"
                }
              ]
            },
            "functionSelector": "24d8a510",
            "id": 16915,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "burntTokens",
            "nameLocation": "1467:11:59",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16906,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16905,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "1487:7:59",
                  "nodeType": "VariableDeclaration",
                  "scope": 16915,
                  "src": "1479:15:59",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16904,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1479:7:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1478:17:59"
            },
            "returnParameters": {
              "id": 16909,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16908,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16915,
                  "src": "1518:7:59",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16907,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1518:7:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1517:9:59"
            },
            "scope": 16960,
            "src": "1458:114:59",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              16021
            ],
            "body": {
              "id": 16958,
              "nodeType": "Block",
              "src": "1679:217:59",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 16930,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16917,
                        "src": "1728:2:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 16931,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16920,
                        "src": "1732:8:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 16932,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16923,
                        "src": "1742:7:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "expression": {
                        "id": 16927,
                        "name": "ERC1155CreatorExtensionBurnable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16022,
                        "src": "1689:31:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ERC1155CreatorExtensionBurnable_$16022_$",
                          "typeString": "type(contract ERC1155CreatorExtensionBurnable)"
                        }
                      },
                      "id": 16929,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1721:6:59",
                      "memberName": "onBurn",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 16021,
                      "src": "1689:38:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,uint256[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 16933,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1689:61:59",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16934,
                  "nodeType": "ExpressionStatement",
                  "src": "1689:61:59"
                },
                {
                  "body": {
                    "id": 16956,
                    "nodeType": "Block",
                    "src": "1795:95:59",
                    "statements": [
                      {
                        "expression": {
                          "id": 16950,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 16942,
                              "name": "_burntTokens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16792,
                              "src": "1809:12:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                                "typeString": "mapping(uint256 => uint256)"
                              }
                            },
                            "id": 16946,
                            "indexExpression": {
                              "baseExpression": {
                                "id": 16943,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16920,
                                "src": "1822:8:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 16945,
                              "indexExpression": {
                                "id": 16944,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16936,
                                "src": "1831:1:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1822:11:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1809:25:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "baseExpression": {
                              "id": 16947,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16923,
                              "src": "1838:7:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            },
                            "id": 16949,
                            "indexExpression": {
                              "id": 16948,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16936,
                              "src": "1846:1:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1838:10:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1809:39:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 16951,
                        "nodeType": "ExpressionStatement",
                        "src": "1809:39:59"
                      },
                      {
                        "id": 16955,
                        "nodeType": "UncheckedBlock",
                        "src": "1862:18:59",
                        "statements": [
                          {
                            "expression": {
                              "id": 16953,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "1874:3:59",
                              "subExpression": {
                                "id": 16952,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16936,
                                "src": "1876:1:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 16954,
                            "nodeType": "ExpressionStatement",
                            "src": "1874:3:59"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 16941,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 16938,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16936,
                      "src": "1773:1:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 16939,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16920,
                        "src": "1777:8:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 16940,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1786:6:59",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "1777:15:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1773:19:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16957,
                  "initializationExpression": {
                    "assignments": [
                      16936
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 16936,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "1770:1:59",
                        "nodeType": "VariableDeclaration",
                        "scope": 16957,
                        "src": "1765:6:59",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 16935,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "1765:4:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 16937,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1765:6:59"
                  },
                  "nodeType": "ForStatement",
                  "src": "1760:130:59"
                }
              ]
            },
            "functionSelector": "7b8deca0",
            "id": 16959,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "onBurn",
            "nameLocation": "1587:6:59",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 16925,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1670:8:59"
            },
            "parameters": {
              "id": 16924,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16917,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1602:2:59",
                  "nodeType": "VariableDeclaration",
                  "scope": 16959,
                  "src": "1594:10:59",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16916,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1594:7:59",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16920,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "1625:8:59",
                  "nodeType": "VariableDeclaration",
                  "scope": 16959,
                  "src": "1606:27:59",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16918,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1606:7:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16919,
                    "nodeType": "ArrayTypeName",
                    "src": "1606:9:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16923,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "1654:7:59",
                  "nodeType": "VariableDeclaration",
                  "scope": 16959,
                  "src": "1635:26:59",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16921,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1635:7:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16922,
                    "nodeType": "ArrayTypeName",
                    "src": "1635:9:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1593:69:59"
            },
            "returnParameters": {
              "id": 16926,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1679:0:59"
            },
            "scope": 16960,
            "src": "1578:318:59",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 16961,
        "src": "177:1721:59",
        "usedErrors": []
      }
    ],
    "src": "33:1866:59"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.19+commit.7dd6d404.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.12",
  "updatedAt": "2023-03-22T17:07:39.781Z",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "approveAdmin(address)": {
        "details": "See {IAdminControl-approveAdmin}."
      },
      "getAdmins()": {
        "details": "See {IAdminControl-getAdmins}."
      },
      "isAdmin(address)": {
        "details": "See {IAdminControl-isAdmin}."
      },
      "mintNew(address,address[],uint256[],string[])": {
        "details": "batch mint a token"
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      },
      "revokeAdmin(address)": {
        "details": "See {IAdminControl-revokeAdmin}."
      },
      "setBaseTokenURI(address,string)": {
        "details": "See {ICreatorExtensionBasic-setBaseTokenURI}."
      },
      "setBaseTokenURI(address,string,bool)": {
        "details": "See {ICreatorExtensionBasic-setBaseTokenURI}."
      },
      "setTokenURI(address,uint256,string)": {
        "details": "See {ICreatorExtensionBasic-setTokenURI}."
      },
      "setTokenURI(address,uint256[],string[])": {
        "details": "See {ICreatorExtensionBasic-setTokenURI}."
      },
      "setTokenURIPrefix(address,string)": {
        "details": "See {ICreatorExtensionBasic-setTokenURIPrefix}."
      },
      "supportsInterface(bytes4)": {
        "details": "See {IERC165-supportsInterface}."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}