{
  "contractName": "ERC1155Custom",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_uri",
          "type": "string"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "ApprovalForAll",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "TransferBatch",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "TransferSingle",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "value",
          "type": "string"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "URI",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        }
      ],
      "name": "balanceOfBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "burnBatch",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "exists",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeBatchTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setApprovalForAll",
      "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": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "uri",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "newuri",
          "type": "string"
        }
      ],
      "name": "setURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "mint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "mintBatch",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.11+commit.d7f03943\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"burnBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mintBatch\",\"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\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newuri\",\"type\":\"string\"}],\"name\":\"setURI\",\"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\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"exists(uint256)\":{\"details\":\"Indicates whether any token exist with a given id, or not.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"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.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalSupply(uint256)\":{\"details\":\"Total amount of tokens in with a given id.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/token/ERC1155Custom.sol\":\"ERC1155Custom\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x24e0364e503a9bbde94c715d26573a76f14cd2a202d45f96f52134ab806b67b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12cbaa7378fd9b62280e4e1d164bedcb4399ce238f5f98fc0eefb7e50577981\",\"dweb:/ipfs/QmXRoFGUgfsaRkoPT5bxNMtSayKTQ8GZATLPXf69HcRA51\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0x04d6d1342ece664085921a4fabc928a7bcf1cf2873fa81780f61a54dc2b9b66e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6d2b052effa2e9a7479b0fea53b46f4cbbd91947848ef632aadad20ae2e9275\",\"dweb:/ipfs/QmcZp7f5cooGZrhHE8RC1yQR53RFZt19d5fyVqNfbHmPgY\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x8e93de94c9062ebc94fb7e2e3929b0781ac6a2b7772e2f7a59045861c93e5be9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f920a631bf986c610fe573d3c70a2bb6f224f86f4a8550016470c7ee476c9ab5\",\"dweb:/ipfs/QmYzsyVMfnaREKHcHv5RPS8Xg5r1Q38E2SDsGBTnXeFWzb\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol\":{\"keccak256\":\"0x65283046c52a6bd3e57e456cc5eeab0dd86c00979b84495dc0109b609747fd16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae1aa0113f29cb099e7ff5c2b8f559ede5fc9a8f1d57746e5ecea8fff9157de\",\"dweb:/ipfs/QmQrymH5ACUZcoWYSYZTQTGM1xVEZpnuQce8etBWTB33xm\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol\":{\"keccak256\":\"0xe243a49f159c97fdd011edb7a8ed1b48175f0fa6b8592bb6dcccac7e22d8c37b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fcf3c76e66e7cbd95bc1d47eb41c2764670deea0e129a0bc8ed893f5ee20628\",\"dweb:/ipfs/QmUVYsGME7ikBfN638shb36WHbqecVAzxVMqSHT1eE5Qdk\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xa66d18b9a85458d28fc3304717964502ae36f7f8a2ff35bc83f6f85d74b03574\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e46c80ea068989111d6103e5521223f9ef337e93de76deed8b03f75c6f7b2797\",\"dweb:/ipfs/QmNoSE6knNfFncdDDLTb3fGR6oSQty1srG96Vsx3E9wQdw\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"project:/contracts/token/ERC1155Custom.sol\":{\"keccak256\":\"0xa7cd0153f18d14bccac3b4a0202cf23261658eada3cdec24feb30d4e40349eba\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c9b4ba93e141667068d7f35351771693b491f9b7af625614440f14d212d4298c\",\"dweb:/ipfs/QmSVLiLdXFXk8WaRBShprn7T8TycgMoZmPLf2N4yesfouU\"]},\"project:/contracts/token/interfaces/IERC1155Custom.sol\":{\"keccak256\":\"0xb16853709db61bedf8994332beccc2d5e042debb2c0ca1b50c5022b819f790fa\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://24addd30689e75b0aac04414379f3ad5222a18695b61aaf4b1f3046a3db13c3a\",\"dweb:/ipfs/QmYAq7zbY8pUkZuqfCnohmKgWzQmUszqq9H7eh1bX7CpcF\"]}},\"version\":1}",
  "bytecode": "0x60806040523480156200001157600080fd5b50604051620023cf380380620023cf83398101604081905262000034916200017a565b80620000408162000053565b506200004c336200006c565b5062000293565b805162000068906002906020840190620000be565b5050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620000cc9062000256565b90600052602060002090601f016020900481019282620000f057600085556200013b565b82601f106200010b57805160ff19168380011785556200013b565b828001600101855582156200013b579182015b828111156200013b5782518255916020019190600101906200011e565b50620001499291506200014d565b5090565b5b808211156200014957600081556001016200014e565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156200018e57600080fd5b82516001600160401b0380821115620001a657600080fd5b818501915085601f830112620001bb57600080fd5b815181811115620001d057620001d062000164565b604051601f8201601f19908116603f01168101908382118183101715620001fb57620001fb62000164565b8160405282815288868487010111156200021457600080fd5b600093505b8284101562000238578484018601518185018701529285019262000219565b828411156200024a5760008684830101525b98975050505050505050565b600181811c908216806200026b57607f821691505b602082108114156200028d57634e487b7160e01b600052602260045260246000fd5b50919050565b61212c80620002a36000396000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c8063715018a6116100a2578063bd85b03911610071578063bd85b0391461025c578063e985e9c51461027c578063f242432a146102b8578063f2fde38b146102cb578063f5298aca146102de57600080fd5b8063715018a614610213578063731133e91461021b5780638da5cb5b1461022e578063a22cb4651461024957600080fd5b80631f7fdffa116100e95780631f7fdffa146101985780632eb2c2d6146101ab5780634e1273f4146101be5780634f558e79146101de5780636b20c4541461020057600080fd5b8062fdd58e1461011a57806301ffc9a71461014057806302fe5305146101635780630e89341c14610178575b600080fd5b61012d610128366004611581565b6102f1565b6040519081526020015b60405180910390f35b61015361014e3660046115c1565b610388565b6040519015158152602001610137565b610176610171366004611686565b6103da565b005b61018b6101863660046116d7565b610410565b604051610137919061173d565b6101766101a6366004611805565b6104a4565b6101766101b936600461189e565b6104e0565b6101d16101cc366004611948565b610577565b6040516101379190611a4e565b6101536101ec3660046116d7565b600090815260046020526040902054151590565b61017661020e366004611a61565b6106a1565b6101766106e9565b610176610229366004611ad5565b61071f565b6003546040516001600160a01b039091168152602001610137565b610176610257366004611b2a565b610755565b61012d61026a3660046116d7565b60009081526004602052604090205490565b61015361028a366004611b66565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6101766102c6366004611b99565b610764565b6101766102d9366004611bfe565b6107a9565b6101766102ec366004611c19565b610841565b60006001600160a01b0383166103625760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b14806103b957506001600160e01b031982166303a24d0760e21b145b806103d457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6003546001600160a01b031633146104045760405162461bcd60e51b815260040161035990611c4c565b61040d81610884565b50565b60606002805461041f90611c81565b80601f016020809104026020016040519081016040528092919081815260200182805461044b90611c81565b80156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b50505050509050919050565b6003546001600160a01b031633146104ce5760405162461bcd60e51b815260040161035990611c4c565b6104da84848484610897565b50505050565b6001600160a01b0385163314806104fc57506104fc853361028a565b6105635760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b6064820152608401610359565b61057085858585856109f1565b5050505050565b606081518351146105dc5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610359565b6000835167ffffffffffffffff8111156105f8576105f86115e5565b604051908082528060200260200182016040528015610621578160200160208202803683370190505b50905060005b84518110156106995761066c85828151811061064557610645611cbc565b602002602001015185838151811061065f5761065f611cbc565b60200260200101516102f1565b82828151811061067e5761067e611cbc565b602090810291909101015261069281611ce8565b9050610627565b509392505050565b6001600160a01b0383163314806106bd57506106bd833361028a565b6106d95760405162461bcd60e51b815260040161035990611d03565b6106e4838383610b9b565b505050565b6003546001600160a01b031633146107135760405162461bcd60e51b815260040161035990611c4c565b61071d6000610d29565b565b6003546001600160a01b031633146107495760405162461bcd60e51b815260040161035990611c4c565b6104da84848484610d7b565b610760338383610e51565b5050565b6001600160a01b0385163314806107805750610780853361028a565b61079c5760405162461bcd60e51b815260040161035990611d03565b6105708585858585610f32565b6003546001600160a01b031633146107d35760405162461bcd60e51b815260040161035990611c4c565b6001600160a01b0381166108385760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610359565b61040d81610d29565b6001600160a01b03831633148061085d575061085d833361028a565b6108795760405162461bcd60e51b815260040161035990611d03565b6106e483838361104f565b80516107609060029060208401906114cc565b6001600160a01b0384166108bd5760405162461bcd60e51b815260040161035990611d4c565b81518351146108de5760405162461bcd60e51b815260040161035990611d8d565b336108ee81600087878787611150565b60005b84518110156109895783818151811061090c5761090c611cbc565b602002602001015160008087848151811061092957610929611cbc565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008282546109719190611dd5565b9091555081905061098181611ce8565b9150506108f1565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516109da929190611ded565b60405180910390a46105708160008787878761115e565b8151835114610a125760405162461bcd60e51b815260040161035990611d8d565b6001600160a01b038416610a385760405162461bcd60e51b815260040161035990611e1b565b33610a47818787878787611150565b60005b8451811015610b2d576000858281518110610a6757610a67611cbc565b602002602001015190506000858381518110610a8557610a85611cbc565b602090810291909101810151600084815280835260408082206001600160a01b038e168352909352919091205490915081811015610ad55760405162461bcd60e51b815260040161035990611e60565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610b12908490611dd5565b9250508190555050505080610b2690611ce8565b9050610a4a565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610b7d929190611ded565b60405180910390a4610b9381878787878761115e565b505050505050565b6001600160a01b038316610bc15760405162461bcd60e51b815260040161035990611eaa565b8051825114610be25760405162461bcd60e51b815260040161035990611d8d565b6000339050610c0581856000868660405180602001604052806000815250611150565b60005b8351811015610cca576000848281518110610c2557610c25611cbc565b602002602001015190506000848381518110610c4357610c43611cbc565b602090810291909101810151600084815280835260408082206001600160a01b038c168352909352919091205490915081811015610c935760405162461bcd60e51b815260040161035990611eed565b6000928352602083815260408085206001600160a01b038b1686529091529092209103905580610cc281611ce8565b915050610c08565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610d1b929190611ded565b60405180910390a450505050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038416610da15760405162461bcd60e51b815260040161035990611d4c565b33610dc181600087610db2886112ba565b610dbb886112ba565b87611150565b6000848152602081815260408083206001600160a01b038916845290915281208054859290610df1908490611dd5565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461057081600087878787611305565b816001600160a01b0316836001600160a01b03161415610ec55760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610359565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038416610f585760405162461bcd60e51b815260040161035990611e1b565b33610f68818787610db2886112ba565b6000848152602081815260408083206001600160a01b038a16845290915290205483811015610fa95760405162461bcd60e51b815260040161035990611e60565b6000858152602081815260408083206001600160a01b038b8116855292528083208785039055908816825281208054869290610fe6908490611dd5565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611046828888888888611305565b50505050505050565b6001600160a01b0383166110755760405162461bcd60e51b815260040161035990611eaa565b336110a481856000611086876112ba565b61108f876112ba565b60405180602001604052806000815250611150565b6000838152602081815260408083206001600160a01b0388168452909152902054828110156110e55760405162461bcd60e51b815260040161035990611eed565b6000848152602081815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b610b938686868686866113c0565b6001600160a01b0384163b15610b935760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906111a29089908990889088908890600401611f31565b6020604051808303816000875af19250505080156111dd575060408051601f3d908101601f191682019092526111da91810190611f8f565b60015b61128a576111e9611fac565b806308c379a0141561122357506111fe611fc8565b806112095750611225565b8060405162461bcd60e51b8152600401610359919061173d565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610359565b6001600160e01b0319811663bc197c8160e01b146110465760405162461bcd60e51b815260040161035990612052565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106112f4576112f4611cbc565b602090810291909101015292915050565b6001600160a01b0384163b15610b935760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611349908990899088908890889060040161209a565b6020604051808303816000875af1925050508015611384575060408051601f3d908101601f1916820190925261138191810190611f8f565b60015b611390576111e9611fac565b6001600160e01b0319811663f23a6e6160e01b146110465760405162461bcd60e51b815260040161035990612052565b6001600160a01b0385166114475760005b8351811015611445578281815181106113ec576113ec611cbc565b60200260200101516004600086848151811061140a5761140a611cbc565b60200260200101518152602001908152602001600020600082825461142f9190611dd5565b9091555061143e905081611ce8565b90506113d1565b505b6001600160a01b038416610b935760005b83518110156110465782818151811061147357611473611cbc565b60200260200101516004600086848151811061149157611491611cbc565b6020026020010151815260200190815260200160002060008282546114b691906120df565b909155506114c5905081611ce8565b9050611458565b8280546114d890611c81565b90600052602060002090601f0160209004810192826114fa5760008555611540565b82601f1061151357805160ff1916838001178555611540565b82800160010185558215611540579182015b82811115611540578251825591602001919060010190611525565b5061154c929150611550565b5090565b5b8082111561154c5760008155600101611551565b80356001600160a01b038116811461157c57600080fd5b919050565b6000806040838503121561159457600080fd5b61159d83611565565b946020939093013593505050565b6001600160e01b03198116811461040d57600080fd5b6000602082840312156115d357600080fd5b81356115de816115ab565b9392505050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715611621576116216115e5565b6040525050565b600067ffffffffffffffff831115611642576116426115e5565b604051611659601f8501601f1916602001826115fb565b80915083815284848401111561166e57600080fd5b83836020830137600060208583010152509392505050565b60006020828403121561169857600080fd5b813567ffffffffffffffff8111156116af57600080fd5b8201601f810184136116c057600080fd5b6116cf84823560208401611628565b949350505050565b6000602082840312156116e957600080fd5b5035919050565b6000815180845260005b81811015611716576020818501810151868301820152016116fa565b81811115611728576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006115de60208301846116f0565b600067ffffffffffffffff82111561176a5761176a6115e5565b5060051b60200190565b600082601f83011261178557600080fd5b8135602061179282611750565b60405161179f82826115fb565b83815260059390931b85018201928281019150868411156117bf57600080fd5b8286015b848110156117da57803583529183019183016117c3565b509695505050505050565b600082601f8301126117f657600080fd5b6115de83833560208501611628565b6000806000806080858703121561181b57600080fd5b61182485611565565b9350602085013567ffffffffffffffff8082111561184157600080fd5b61184d88838901611774565b9450604087013591508082111561186357600080fd5b61186f88838901611774565b9350606087013591508082111561188557600080fd5b50611892878288016117e5565b91505092959194509250565b600080600080600060a086880312156118b657600080fd5b6118bf86611565565b94506118cd60208701611565565b9350604086013567ffffffffffffffff808211156118ea57600080fd5b6118f689838a01611774565b9450606088013591508082111561190c57600080fd5b61191889838a01611774565b9350608088013591508082111561192e57600080fd5b5061193b888289016117e5565b9150509295509295909350565b6000806040838503121561195b57600080fd5b823567ffffffffffffffff8082111561197357600080fd5b818501915085601f83011261198757600080fd5b8135602061199482611750565b6040516119a182826115fb565b83815260059390931b85018201928281019150898411156119c157600080fd5b948201945b838610156119e6576119d786611565565b825294820194908201906119c6565b965050860135925050808211156119fc57600080fd5b50611a0985828601611774565b9150509250929050565b600081518084526020808501945080840160005b83811015611a4357815187529582019590820190600101611a27565b509495945050505050565b6020815260006115de6020830184611a13565b600080600060608486031215611a7657600080fd5b611a7f84611565565b9250602084013567ffffffffffffffff80821115611a9c57600080fd5b611aa887838801611774565b93506040860135915080821115611abe57600080fd5b50611acb86828701611774565b9150509250925092565b60008060008060808587031215611aeb57600080fd5b611af485611565565b93506020850135925060408501359150606085013567ffffffffffffffff811115611b1e57600080fd5b611892878288016117e5565b60008060408385031215611b3d57600080fd5b611b4683611565565b915060208301358015158114611b5b57600080fd5b809150509250929050565b60008060408385031215611b7957600080fd5b611b8283611565565b9150611b9060208401611565565b90509250929050565b600080600080600060a08688031215611bb157600080fd5b611bba86611565565b9450611bc860208701611565565b93506040860135925060608601359150608086013567ffffffffffffffff811115611bf257600080fd5b61193b888289016117e5565b600060208284031215611c1057600080fd5b6115de82611565565b600080600060608486031215611c2e57600080fd5b611c3784611565565b95602085013595506040909401359392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611c9557607f821691505b60208210811415611cb657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611cfc57611cfc611cd2565b5060010190565b60208082526029908201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260408201526808185c1c1c9bdd995960ba1b606082015260800190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60008219821115611de857611de8611cd2565b500190565b604081526000611e006040830185611a13565b8281036020840152611e128185611a13565b95945050505050565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090611f5d90830186611a13565b8281036060840152611f6f8186611a13565b90508281036080840152611f8381856116f0565b98975050505050505050565b600060208284031215611fa157600080fd5b81516115de816115ab565b600060033d1115611fc55760046000803e5060005160e01c5b90565b600060443d1015611fd65790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561200657505050505090565b828501915081518181111561201e5750505050505090565b843d87010160208285010111156120385750505050505090565b612047602082860101876115fb565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906120d4908301846116f0565b979650505050505050565b6000828210156120f1576120f1611cd2565b50039056fea26469706673582212207ef8c935ea9dce6d8dd9c7e4fd81b2d99ee02dc40453a3eba4a3afda693fcd1c64736f6c634300080b0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101155760003560e01c8063715018a6116100a2578063bd85b03911610071578063bd85b0391461025c578063e985e9c51461027c578063f242432a146102b8578063f2fde38b146102cb578063f5298aca146102de57600080fd5b8063715018a614610213578063731133e91461021b5780638da5cb5b1461022e578063a22cb4651461024957600080fd5b80631f7fdffa116100e95780631f7fdffa146101985780632eb2c2d6146101ab5780634e1273f4146101be5780634f558e79146101de5780636b20c4541461020057600080fd5b8062fdd58e1461011a57806301ffc9a71461014057806302fe5305146101635780630e89341c14610178575b600080fd5b61012d610128366004611581565b6102f1565b6040519081526020015b60405180910390f35b61015361014e3660046115c1565b610388565b6040519015158152602001610137565b610176610171366004611686565b6103da565b005b61018b6101863660046116d7565b610410565b604051610137919061173d565b6101766101a6366004611805565b6104a4565b6101766101b936600461189e565b6104e0565b6101d16101cc366004611948565b610577565b6040516101379190611a4e565b6101536101ec3660046116d7565b600090815260046020526040902054151590565b61017661020e366004611a61565b6106a1565b6101766106e9565b610176610229366004611ad5565b61071f565b6003546040516001600160a01b039091168152602001610137565b610176610257366004611b2a565b610755565b61012d61026a3660046116d7565b60009081526004602052604090205490565b61015361028a366004611b66565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6101766102c6366004611b99565b610764565b6101766102d9366004611bfe565b6107a9565b6101766102ec366004611c19565b610841565b60006001600160a01b0383166103625760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b14806103b957506001600160e01b031982166303a24d0760e21b145b806103d457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6003546001600160a01b031633146104045760405162461bcd60e51b815260040161035990611c4c565b61040d81610884565b50565b60606002805461041f90611c81565b80601f016020809104026020016040519081016040528092919081815260200182805461044b90611c81565b80156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b50505050509050919050565b6003546001600160a01b031633146104ce5760405162461bcd60e51b815260040161035990611c4c565b6104da84848484610897565b50505050565b6001600160a01b0385163314806104fc57506104fc853361028a565b6105635760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b6064820152608401610359565b61057085858585856109f1565b5050505050565b606081518351146105dc5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610359565b6000835167ffffffffffffffff8111156105f8576105f86115e5565b604051908082528060200260200182016040528015610621578160200160208202803683370190505b50905060005b84518110156106995761066c85828151811061064557610645611cbc565b602002602001015185838151811061065f5761065f611cbc565b60200260200101516102f1565b82828151811061067e5761067e611cbc565b602090810291909101015261069281611ce8565b9050610627565b509392505050565b6001600160a01b0383163314806106bd57506106bd833361028a565b6106d95760405162461bcd60e51b815260040161035990611d03565b6106e4838383610b9b565b505050565b6003546001600160a01b031633146107135760405162461bcd60e51b815260040161035990611c4c565b61071d6000610d29565b565b6003546001600160a01b031633146107495760405162461bcd60e51b815260040161035990611c4c565b6104da84848484610d7b565b610760338383610e51565b5050565b6001600160a01b0385163314806107805750610780853361028a565b61079c5760405162461bcd60e51b815260040161035990611d03565b6105708585858585610f32565b6003546001600160a01b031633146107d35760405162461bcd60e51b815260040161035990611c4c565b6001600160a01b0381166108385760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610359565b61040d81610d29565b6001600160a01b03831633148061085d575061085d833361028a565b6108795760405162461bcd60e51b815260040161035990611d03565b6106e483838361104f565b80516107609060029060208401906114cc565b6001600160a01b0384166108bd5760405162461bcd60e51b815260040161035990611d4c565b81518351146108de5760405162461bcd60e51b815260040161035990611d8d565b336108ee81600087878787611150565b60005b84518110156109895783818151811061090c5761090c611cbc565b602002602001015160008087848151811061092957610929611cbc565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008282546109719190611dd5565b9091555081905061098181611ce8565b9150506108f1565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516109da929190611ded565b60405180910390a46105708160008787878761115e565b8151835114610a125760405162461bcd60e51b815260040161035990611d8d565b6001600160a01b038416610a385760405162461bcd60e51b815260040161035990611e1b565b33610a47818787878787611150565b60005b8451811015610b2d576000858281518110610a6757610a67611cbc565b602002602001015190506000858381518110610a8557610a85611cbc565b602090810291909101810151600084815280835260408082206001600160a01b038e168352909352919091205490915081811015610ad55760405162461bcd60e51b815260040161035990611e60565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610b12908490611dd5565b9250508190555050505080610b2690611ce8565b9050610a4a565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610b7d929190611ded565b60405180910390a4610b9381878787878761115e565b505050505050565b6001600160a01b038316610bc15760405162461bcd60e51b815260040161035990611eaa565b8051825114610be25760405162461bcd60e51b815260040161035990611d8d565b6000339050610c0581856000868660405180602001604052806000815250611150565b60005b8351811015610cca576000848281518110610c2557610c25611cbc565b602002602001015190506000848381518110610c4357610c43611cbc565b602090810291909101810151600084815280835260408082206001600160a01b038c168352909352919091205490915081811015610c935760405162461bcd60e51b815260040161035990611eed565b6000928352602083815260408085206001600160a01b038b1686529091529092209103905580610cc281611ce8565b915050610c08565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610d1b929190611ded565b60405180910390a450505050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038416610da15760405162461bcd60e51b815260040161035990611d4c565b33610dc181600087610db2886112ba565b610dbb886112ba565b87611150565b6000848152602081815260408083206001600160a01b038916845290915281208054859290610df1908490611dd5565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461057081600087878787611305565b816001600160a01b0316836001600160a01b03161415610ec55760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610359565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038416610f585760405162461bcd60e51b815260040161035990611e1b565b33610f68818787610db2886112ba565b6000848152602081815260408083206001600160a01b038a16845290915290205483811015610fa95760405162461bcd60e51b815260040161035990611e60565b6000858152602081815260408083206001600160a01b038b8116855292528083208785039055908816825281208054869290610fe6908490611dd5565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611046828888888888611305565b50505050505050565b6001600160a01b0383166110755760405162461bcd60e51b815260040161035990611eaa565b336110a481856000611086876112ba565b61108f876112ba565b60405180602001604052806000815250611150565b6000838152602081815260408083206001600160a01b0388168452909152902054828110156110e55760405162461bcd60e51b815260040161035990611eed565b6000848152602081815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b610b938686868686866113c0565b6001600160a01b0384163b15610b935760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906111a29089908990889088908890600401611f31565b6020604051808303816000875af19250505080156111dd575060408051601f3d908101601f191682019092526111da91810190611f8f565b60015b61128a576111e9611fac565b806308c379a0141561122357506111fe611fc8565b806112095750611225565b8060405162461bcd60e51b8152600401610359919061173d565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610359565b6001600160e01b0319811663bc197c8160e01b146110465760405162461bcd60e51b815260040161035990612052565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106112f4576112f4611cbc565b602090810291909101015292915050565b6001600160a01b0384163b15610b935760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611349908990899088908890889060040161209a565b6020604051808303816000875af1925050508015611384575060408051601f3d908101601f1916820190925261138191810190611f8f565b60015b611390576111e9611fac565b6001600160e01b0319811663f23a6e6160e01b146110465760405162461bcd60e51b815260040161035990612052565b6001600160a01b0385166114475760005b8351811015611445578281815181106113ec576113ec611cbc565b60200260200101516004600086848151811061140a5761140a611cbc565b60200260200101518152602001908152602001600020600082825461142f9190611dd5565b9091555061143e905081611ce8565b90506113d1565b505b6001600160a01b038416610b935760005b83518110156110465782818151811061147357611473611cbc565b60200260200101516004600086848151811061149157611491611cbc565b6020026020010151815260200190815260200160002060008282546114b691906120df565b909155506114c5905081611ce8565b9050611458565b8280546114d890611c81565b90600052602060002090601f0160209004810192826114fa5760008555611540565b82601f1061151357805160ff1916838001178555611540565b82800160010185558215611540579182015b82811115611540578251825591602001919060010190611525565b5061154c929150611550565b5090565b5b8082111561154c5760008155600101611551565b80356001600160a01b038116811461157c57600080fd5b919050565b6000806040838503121561159457600080fd5b61159d83611565565b946020939093013593505050565b6001600160e01b03198116811461040d57600080fd5b6000602082840312156115d357600080fd5b81356115de816115ab565b9392505050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715611621576116216115e5565b6040525050565b600067ffffffffffffffff831115611642576116426115e5565b604051611659601f8501601f1916602001826115fb565b80915083815284848401111561166e57600080fd5b83836020830137600060208583010152509392505050565b60006020828403121561169857600080fd5b813567ffffffffffffffff8111156116af57600080fd5b8201601f810184136116c057600080fd5b6116cf84823560208401611628565b949350505050565b6000602082840312156116e957600080fd5b5035919050565b6000815180845260005b81811015611716576020818501810151868301820152016116fa565b81811115611728576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006115de60208301846116f0565b600067ffffffffffffffff82111561176a5761176a6115e5565b5060051b60200190565b600082601f83011261178557600080fd5b8135602061179282611750565b60405161179f82826115fb565b83815260059390931b85018201928281019150868411156117bf57600080fd5b8286015b848110156117da57803583529183019183016117c3565b509695505050505050565b600082601f8301126117f657600080fd5b6115de83833560208501611628565b6000806000806080858703121561181b57600080fd5b61182485611565565b9350602085013567ffffffffffffffff8082111561184157600080fd5b61184d88838901611774565b9450604087013591508082111561186357600080fd5b61186f88838901611774565b9350606087013591508082111561188557600080fd5b50611892878288016117e5565b91505092959194509250565b600080600080600060a086880312156118b657600080fd5b6118bf86611565565b94506118cd60208701611565565b9350604086013567ffffffffffffffff808211156118ea57600080fd5b6118f689838a01611774565b9450606088013591508082111561190c57600080fd5b61191889838a01611774565b9350608088013591508082111561192e57600080fd5b5061193b888289016117e5565b9150509295509295909350565b6000806040838503121561195b57600080fd5b823567ffffffffffffffff8082111561197357600080fd5b818501915085601f83011261198757600080fd5b8135602061199482611750565b6040516119a182826115fb565b83815260059390931b85018201928281019150898411156119c157600080fd5b948201945b838610156119e6576119d786611565565b825294820194908201906119c6565b965050860135925050808211156119fc57600080fd5b50611a0985828601611774565b9150509250929050565b600081518084526020808501945080840160005b83811015611a4357815187529582019590820190600101611a27565b509495945050505050565b6020815260006115de6020830184611a13565b600080600060608486031215611a7657600080fd5b611a7f84611565565b9250602084013567ffffffffffffffff80821115611a9c57600080fd5b611aa887838801611774565b93506040860135915080821115611abe57600080fd5b50611acb86828701611774565b9150509250925092565b60008060008060808587031215611aeb57600080fd5b611af485611565565b93506020850135925060408501359150606085013567ffffffffffffffff811115611b1e57600080fd5b611892878288016117e5565b60008060408385031215611b3d57600080fd5b611b4683611565565b915060208301358015158114611b5b57600080fd5b809150509250929050565b60008060408385031215611b7957600080fd5b611b8283611565565b9150611b9060208401611565565b90509250929050565b600080600080600060a08688031215611bb157600080fd5b611bba86611565565b9450611bc860208701611565565b93506040860135925060608601359150608086013567ffffffffffffffff811115611bf257600080fd5b61193b888289016117e5565b600060208284031215611c1057600080fd5b6115de82611565565b600080600060608486031215611c2e57600080fd5b611c3784611565565b95602085013595506040909401359392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611c9557607f821691505b60208210811415611cb657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611cfc57611cfc611cd2565b5060010190565b60208082526029908201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260408201526808185c1c1c9bdd995960ba1b606082015260800190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60008219821115611de857611de8611cd2565b500190565b604081526000611e006040830185611a13565b8281036020840152611e128185611a13565b95945050505050565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090611f5d90830186611a13565b8281036060840152611f6f8186611a13565b90508281036080840152611f8381856116f0565b98975050505050505050565b600060208284031215611fa157600080fd5b81516115de816115ab565b600060033d1115611fc55760046000803e5060005160e01c5b90565b600060443d1015611fd65790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561200657505050505090565b828501915081518181111561201e5750505050505090565b843d87010160208285010111156120385750505050505090565b612047602082860101876115fb565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906120d4908301846116f0565b979650505050505050565b6000828210156120f1576120f1611cd2565b50039056fea26469706673582212207ef8c935ea9dce6d8dd9c7e4fd81b2d99ee02dc40453a3eba4a3afda693fcd1c64736f6c634300080b0033",
  "immutableReferences": {},
  "generatedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:1620:56",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:56",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "46:95:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "63:1:56",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "70:3:56",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "75:10:56",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "66:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "66:20:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "56:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "56:31:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "56:31:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "103:1:56",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "106:4:56",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "96:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "96:15:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "96:15:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "127:1:56",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "130:4:56",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "120:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "120:15:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "120:15:56"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nodeType": "YulFunctionDefinition",
            "src": "14:127:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "237:996:56",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "247:12:56",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "257:2:56",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "251:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "304:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "313:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "316:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "306:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "306:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "306:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "279:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "288:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "275:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "275:23:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "300:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "271:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "271:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "268:52:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "329:30:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "349:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "343:5:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "343:16:56"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "333:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "368:28:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "386:2:56",
                            "type": "",
                            "value": "64"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "390:1:56",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "382:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "382:10:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "394:1:56",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "378:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "378:18:56"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "372:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "423:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "432:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "435:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "425:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "425:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "425:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "411:6:56"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "419:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "408:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "408:14:56"
                  },
                  "nodeType": "YulIf",
                  "src": "405:34:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "448:32:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "462:9:56"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "473:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "458:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "458:22:56"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "452:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "528:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "537:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "540:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "530:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "530:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "530:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "507:2:56"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "511:4:56",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "503:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "503:13:56"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "518:7:56"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "499:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "499:27:56"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "492:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "492:35:56"
                  },
                  "nodeType": "YulIf",
                  "src": "489:55:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "553:19:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "569:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "563:5:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "563:9:56"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nodeType": "YulTypedName",
                      "src": "557:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "595:22:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "597:16:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "597:18:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "597:18:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "587:2:56"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "591:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "584:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "584:10:56"
                  },
                  "nodeType": "YulIf",
                  "src": "581:36:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "626:17:56",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "640:2:56",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "not",
                      "nodeType": "YulIdentifier",
                      "src": "636:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "636:7:56"
                  },
                  "variables": [
                    {
                      "name": "_5",
                      "nodeType": "YulTypedName",
                      "src": "630:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "652:23:56",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "672:2:56",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "666:5:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "666:9:56"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "656:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "684:71:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "706:6:56"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "_4",
                                        "nodeType": "YulIdentifier",
                                        "src": "730:2:56"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "734:4:56",
                                        "type": "",
                                        "value": "0x1f"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "726:3:56"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "726:13:56"
                                  },
                                  {
                                    "name": "_5",
                                    "nodeType": "YulIdentifier",
                                    "src": "741:2:56"
                                  }
                                ],
                                "functionName": {
                                  "name": "and",
                                  "nodeType": "YulIdentifier",
                                  "src": "722:3:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "722:22:56"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "746:2:56",
                                "type": "",
                                "value": "63"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "718:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "718:31:56"
                          },
                          {
                            "name": "_5",
                            "nodeType": "YulIdentifier",
                            "src": "751:2:56"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "714:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "714:40:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "702:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "702:53:56"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nodeType": "YulTypedName",
                      "src": "688:10:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "814:22:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "816:16:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "816:18:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "816:18:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "773:10:56"
                          },
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "785:2:56"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "770:2:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "770:18:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "793:10:56"
                          },
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "805:6:56"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "790:2:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "790:22:56"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "767:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "767:46:56"
                  },
                  "nodeType": "YulIf",
                  "src": "764:72:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "852:2:56",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nodeType": "YulIdentifier",
                        "src": "856:10:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "845:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "845:22:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "845:22:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "883:6:56"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "891:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "876:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "876:18:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "876:18:56"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "940:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "949:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "952:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "942:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "942:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "942:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "917:2:56"
                              },
                              {
                                "name": "_4",
                                "nodeType": "YulIdentifier",
                                "src": "921:2:56"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "913:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "913:11:56"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "926:2:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "909:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "909:20:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "931:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "906:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "906:33:56"
                  },
                  "nodeType": "YulIf",
                  "src": "903:53:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "965:10:56",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "974:1:56",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "969:1:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1030:83:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "memPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "1059:6:56"
                                    },
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "1067:1:56"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "1055:3:56"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1055:14:56"
                                },
                                {
                                  "name": "_1",
                                  "nodeType": "YulIdentifier",
                                  "src": "1071:2:56"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "1051:3:56"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1051:23:56"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "name": "_3",
                                          "nodeType": "YulIdentifier",
                                          "src": "1090:2:56"
                                        },
                                        {
                                          "name": "i",
                                          "nodeType": "YulIdentifier",
                                          "src": "1094:1:56"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "add",
                                        "nodeType": "YulIdentifier",
                                        "src": "1086:3:56"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1086:10:56"
                                    },
                                    {
                                      "name": "_1",
                                      "nodeType": "YulIdentifier",
                                      "src": "1098:2:56"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "1082:3:56"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1082:19:56"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "1076:5:56"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1076:26:56"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1044:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1044:59:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1044:59:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "995:1:56"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "998:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "992:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "992:9:56"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "1002:19:56",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "1004:15:56",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "1013:1:56"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "1016:2:56"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1009:3:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1009:10:56"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "1004:1:56"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "988:3:56",
                    "statements": []
                  },
                  "src": "984:129:56"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1143:59:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "memPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "1172:6:56"
                                    },
                                    {
                                      "name": "_4",
                                      "nodeType": "YulIdentifier",
                                      "src": "1180:2:56"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "1168:3:56"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1168:15:56"
                                },
                                {
                                  "name": "_1",
                                  "nodeType": "YulIdentifier",
                                  "src": "1185:2:56"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "1164:3:56"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1164:24:56"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1190:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1157:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1157:35:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1157:35:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "1128:1:56"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "1131:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "1125:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1125:9:56"
                  },
                  "nodeType": "YulIf",
                  "src": "1122:80:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1211:16:56",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "1221:6:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1211:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "203:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "214:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "226:6:56",
                "type": ""
              }
            ],
            "src": "146:1087:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1293:325:56",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1303:22:56",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1317:1:56",
                        "type": "",
                        "value": "1"
                      },
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "1320:4:56"
                      }
                    ],
                    "functionName": {
                      "name": "shr",
                      "nodeType": "YulIdentifier",
                      "src": "1313:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1313:12:56"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "1303:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1334:38:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "1364:4:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1370:1:56",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "1360:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1360:12:56"
                  },
                  "variables": [
                    {
                      "name": "outOfPlaceEncoding",
                      "nodeType": "YulTypedName",
                      "src": "1338:18:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1411:31:56",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "1413:27:56",
                        "value": {
                          "arguments": [
                            {
                              "name": "length",
                              "nodeType": "YulIdentifier",
                              "src": "1427:6:56"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1435:4:56",
                              "type": "",
                              "value": "0x7f"
                            }
                          ],
                          "functionName": {
                            "name": "and",
                            "nodeType": "YulIdentifier",
                            "src": "1423:3:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1423:17:56"
                        },
                        "variableNames": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "1413:6:56"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "1391:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "1384:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1384:26:56"
                  },
                  "nodeType": "YulIf",
                  "src": "1381:61:56"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1501:111:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1522:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1529:3:56",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1534:10:56",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "1525:3:56"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1525:20:56"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1515:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1515:31:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1515:31:56"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1566:1:56",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1569:4:56",
                              "type": "",
                              "value": "0x22"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1559:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1559:15:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1559:15:56"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1594:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1597:4:56",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1587:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1587:15:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1587:15:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "1457:18:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "1480:6:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1488:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "1477:2:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1477:14:56"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "1454:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1454:38:56"
                  },
                  "nodeType": "YulIf",
                  "src": "1451:161:56"
                }
              ]
            },
            "name": "extract_byte_array_length",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "1273:4:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "1282:6:56",
                "type": ""
              }
            ],
            "src": "1238:380:56"
          }
        ]
      },
      "contents": "{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_string_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 := sub(shl(64, 1), 1)\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 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_4, 0x1f), _5), 63), _5))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _4)\n        if gt(add(add(_3, _4), _1), dataEnd) { revert(0, 0) }\n        let i := 0\n        for { } lt(i, _4) { i := add(i, _1) }\n        {\n            mstore(add(add(memPtr, i), _1), mload(add(add(_3, i), _1)))\n        }\n        if gt(i, _4)\n        {\n            mstore(add(add(memPtr, _4), _1), 0)\n        }\n        value0 := memPtr\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n}",
      "id": 56,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:21841:56",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:56",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "63:124:56",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "73:29:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "95:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "82:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "82:20:56"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nodeType": "YulIdentifier",
                      "src": "73:5:56"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "165:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "174:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "177:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "167:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "167:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "167:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "124:5:56"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "135:5:56"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "150:3:56",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "155:1:56",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "146:3:56"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "146:11:56"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "159:1:56",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "142:3:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "142:19:56"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "131:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "131:31:56"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "121:2:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "121:42:56"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "114:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "114:50:56"
                  },
                  "nodeType": "YulIf",
                  "src": "111:70:56"
                }
              ]
            },
            "name": "abi_decode_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "42:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "53:5:56",
                "type": ""
              }
            ],
            "src": "14:173:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "279:167:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "325:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "334:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "337:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "327:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "327:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "327:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "300:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "309:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "296:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "296:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "321:2:56",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "292:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "292:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "289:52:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "350:39:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "379:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "360:18:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "360:29:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "350:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "398:42:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "425:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "436:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "421:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "421:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "408:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "408:32:56"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "398:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "237:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "248:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "260:6:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "268:6:56",
                "type": ""
              }
            ],
            "src": "192:254:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "552:76:56",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "562:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "574:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "585:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "570:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "570:18:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "562:4:56"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "604:9:56"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "615:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "597:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "597:25:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "597:25:56"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "521:9:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "532:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "543:4:56",
                "type": ""
              }
            ],
            "src": "451:177:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "677:87:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "742:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "751:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "754:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "744:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "744:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "744:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "700:5:56"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "711:5:56"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "722:3:56",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "727:10:56",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "718:3:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "718:20:56"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "707:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "707:32:56"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "697:2:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "697:43:56"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "690:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "690:51:56"
                  },
                  "nodeType": "YulIf",
                  "src": "687:71:56"
                }
              ]
            },
            "name": "validator_revert_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "666:5:56",
                "type": ""
              }
            ],
            "src": "633:131:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "838:176:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "884:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "893:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "896:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "886:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "886:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "886:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "859:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "868:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "855:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "855:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "880:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "851:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "851:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "848:52:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "909:36:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "935:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "922:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "922:23:56"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "913:5:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "978:5:56"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bytes4",
                      "nodeType": "YulIdentifier",
                      "src": "954:23:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "954:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "954:30:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "993:15:56",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1003:5:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "993:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "804:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "815:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "827:6:56",
                "type": ""
              }
            ],
            "src": "769:245:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1114:92:56",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1124:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1136:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1147:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1132:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1132:18:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1124:4:56"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1166:9:56"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "1191:6:56"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "1184:6:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1184:14:56"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "1177:6:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1177:22:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1159:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1159:41:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1159:41:56"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1083:9:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1094:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1105:4:56",
                "type": ""
              }
            ],
            "src": "1019:187:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1243:95:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1260:1:56",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1267:3:56",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1272:10:56",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "1263:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1263:20:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1253:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1253:31:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1253:31:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1300:1:56",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1303:4:56",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1293:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1293:15:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1293:15:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1324:1:56",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1327:4:56",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "1317:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1317:15:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1317:15:56"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nodeType": "YulFunctionDefinition",
            "src": "1211:127:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1390:202:56",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1400:58:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "1422:6:56"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "size",
                                "nodeType": "YulIdentifier",
                                "src": "1438:4:56"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "1444:2:56",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "1434:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1434:13:56"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "1453:2:56",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "1449:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1449:7:56"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "1430:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1430:27:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1418:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1418:40:56"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nodeType": "YulTypedName",
                      "src": "1404:10:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1533:22:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "1535:16:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1535:18:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1535:18:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "1476:10:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1488:18:56",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "1473:2:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1473:34:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "1512:10:56"
                          },
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "1524:6:56"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "1509:2:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1509:22:56"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "1470:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1470:62:56"
                  },
                  "nodeType": "YulIf",
                  "src": "1467:88:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1571:2:56",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nodeType": "YulIdentifier",
                        "src": "1575:10:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1564:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1564:22:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1564:22:56"
                }
              ]
            },
            "name": "finalize_allocation",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "1372:6:56",
                "type": ""
              },
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "1380:4:56",
                "type": ""
              }
            ],
            "src": "1343:249:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1672:394:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1716:22:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "1718:16:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1718:18:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1718:18:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1688:6:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1696:18:56",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "1685:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1685:30:56"
                  },
                  "nodeType": "YulIf",
                  "src": "1682:56:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1747:23:56",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1767:2:56",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "1761:5:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1761:9:56"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "1751:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "1799:6:56"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "1819:6:56"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1827:2:56",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "1815:3:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1815:15:56"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1836:2:56",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "1832:3:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1832:7:56"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "1811:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1811:29:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1842:4:56",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1807:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1807:40:56"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "1779:19:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1779:69:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1779:69:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1857:15:56",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "1866:6:56"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "1857:5:56"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "1888:6:56"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1896:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1881:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1881:22:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1881:22:56"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1941:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1950:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1953:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1943:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1943:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1943:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "1922:3:56"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "1927:6:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1918:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1918:16:56"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "1936:3:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "1915:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1915:25:56"
                  },
                  "nodeType": "YulIf",
                  "src": "1912:45:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "1983:6:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1991:4:56",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1979:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1979:17:56"
                      },
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "1998:3:56"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2003:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "1966:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1966:44:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1966:44:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "memPtr",
                                "nodeType": "YulIdentifier",
                                "src": "2034:6:56"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "2042:6:56"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2030:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2030:19:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2051:4:56",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2026:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2026:30:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2058:1:56",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2019:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2019:41:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2019:41:56"
                }
              ]
            },
            "name": "abi_decode_available_length_string",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "1641:3:56",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "1646:6:56",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "1654:3:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "1662:5:56",
                "type": ""
              }
            ],
            "src": "1597:469:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2151:371:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2197:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2206:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2209:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2199:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2199:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2199:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2172:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2181:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2168:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2168:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2193:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "2164:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2164:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "2161:52:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2222:37:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2249:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2236:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2236:23:56"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "2226:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2302:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2311:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2314:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2304:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2304:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2304:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "2274:6:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2282:18:56",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "2271:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2271:30:56"
                  },
                  "nodeType": "YulIf",
                  "src": "2268:50:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2327:32:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2341:9:56"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "2352:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2337:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2337:22:56"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "2331:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2407:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2416:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2419:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2409:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2409:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2409:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "2386:2:56"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2390:4:56",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2382:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2382:13:56"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2397:7:56"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "2378:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2378:27:56"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "2371:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2371:35:56"
                  },
                  "nodeType": "YulIf",
                  "src": "2368:55:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2432:84:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "2481:2:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2485:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2477:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2477:11:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "2503:2:56"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "2490:12:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2490:16:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "2508:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_available_length_string",
                      "nodeType": "YulIdentifier",
                      "src": "2442:34:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2442:74:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "2432:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2117:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "2128:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2140:6:56",
                "type": ""
              }
            ],
            "src": "2071:451:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2597:110:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2643:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2652:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2655:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2645:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2645:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2645:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2618:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2627:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2614:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2614:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2639:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "2610:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2610:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "2607:52:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2668:33:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2691:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2678:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2678:23:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "2668:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2563:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "2574:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2586:6:56",
                "type": ""
              }
            ],
            "src": "2527:180:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2762:422:56",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2772:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "2792:5:56"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "2786:5:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2786:12:56"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "2776:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "2814:3:56"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2819:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2807:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2807:19:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2807:19:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2835:10:56",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2844:1:56",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "2839:1:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2906:110:56",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "2920:14:56",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "2930:4:56",
                          "type": "",
                          "value": "0x20"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "2924:2:56",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "pos",
                                      "nodeType": "YulIdentifier",
                                      "src": "2962:3:56"
                                    },
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "2967:1:56"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "2958:3:56"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "2958:11:56"
                                },
                                {
                                  "name": "_1",
                                  "nodeType": "YulIdentifier",
                                  "src": "2971:2:56"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "2954:3:56"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "2954:20:56"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "name": "value",
                                          "nodeType": "YulIdentifier",
                                          "src": "2990:5:56"
                                        },
                                        {
                                          "name": "i",
                                          "nodeType": "YulIdentifier",
                                          "src": "2997:1:56"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "add",
                                        "nodeType": "YulIdentifier",
                                        "src": "2986:3:56"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "2986:13:56"
                                    },
                                    {
                                      "name": "_1",
                                      "nodeType": "YulIdentifier",
                                      "src": "3001:2:56"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "2982:3:56"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "2982:22:56"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "2976:5:56"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "2976:29:56"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "2947:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2947:59:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2947:59:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "2865:1:56"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2868:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "2862:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2862:13:56"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "2876:21:56",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "2878:17:56",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "2887:1:56"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2890:4:56",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2883:3:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2883:12:56"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "2878:1:56"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "2858:3:56",
                    "statements": []
                  },
                  "src": "2854:162:56"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3050:62:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "pos",
                                      "nodeType": "YulIdentifier",
                                      "src": "3079:3:56"
                                    },
                                    {
                                      "name": "length",
                                      "nodeType": "YulIdentifier",
                                      "src": "3084:6:56"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "3075:3:56"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "3075:16:56"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3093:4:56",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "3071:3:56"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3071:27:56"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3100:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "3064:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3064:38:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3064:38:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "3031:1:56"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "3034:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3028:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3028:13:56"
                  },
                  "nodeType": "YulIf",
                  "src": "3025:87:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3121:57:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "3136:3:56"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "3149:6:56"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "3157:2:56",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "3145:3:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3145:15:56"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "3166:2:56",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "3162:3:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3162:7:56"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "3141:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3141:29:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3132:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3132:39:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3173:4:56",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3128:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3128:50:56"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "3121:3:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "2739:5:56",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "2746:3:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "2754:3:56",
                "type": ""
              }
            ],
            "src": "2712:472:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3310:99:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3327:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3338:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3320:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3320:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3320:21:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3350:53:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "3376:6:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3388:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3399:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3384:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3384:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "3358:17:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3358:45:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "3350:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3279:9:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3290:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "3301:4:56",
                "type": ""
              }
            ],
            "src": "3189:220:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3483:114:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3527:22:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "3529:16:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3529:18:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3529:18:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "3499:6:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3507:18:56",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3496:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3496:30:56"
                  },
                  "nodeType": "YulIf",
                  "src": "3493:56:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3558:33:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3574:1:56",
                            "type": "",
                            "value": "5"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "3577:6:56"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "3570:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3570:14:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3586:4:56",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3566:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3566:25:56"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "3558:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "3463:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "3474:4:56",
                "type": ""
              }
            ],
            "src": "3414:183:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3666:660:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3715:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3724:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3727:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3717:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3717:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3717:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3694:6:56"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3702:4:56",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3690:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3690:17:56"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "3709:3:56"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "3686:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3686:27:56"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "3679:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3679:35:56"
                  },
                  "nodeType": "YulIf",
                  "src": "3676:55:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3740:30:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3763:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3750:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3750:20:56"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "3744:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3779:14:56",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "3789:4:56",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "3783:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3802:53:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "3852:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "3812:39:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3812:43:56"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "3806:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3864:23:56",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3884:2:56",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "3878:5:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3878:9:56"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "3868:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "3916:6:56"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "3924:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "3896:19:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3896:31:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3896:31:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3936:17:56",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "3947:6:56"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "3940:3:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "3969:6:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "3977:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3962:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3962:18:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3962:18:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3989:22:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "4000:6:56"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "4008:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3996:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3996:15:56"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "3989:3:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4020:46:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "4042:6:56"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4054:1:56",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "4057:2:56"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "4050:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4050:10:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4038:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4038:23:56"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "4063:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4034:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4034:32:56"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "4024:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4094:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4103:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4106:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4096:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4096:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4096:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "4081:6:56"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "4089:3:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4078:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4078:15:56"
                  },
                  "nodeType": "YulIf",
                  "src": "4075:35:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4119:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4134:6:56"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "4142:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4130:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4130:15:56"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "4123:3:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4210:86:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "4231:3:56"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "src",
                                  "nodeType": "YulIdentifier",
                                  "src": "4249:3:56"
                                }
                              ],
                              "functionName": {
                                "name": "calldataload",
                                "nodeType": "YulIdentifier",
                                "src": "4236:12:56"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4236:17:56"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "4224:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4224:30:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4224:30:56"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "4267:19:56",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "4278:3:56"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "4283:2:56"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "4274:3:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4274:12:56"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "4267:3:56"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "4165:3:56"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "4170:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "4162:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4162:15:56"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "4178:23:56",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "4180:19:56",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "4191:3:56"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "4196:2:56"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "4187:3:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4187:12:56"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "4180:3:56"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "4158:3:56",
                    "statements": []
                  },
                  "src": "4154:142:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4305:15:56",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "4314:6:56"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "4305:5:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "3640:6:56",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "3648:3:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "3656:5:56",
                "type": ""
              }
            ],
            "src": "3602:724:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4383:169:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4432:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4441:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4444:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4434:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4434:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4434:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4411:6:56"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4419:4:56",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4407:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4407:17:56"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "4426:3:56"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "4403:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4403:27:56"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "4396:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4396:35:56"
                  },
                  "nodeType": "YulIf",
                  "src": "4393:55:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4457:89:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "4505:6:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4513:4:56",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4501:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4501:17:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "4533:6:56"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "4520:12:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4520:20:56"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "4542:3:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_available_length_string",
                      "nodeType": "YulIdentifier",
                      "src": "4466:34:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4466:80:56"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "4457:5:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_bytes",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "4357:6:56",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "4365:3:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "4373:5:56",
                "type": ""
              }
            ],
            "src": "4331:221:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4737:688:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4784:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4793:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4796:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4786:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4786:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4786:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4758:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4767:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "4754:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4754:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4779:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "4750:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4750:33:56"
                  },
                  "nodeType": "YulIf",
                  "src": "4747:53:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4809:39:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4838:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "4819:18:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4819:29:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "4809:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4857:46:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4888:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4899:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4884:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4884:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4871:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4871:32:56"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "4861:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4912:28:56",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "4922:18:56",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "4916:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4967:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4976:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4979:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4969:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4969:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4969:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4955:6:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "4963:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4952:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4952:14:56"
                  },
                  "nodeType": "YulIf",
                  "src": "4949:34:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4992:71:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5035:9:56"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "5046:6:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5031:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5031:22:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "5055:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "5002:28:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5002:61:56"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "4992:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5072:48:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5105:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5116:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5101:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5101:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5088:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5088:32:56"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "5076:8:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5149:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5158:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5161:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5151:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5151:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5151:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "5135:8:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "5145:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5132:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5132:16:56"
                  },
                  "nodeType": "YulIf",
                  "src": "5129:36:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5174:73:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5217:9:56"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "5228:8:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5213:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5213:24:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "5239:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "5184:28:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5184:63:56"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "5174:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5256:48:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5289:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5300:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5285:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5285:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5272:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5272:32:56"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "5260:8:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5333:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5342:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5345:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5335:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5335:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5335:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "5319:8:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "5329:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5316:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5316:16:56"
                  },
                  "nodeType": "YulIf",
                  "src": "5313:36:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5358:61:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5389:9:56"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "5400:8:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5385:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5385:24:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "5411:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "5368:16:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5368:51:56"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "5358:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4679:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "4690:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "4702:6:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "4710:6:56",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "4718:6:56",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "4726:6:56",
                "type": ""
              }
            ],
            "src": "4557:868:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5627:746:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5674:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5683:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5686:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5676:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5676:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5676:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5648:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5657:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "5644:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5644:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5669:3:56",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "5640:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5640:33:56"
                  },
                  "nodeType": "YulIf",
                  "src": "5637:53:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5699:39:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5728:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "5709:18:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5709:29:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "5699:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5747:48:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5780:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5791:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5776:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5776:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "5757:18:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5757:38:56"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "5747:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5804:46:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5835:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5846:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5831:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5831:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5818:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5818:32:56"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "5808:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5859:28:56",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "5869:18:56",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "5863:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5914:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5923:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5926:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5916:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5916:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5916:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "5902:6:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "5910:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5899:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5899:14:56"
                  },
                  "nodeType": "YulIf",
                  "src": "5896:34:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5939:71:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5982:9:56"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "5993:6:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5978:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5978:22:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "6002:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "5949:28:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5949:61:56"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "5939:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6019:48:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6052:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6063:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6048:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6048:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6035:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6035:32:56"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "6023:8:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6096:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6105:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6108:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6098:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6098:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6098:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "6082:8:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6092:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "6079:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6079:16:56"
                  },
                  "nodeType": "YulIf",
                  "src": "6076:36:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6121:73:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6164:9:56"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "6175:8:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6160:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6160:24:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "6186:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "6131:28:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6131:63:56"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "6121:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6203:49:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6236:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6247:3:56",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6232:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6232:19:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6219:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6219:33:56"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "6207:8:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6281:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6290:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6293:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6283:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6283:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6283:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "6267:8:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6277:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "6264:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6264:16:56"
                  },
                  "nodeType": "YulIf",
                  "src": "6261:36:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6306:61:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6337:9:56"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "6348:8:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6333:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6333:24:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "6359:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "6316:16:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6316:51:56"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "6306:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5561:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "5572:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5584:6:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5592:6:56",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "5600:6:56",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "5608:6:56",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "5616:6:56",
                "type": ""
              }
            ],
            "src": "5430:943:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6515:1071:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6561:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6570:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6573:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6563:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6563:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6563:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6536:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6545:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "6532:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6532:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6557:2:56",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "6528:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6528:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "6525:52:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6586:37:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6613:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6600:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6600:23:56"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "6590:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6632:28:56",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "6642:18:56",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "6636:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6687:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6696:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6699:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6689:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6689:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6689:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "6675:6:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6683:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "6672:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6672:14:56"
                  },
                  "nodeType": "YulIf",
                  "src": "6669:34:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6712:32:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6726:9:56"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "6737:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6722:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6722:22:56"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "6716:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6792:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6801:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6804:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6794:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6794:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6794:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "6771:2:56"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6775:4:56",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6767:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6767:13:56"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6782:7:56"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "6763:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6763:27:56"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "6756:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6756:35:56"
                  },
                  "nodeType": "YulIf",
                  "src": "6753:55:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6817:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "6840:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6827:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6827:16:56"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "6821:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6852:14:56",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "6862:4:56",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nodeType": "YulTypedName",
                      "src": "6856:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6875:53:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "6925:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "6885:39:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6885:43:56"
                  },
                  "variables": [
                    {
                      "name": "_5",
                      "nodeType": "YulTypedName",
                      "src": "6879:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6937:23:56",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6957:2:56",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "6951:5:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6951:9:56"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "6941:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "6989:6:56"
                      },
                      {
                        "name": "_5",
                        "nodeType": "YulIdentifier",
                        "src": "6997:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "6969:19:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6969:31:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6969:31:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7009:17:56",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "7020:6:56"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "7013:3:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "7042:6:56"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "7050:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7035:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7035:18:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7035:18:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7062:22:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "7073:6:56"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "7081:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7069:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7069:15:56"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "7062:3:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7093:42:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "7115:2:56"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "7123:1:56",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "7126:2:56"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "7119:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7119:10:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7111:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7111:19:56"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "7132:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7107:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7107:28:56"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "7097:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7167:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7176:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7179:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7169:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7169:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7169:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7150:6:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7158:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7147:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7147:19:56"
                  },
                  "nodeType": "YulIf",
                  "src": "7144:39:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7192:22:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "7207:2:56"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "7211:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7203:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7203:11:56"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "7196:3:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7279:92:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "7300:3:56"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "src",
                                  "nodeType": "YulIdentifier",
                                  "src": "7324:3:56"
                                }
                              ],
                              "functionName": {
                                "name": "abi_decode_address",
                                "nodeType": "YulIdentifier",
                                "src": "7305:18:56"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7305:23:56"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "7293:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7293:36:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7293:36:56"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7342:19:56",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "7353:3:56"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "7358:2:56"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7349:3:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7349:12:56"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "7342:3:56"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "7234:3:56"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7239:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "7231:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7231:15:56"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "7247:23:56",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "7249:19:56",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "7260:3:56"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "7265:2:56"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7256:3:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7256:12:56"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "7249:3:56"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "7227:3:56",
                    "statements": []
                  },
                  "src": "7223:148:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7380:16:56",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "7390:6:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "7380:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7405:48:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7438:9:56"
                          },
                          {
                            "name": "_4",
                            "nodeType": "YulIdentifier",
                            "src": "7449:2:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7434:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7434:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7421:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7421:32:56"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "7409:8:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7482:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7491:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7494:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7484:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7484:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7484:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "7468:8:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7478:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7465:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7465:16:56"
                  },
                  "nodeType": "YulIf",
                  "src": "7462:36:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7507:73:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7550:9:56"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "7561:8:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7546:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7546:24:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7572:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "7517:28:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7517:63:56"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "7507:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "6473:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "6484:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "6496:6:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "6504:6:56",
                "type": ""
              }
            ],
            "src": "6378:1208:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "7652:374:56",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7662:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "7682:5:56"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "7676:5:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7676:12:56"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "7666:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "7704:3:56"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "7709:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7697:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7697:19:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7697:19:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7725:14:56",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "7735:4:56",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "7729:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7748:19:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "7759:3:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7764:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7755:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7755:12:56"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "7748:3:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7776:28:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "7794:5:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7801:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7790:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7790:14:56"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "7780:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7813:10:56",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "7822:1:56",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "7817:1:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7881:120:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "7902:3:56"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nodeType": "YulIdentifier",
                                  "src": "7913:6:56"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "7907:5:56"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7907:13:56"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "7895:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7895:26:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7895:26:56"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7934:19:56",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "7945:3:56"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "7950:2:56"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7941:3:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7941:12:56"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "7934:3:56"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7966:25:56",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "7980:6:56"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "7988:2:56"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7976:3:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7976:15:56"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "7966:6:56"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "7843:1:56"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "7846:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "7840:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7840:13:56"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "7854:18:56",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "7856:14:56",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "7865:1:56"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7868:1:56",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7861:3:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7861:9:56"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "7856:1:56"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "7836:3:56",
                    "statements": []
                  },
                  "src": "7832:169:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8010:10:56",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "8017:3:56"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "8010:3:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "7629:5:56",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "7636:3:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "7644:3:56",
                "type": ""
              }
            ],
            "src": "7591:435:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8182:110:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "8199:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8210:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "8192:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8192:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8192:21:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8222:64:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "8259:6:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8271:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8282:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8267:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8267:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "8230:28:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8230:56:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "8222:4:56"
                    }
                  ]
                }
              ]
            },
            "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": "8151:9:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "8162:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "8173:4:56",
                "type": ""
              }
            ],
            "src": "8031:261:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8451:515:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8497:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8506:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8509:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8499:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8499:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8499:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8472:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8481:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "8468:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8468:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8493:2:56",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "8464:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8464:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "8461:52:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8522:39:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "8551:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "8532:18:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8532:29:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "8522:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8570:46:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8601:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8612:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8597:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8597:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8584:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8584:32:56"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "8574:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8625:28:56",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "8635:18:56",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "8629:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8680:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8689:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8692:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8682:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8682:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8682:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "8668:6:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8676:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8665:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8665:14:56"
                  },
                  "nodeType": "YulIf",
                  "src": "8662:34:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8705:71:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8748:9:56"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "8759:6:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8744:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8744:22:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8768:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "8715:28:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8715:61:56"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "8705:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8785:48:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8818:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8829:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8814:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8814:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8801:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8801:32:56"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "8789:8:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8862:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8871:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8874:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8864:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8864:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8864:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "8848:8:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8858:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8845:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8845:16:56"
                  },
                  "nodeType": "YulIf",
                  "src": "8842:36:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8887:73:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8930:9:56"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "8941:8:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8926:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8926:24:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8952:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "8897:28:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8897:63:56"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "8887:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "8401:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "8412:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "8424:6:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "8432:6:56",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "8440:6:56",
                "type": ""
              }
            ],
            "src": "8297:669:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9101:401:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9148:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9157:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9160:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9150:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9150:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9150:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9122:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9131:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9118:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9118:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9143:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "9114:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9114:33:56"
                  },
                  "nodeType": "YulIf",
                  "src": "9111:53:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9173:39:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9202:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "9183:18:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9183:29:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "9173:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9221:42:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9248:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9259:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9244:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9244:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9231:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9231:32:56"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "9221:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9272:42:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9299:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9310:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9295:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9295:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9282:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9282:32:56"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "9272:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9323:46:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9354:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9365:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9350:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9350:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9337:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9337:32:56"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "9327:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9412:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9421:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9424:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9414:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9414:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9414:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "9384:6:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9392:18:56",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9381:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9381:30:56"
                  },
                  "nodeType": "YulIf",
                  "src": "9378:50:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9437:59:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9468:9:56"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "9479:6:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9464:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9464:22:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9488:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "9447:16:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9447:49:56"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "9437:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9043:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "9054:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9066:6:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "9074:6:56",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "9082:6:56",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "9090:6:56",
                "type": ""
              }
            ],
            "src": "8971:531:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9608:102:56",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "9618:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9630:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9641:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "9626:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9626:18:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "9618:4:56"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9660:9:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "9675:6:56"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "9691:3:56",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "9696:1:56",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "9687:3:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "9687:11:56"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "9700:1:56",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "9683:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "9683:19:56"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "9671:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9671:32:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "9653:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9653:51:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9653:51:56"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9577:9:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9588:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "9599:4:56",
                "type": ""
              }
            ],
            "src": "9507:203:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9799:263:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9845:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9854:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9857:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9847:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9847:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9847:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9820:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9829:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9816:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9816:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9841:2:56",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "9812:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9812:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "9809:52:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9870:39:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9899:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "9880:18:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9880:29:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "9870:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9918:45:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9948:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9959:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9944:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9944:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9931:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9931:32:56"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "9922:5:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10016:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10025:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10028:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "10018:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10018:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10018:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "9985:5:56"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "10006:5:56"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "9999:6:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "9999:13:56"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "9992:6:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "9992:21:56"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "9982:2:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9982:32:56"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "9975:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9975:40:56"
                  },
                  "nodeType": "YulIf",
                  "src": "9972:60:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10041:15:56",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "10051:5:56"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "10041:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9757:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "9768:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9780:6:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "9788:6:56",
                "type": ""
              }
            ],
            "src": "9715:347:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10154:173:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10200:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10209:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10212:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "10202:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10202:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10202:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "10175:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10184:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "10171:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10171:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10196:2:56",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "10167:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10167:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "10164:52:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10225:39:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "10254:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "10235:18:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10235:29:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "10225:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10273:48:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10306:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10317:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10302:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10302:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "10283:18:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10283:38:56"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "10273:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "10112:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "10123:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "10135:6:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "10143:6:56",
                "type": ""
              }
            ],
            "src": "10067:260:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10479:459:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10526:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10535:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10538:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "10528:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10528:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10528:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "10500:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10509:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "10496:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10496:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10521:3:56",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "10492:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10492:33:56"
                  },
                  "nodeType": "YulIf",
                  "src": "10489:53:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10551:39:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "10580:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "10561:18:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10561:29:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "10551:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10599:48:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10632:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10643:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10628:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10628:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "10609:18:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10609:38:56"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "10599:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10656:42:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10683:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10694:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10679:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10679:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "10666:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10666:32:56"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "10656:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10707:42:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10734:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10745:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10730:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10730:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "10717:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10717:32:56"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "10707:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10758:47:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10789:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10800:3:56",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10785:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10785:19:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "10772:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10772:33:56"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "10762:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10848:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10857:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10860:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "10850:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10850:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10850:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "10820:6:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10828:18:56",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "10817:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10817:30:56"
                  },
                  "nodeType": "YulIf",
                  "src": "10814:50:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10873:59:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10904:9:56"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "10915:6:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10900:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10900:22:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "10924:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "10883:16:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10883:49:56"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "10873:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "10413:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "10424:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "10436:6:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "10444:6:56",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "10452:6:56",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "10460:6:56",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "10468:6:56",
                "type": ""
              }
            ],
            "src": "10332:606:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11013:116:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11059:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11068:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11071:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11061:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11061:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11061:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "11034:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11043:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "11030:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11030:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11055:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "11026:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11026:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "11023:52:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11084:39:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "11113:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "11094:18:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11094:29:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "11084:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "10979:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "10990:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "11002:6:56",
                "type": ""
              }
            ],
            "src": "10943:186:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11238:218:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11284:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11293:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11296:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11286:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11286:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11286:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "11259:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11268:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "11255:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11255:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11280:2:56",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "11251:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11251:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "11248:52:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11309:39:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "11338:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "11319:18:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11319:29:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "11309:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11357:42:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11384:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11395:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11380:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11380:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "11367:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11367:32:56"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "11357:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11408:42:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11435:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11446:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11431:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11431:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "11418:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11418:32:56"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "11408:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint256t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "11188:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "11199:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "11211:6:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "11219:6:56",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "11227:6:56",
                "type": ""
              }
            ],
            "src": "11134:322:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11635:233:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "11652:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11663:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11645:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11645:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11645:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11686:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11697:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11682:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11682:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11702:2:56",
                        "type": "",
                        "value": "43"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11675:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11675:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11675:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11725:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11736:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11721:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11721:18:56"
                      },
                      {
                        "hexValue": "455243313135353a2062616c616e636520717565727920666f7220746865207a",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "11741:34:56",
                        "type": "",
                        "value": "ERC1155: balance query for the z"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11714:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11714:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11714:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11796:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11807:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11792:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11792:18:56"
                      },
                      {
                        "hexValue": "65726f2061646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "11812:13:56",
                        "type": "",
                        "value": "ero address"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11785:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11785:41:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11785:41:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11835:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "11847:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11858:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "11843:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11843:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "11835:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "11612:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "11626:4:56",
                "type": ""
              }
            ],
            "src": "11461:407:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12047:182:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12064:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12075:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12057:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12057:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12057:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12098:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12109:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12094:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12094:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12114:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12087:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12087:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12087:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12137:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12148:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12133:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12133:18:56"
                      },
                      {
                        "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "12153:34:56",
                        "type": "",
                        "value": "Ownable: caller is not the owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12126:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12126:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12126:62:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12197:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12209:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12220:2:56",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "12205:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12205:18:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "12197:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "12024:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "12038:4:56",
                "type": ""
              }
            ],
            "src": "11873:356:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12289:325:56",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "12299:22:56",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12313:1:56",
                        "type": "",
                        "value": "1"
                      },
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "12316:4:56"
                      }
                    ],
                    "functionName": {
                      "name": "shr",
                      "nodeType": "YulIdentifier",
                      "src": "12309:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12309:12:56"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "12299:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12330:38:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "12360:4:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12366:1:56",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "12356:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12356:12:56"
                  },
                  "variables": [
                    {
                      "name": "outOfPlaceEncoding",
                      "nodeType": "YulTypedName",
                      "src": "12334:18:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12407:31:56",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "12409:27:56",
                        "value": {
                          "arguments": [
                            {
                              "name": "length",
                              "nodeType": "YulIdentifier",
                              "src": "12423:6:56"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12431:4:56",
                              "type": "",
                              "value": "0x7f"
                            }
                          ],
                          "functionName": {
                            "name": "and",
                            "nodeType": "YulIdentifier",
                            "src": "12419:3:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12419:17:56"
                        },
                        "variableNames": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "12409:6:56"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "12387:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "12380:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12380:26:56"
                  },
                  "nodeType": "YulIf",
                  "src": "12377:61:56"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12497:111:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12518:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "12525:3:56",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "12530:10:56",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "12521:3:56"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "12521:20:56"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "12511:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12511:31:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12511:31:56"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12562:1:56",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12565:4:56",
                              "type": "",
                              "value": "0x22"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "12555:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12555:15:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12555:15:56"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12590:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12593:4:56",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12583:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12583:15:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12583:15:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "12453:18:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "12476:6:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12484:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "12473:2:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12473:14:56"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "12450:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12450:38:56"
                  },
                  "nodeType": "YulIf",
                  "src": "12447:161:56"
                }
              ]
            },
            "name": "extract_byte_array_length",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "12269:4:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "12278:6:56",
                "type": ""
              }
            ],
            "src": "12234:380:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12793:240:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12810:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12821:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12803:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12803:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12803:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12844:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12855:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12840:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12840:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12860:2:56",
                        "type": "",
                        "value": "50"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12833:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12833:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12833:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12883:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12894:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12879:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12879:18:56"
                      },
                      {
                        "hexValue": "455243313135353a207472616e736665722063616c6c6572206973206e6f7420",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "12899:34:56",
                        "type": "",
                        "value": "ERC1155: transfer caller is not "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12872:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12872:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12872:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12954:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12965:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12950:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12950:18:56"
                      },
                      {
                        "hexValue": "6f776e6572206e6f7220617070726f766564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "12970:20:56",
                        "type": "",
                        "value": "owner nor approved"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12943:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12943:48:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12943:48:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13000:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13012:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13023:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "13008:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13008:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "13000:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "12770:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "12784:4:56",
                "type": ""
              }
            ],
            "src": "12619:414:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13212:231:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13229:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13240:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13222:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13222:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13222:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13263:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13274:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13259:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13259:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13279:2:56",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13252:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13252:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13252:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13302:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13313:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13298:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13298:18:56"
                      },
                      {
                        "hexValue": "455243313135353a206163636f756e747320616e6420696473206c656e677468",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "13318:34:56",
                        "type": "",
                        "value": "ERC1155: accounts and ids length"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13291:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13291:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13291:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13373:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13384:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13369:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13369:18:56"
                      },
                      {
                        "hexValue": "206d69736d61746368",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "13389:11:56",
                        "type": "",
                        "value": " mismatch"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13362:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13362:39:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13362:39:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13410:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13422:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13433:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "13418:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13418:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "13410:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "13189:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "13203:4:56",
                "type": ""
              }
            ],
            "src": "13038:405:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13480:95:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13497:1:56",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13504:3:56",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13509:10:56",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "13500:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13500:20:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13490:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13490:31:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13490:31:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13537:1:56",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13540:4:56",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13530:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13530:15:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13530:15:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13561:1:56",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13564:4:56",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "13554:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13554:15:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13554:15:56"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nodeType": "YulFunctionDefinition",
            "src": "13448:127:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13612:95:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13629:1:56",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13636:3:56",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13641:10:56",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "13632:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13632:20:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13622:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13622:31:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13622:31:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13669:1:56",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13672:4:56",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13662:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13662:15:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13662:15:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13693:1:56",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13696:4:56",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "13686:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13686:15:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13686:15:56"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nodeType": "YulFunctionDefinition",
            "src": "13580:127:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13759:88:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13790:22:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "13792:16:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13792:18:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13792:18:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "13775:5:56"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13786:1:56",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "13782:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13782:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "13772:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13772:17:56"
                  },
                  "nodeType": "YulIf",
                  "src": "13769:43:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13821:20:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "13832:5:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13839:1:56",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "13828:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13828:13:56"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "13821:3:56"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "13741:5:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "13751:3:56",
                "type": ""
              }
            ],
            "src": "13712:135:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "14026:231:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14043:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14054:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14036:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14036:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14036:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14077:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14088:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14073:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14073:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14093:2:56",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14066:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14066:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14066:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14116:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14127:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14112:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14112:18:56"
                      },
                      {
                        "hexValue": "455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f72",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "14132:34:56",
                        "type": "",
                        "value": "ERC1155: caller is not owner nor"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14105:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14105:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14105:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14187:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14198:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14183:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14183:18:56"
                      },
                      {
                        "hexValue": "20617070726f766564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "14203:11:56",
                        "type": "",
                        "value": " approved"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14176:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14176:39:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14176:39:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14224:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14236:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14247:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14232:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14232:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "14224:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "14003:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "14017:4:56",
                "type": ""
              }
            ],
            "src": "13852:405:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "14436:228:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14453:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14464:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14446:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14446:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14446:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14487:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14498:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14483:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14483:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14503:2:56",
                        "type": "",
                        "value": "38"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14476:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14476:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14476:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14526:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14537:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14522:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14522:18:56"
                      },
                      {
                        "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "14542:34:56",
                        "type": "",
                        "value": "Ownable: new owner is the zero a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14515:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14515:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14515:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14597:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14608:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14593:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14593:18:56"
                      },
                      {
                        "hexValue": "646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "14613:8:56",
                        "type": "",
                        "value": "ddress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14586:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14586:36:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14586:36:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14631:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14643:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14654:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14639:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14639:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "14631:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "14413:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "14427:4:56",
                "type": ""
              }
            ],
            "src": "14262:402:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "14843:223:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14860:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14871:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14853:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14853:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14853:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14894:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14905:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14890:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14890:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14910:2:56",
                        "type": "",
                        "value": "33"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14883:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14883:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14883:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14933:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "14944:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14929:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14929:18:56"
                      },
                      {
                        "hexValue": "455243313135353a206d696e7420746f20746865207a65726f20616464726573",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "14949:34:56",
                        "type": "",
                        "value": "ERC1155: mint to the zero addres"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14922:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14922:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14922:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15004:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15015:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15000:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15000:18:56"
                      },
                      {
                        "hexValue": "73",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "15020:3:56",
                        "type": "",
                        "value": "s"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14993:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14993:31:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14993:31:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15033:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15045:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15056:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "15041:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15041:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "15033:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "14820:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "14834:4:56",
                "type": ""
              }
            ],
            "src": "14669:397:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15245:230:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15262:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15273:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15255:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15255:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15255:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15296:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15307:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15292:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15292:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15312:2:56",
                        "type": "",
                        "value": "40"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15285:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15285:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15285:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15335:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15346:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15331:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15331:18:56"
                      },
                      {
                        "hexValue": "455243313135353a2069647320616e6420616d6f756e7473206c656e67746820",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "15351:34:56",
                        "type": "",
                        "value": "ERC1155: ids and amounts length "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15324:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15324:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15324:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15406:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15417:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15402:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15402:18:56"
                      },
                      {
                        "hexValue": "6d69736d61746368",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "15422:10:56",
                        "type": "",
                        "value": "mismatch"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15395:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15395:38:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15395:38:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15442:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15454:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15465:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "15450:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15450:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "15442:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "15222:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "15236:4:56",
                "type": ""
              }
            ],
            "src": "15071:404:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15528:80:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15555:22:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "15557:16:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15557:18:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15557:18:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "15544:1:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "y",
                            "nodeType": "YulIdentifier",
                            "src": "15551:1:56"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "15547:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15547:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "15541:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15541:13:56"
                  },
                  "nodeType": "YulIf",
                  "src": "15538:39:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15586:16:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "15597:1:56"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "15600:1:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "15593:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15593:9:56"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nodeType": "YulIdentifier",
                      "src": "15586:3:56"
                    }
                  ]
                }
              ]
            },
            "name": "checked_add_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "15511:1:56",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "15514:1:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nodeType": "YulTypedName",
                "src": "15520:3:56",
                "type": ""
              }
            ],
            "src": "15480:128:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15842:236:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15859:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15870:2:56",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15852:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15852:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15852:21:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15882:70:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "15925:6:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15937:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15948:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15933:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15933:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "15896:28:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15896:56:56"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "15886:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15972:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15983:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15968:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15968:18:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "15992:6:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16000:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "15988:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15988:22:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15961:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15961:50:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15961:50:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16020:52:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "16057:6:56"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "16065:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "16028:28:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16028:44:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "16020:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "15803:9:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "15814:6:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "15822:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "15833:4:56",
                "type": ""
              }
            ],
            "src": "15613:465:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16257:227:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16274:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16285:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "16267:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16267:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16267:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16308:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16319:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16304:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16304:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16324:2:56",
                        "type": "",
                        "value": "37"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "16297:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16297:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16297:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16347:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16358:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16343:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16343:18:56"
                      },
                      {
                        "hexValue": "455243313135353a207472616e7366657220746f20746865207a65726f206164",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "16363:34:56",
                        "type": "",
                        "value": "ERC1155: transfer to the zero ad"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "16336:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16336:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16336:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16418:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16429:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16414:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16414:18:56"
                      },
                      {
                        "hexValue": "6472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "16434:7:56",
                        "type": "",
                        "value": "dress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "16407:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16407:35:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16407:35:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16451:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16463:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16474:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "16459:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16459:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "16451:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "16234:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "16248:4:56",
                "type": ""
              }
            ],
            "src": "16083:401:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16663:232:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16680:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16691:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "16673:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16673:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16673:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16714:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16725:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16710:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16710:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16730:2:56",
                        "type": "",
                        "value": "42"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "16703:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16703:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16703:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16753:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16764:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16749:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16749:18:56"
                      },
                      {
                        "hexValue": "455243313135353a20696e73756666696369656e742062616c616e636520666f",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "16769:34:56",
                        "type": "",
                        "value": "ERC1155: insufficient balance fo"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "16742:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16742:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16742:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16824:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16835:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16820:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16820:18:56"
                      },
                      {
                        "hexValue": "72207472616e73666572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "16840:12:56",
                        "type": "",
                        "value": "r transfer"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "16813:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16813:40:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16813:40:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16862:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16874:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16885:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "16870:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16870:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "16862:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "16640:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "16654:4:56",
                "type": ""
              }
            ],
            "src": "16489:406:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17074:225:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17091:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17102:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17084:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17084:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17084:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17125:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17136:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17121:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17121:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17141:2:56",
                        "type": "",
                        "value": "35"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17114:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17114:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17114:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17164:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17175:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17160:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17160:18:56"
                      },
                      {
                        "hexValue": "455243313135353a206275726e2066726f6d20746865207a65726f2061646472",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "17180:34:56",
                        "type": "",
                        "value": "ERC1155: burn from the zero addr"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17153:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17153:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17153:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17235:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17246:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17231:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17231:18:56"
                      },
                      {
                        "hexValue": "657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "17251:5:56",
                        "type": "",
                        "value": "ess"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17224:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17224:33:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17224:33:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17266:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17278:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17289:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "17274:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17274:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "17266:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "17051:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "17065:4:56",
                "type": ""
              }
            ],
            "src": "16900:399:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17478:226:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17495:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17506:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17488:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17488:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17488:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17529:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17540:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17525:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17525:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17545:2:56",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17518:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17518:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17518:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17568:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17579:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17564:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17564:18:56"
                      },
                      {
                        "hexValue": "455243313135353a206275726e20616d6f756e7420657863656564732062616c",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "17584:34:56",
                        "type": "",
                        "value": "ERC1155: burn amount exceeds bal"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17557:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17557:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17557:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17639:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17650:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17635:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17635:18:56"
                      },
                      {
                        "hexValue": "616e6365",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "17655:6:56",
                        "type": "",
                        "value": "ance"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17628:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17628:34:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17628:34:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17671:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17683:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17694:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "17679:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17679:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "17671:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "17455:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "17469:4:56",
                "type": ""
              }
            ],
            "src": "17304:400:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17838:119:56",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "17848:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17860:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17871:2:56",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "17856:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17856:18:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "17848:4:56"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17890:9:56"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "17901:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17883:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17883:25:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17883:25:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17928:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17939:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17924:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17924:18:56"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "17944:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "17917:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17917:34:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17917:34:56"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "17799:9:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "17810:6:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "17818:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "17829:4:56",
                "type": ""
              }
            ],
            "src": "17709:248:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18136:231:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18153:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18164:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18146:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18146:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18146:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18187:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18198:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18183:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18183:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18203:2:56",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18176:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18176:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18176:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18226:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18237:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18222:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18222:18:56"
                      },
                      {
                        "hexValue": "455243313135353a2073657474696e6720617070726f76616c20737461747573",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "18242:34:56",
                        "type": "",
                        "value": "ERC1155: setting approval status"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18215:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18215:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18215:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18297:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18308:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18293:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18293:18:56"
                      },
                      {
                        "hexValue": "20666f722073656c66",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "18313:11:56",
                        "type": "",
                        "value": " for self"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18286:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18286:39:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18286:39:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18334:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18346:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18357:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "18342:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18342:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "18334:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18113:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "18127:4:56",
                "type": ""
              }
            ],
            "src": "17962:405:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18703:496:56",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18713:29:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18731:3:56",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18736:1:56",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "18727:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18727:11:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18740:1:56",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "18723:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18723:19:56"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "18717:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18758:9:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "18773:6:56"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "18781:2:56"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "18769:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18769:15:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18751:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18751:34:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18751:34:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18805:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18816:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18801:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18801:18:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "18825:6:56"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "18833:2:56"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "18821:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18821:15:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18794:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18794:43:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18794:43:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18857:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18868:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18853:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18853:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18873:3:56",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18846:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18846:31:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18846:31:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18886:71:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "18929:6:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18941:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18952:3:56",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18937:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18937:19:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "18900:28:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18900:57:56"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "18890:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18977:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18988:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18973:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18973:18:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "18997:6:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19005:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18993:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18993:22:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "18966:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18966:50:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18966:50:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19025:58:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "19068:6:56"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "19076:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "19039:28:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19039:44:56"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nodeType": "YulTypedName",
                      "src": "19029:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19103:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19114:3:56",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19099:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19099:19:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_2",
                            "nodeType": "YulIdentifier",
                            "src": "19124:6:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19132:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "19120:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19120:22:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19092:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19092:51:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19092:51:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19152:41:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "19178:6:56"
                      },
                      {
                        "name": "tail_2",
                        "nodeType": "YulIdentifier",
                        "src": "19186:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "19160:17:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19160:33:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "19152:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18640:9:56",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "18651:6:56",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "18659:6:56",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "18667:6:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "18675:6:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "18683:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "18694:4:56",
                "type": ""
              }
            ],
            "src": "18372:827:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "19284:169:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19330:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19339:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19342:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "19332:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19332:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19332:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "19305:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19314:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "19301:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19301:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19326:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "19297:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19297:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "19294:52:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19355:29:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "19374:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "19368:5:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19368:16:56"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "19359:5:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "19417:5:56"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bytes4",
                      "nodeType": "YulIdentifier",
                      "src": "19393:23:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19393:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19393:30:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19432:15:56",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "19442:5:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "19432:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "19250:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "19261:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "19273:6:56",
                "type": ""
              }
            ],
            "src": "19204:249:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "19501:136:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19546:85:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19575:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19578:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19581:1:56",
                              "type": "",
                              "value": "4"
                            }
                          ],
                          "functionName": {
                            "name": "returndatacopy",
                            "nodeType": "YulIdentifier",
                            "src": "19560:14:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19560:23:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19560:23:56"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "19596:25:56",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19607:3:56",
                              "type": "",
                              "value": "224"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "19618:1:56",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "19612:5:56"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "19612:8:56"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "19603:3:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19603:18:56"
                        },
                        "variableNames": [
                          {
                            "name": "sig",
                            "nodeType": "YulIdentifier",
                            "src": "19596:3:56"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [],
                        "functionName": {
                          "name": "returndatasize",
                          "nodeType": "YulIdentifier",
                          "src": "19517:14:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19517:16:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19535:1:56",
                        "type": "",
                        "value": "3"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "19514:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19514:23:56"
                  },
                  "nodeType": "YulIf",
                  "src": "19511:120:56"
                }
              ]
            },
            "name": "return_data_selector",
            "nodeType": "YulFunctionDefinition",
            "returnVariables": [
              {
                "name": "sig",
                "nodeType": "YulTypedName",
                "src": "19493:3:56",
                "type": ""
              }
            ],
            "src": "19458:179:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "19689:624:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19729:9:56",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "19731:5:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [],
                        "functionName": {
                          "name": "returndatasize",
                          "nodeType": "YulIdentifier",
                          "src": "19705:14:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19705:16:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19723:4:56",
                        "type": "",
                        "value": "0x44"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "19702:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19702:26:56"
                  },
                  "nodeType": "YulIf",
                  "src": "19699:39:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19747:21:56",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19765:2:56",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "19759:5:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19759:9:56"
                  },
                  "variables": [
                    {
                      "name": "data",
                      "nodeType": "YulTypedName",
                      "src": "19751:4:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19777:16:56",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19791:1:56",
                        "type": "",
                        "value": "3"
                      }
                    ],
                    "functionName": {
                      "name": "not",
                      "nodeType": "YulIdentifier",
                      "src": "19787:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19787:6:56"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "19781:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "19817:4:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19823:1:56",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [],
                            "functionName": {
                              "name": "returndatasize",
                              "nodeType": "YulIdentifier",
                              "src": "19830:14:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "19830:16:56"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "19848:2:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19826:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19826:25:56"
                      }
                    ],
                    "functionName": {
                      "name": "returndatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "19802:14:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19802:50:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19802:50:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19861:25:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "19881:4:56"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "19875:5:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19875:11:56"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "19865:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19895:26:56",
                  "value": {
                    "arguments": [],
                    "functionName": {
                      "name": "returndatasize",
                      "nodeType": "YulIdentifier",
                      "src": "19905:14:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19905:16:56"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "19899:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19930:28:56",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "19940:18:56",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "19934:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "20016:9:56",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "20018:5:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "19976:6:56"
                          },
                          {
                            "name": "_3",
                            "nodeType": "YulIdentifier",
                            "src": "19984:2:56"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "19973:2:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19973:14:56"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "19996:6:56"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "20004:4:56",
                                "type": "",
                                "value": "0x24"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "19992:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "19992:17:56"
                          },
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "20011:2:56"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "19989:2:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19989:25:56"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "19970:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19970:45:56"
                  },
                  "nodeType": "YulIf",
                  "src": "19967:58:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "20034:28:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "20049:4:56"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "20055:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "20045:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20045:17:56"
                  },
                  "variables": [
                    {
                      "name": "msg",
                      "nodeType": "YulTypedName",
                      "src": "20038:3:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "20071:24:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "msg",
                        "nodeType": "YulIdentifier",
                        "src": "20091:3:56"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "20085:5:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20085:10:56"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "20075:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "20122:9:56",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "20124:5:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "20110:6:56"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "20118:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "20107:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20107:14:56"
                  },
                  "nodeType": "YulIf",
                  "src": "20104:27:56"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "20213:9:56",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "20215:5:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "msg",
                                "nodeType": "YulIdentifier",
                                "src": "20154:3:56"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "20159:6:56"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "20150:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "20150:16:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20168:4:56",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20146:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20146:27:56"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "nodeType": "YulIdentifier",
                                "src": "20183:4:56"
                              },
                              {
                                "arguments": [],
                                "functionName": {
                                  "name": "returndatasize",
                                  "nodeType": "YulIdentifier",
                                  "src": "20189:14:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "20189:16:56"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "20179:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "20179:27:56"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "20208:2:56"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20175:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20175:36:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "20143:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20143:69:56"
                  },
                  "nodeType": "YulIf",
                  "src": "20140:82:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "20251:4:56"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "20265:6:56"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "20273:6:56"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "20261:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "20261:19:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20282:4:56",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20257:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20257:30:56"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "20231:19:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20231:57:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20231:57:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20297:10:56",
                  "value": {
                    "name": "msg",
                    "nodeType": "YulIdentifier",
                    "src": "20304:3:56"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "20297:3:56"
                    }
                  ]
                }
              ]
            },
            "name": "try_decode_error_message",
            "nodeType": "YulFunctionDefinition",
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "19681:3:56",
                "type": ""
              }
            ],
            "src": "19642:671:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20492:242:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20509:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20520:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20502:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20502:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20502:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20543:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20554:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20539:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20539:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20559:2:56",
                        "type": "",
                        "value": "52"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20532:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20532:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20532:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20582:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20593:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20578:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20578:18:56"
                      },
                      {
                        "hexValue": "455243313135353a207472616e7366657220746f206e6f6e2045524331313535",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "20598:34:56",
                        "type": "",
                        "value": "ERC1155: transfer to non ERC1155"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20571:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20571:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20571:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20653:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20664:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20649:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20649:18:56"
                      },
                      {
                        "hexValue": "526563656976657220696d706c656d656e746572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "20669:22:56",
                        "type": "",
                        "value": "Receiver implementer"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20642:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20642:50:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20642:50:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20701:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20713:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20724:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "20709:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20709:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "20701:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "20469:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "20483:4:56",
                "type": ""
              }
            ],
            "src": "20318:416:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20913:230:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20930:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20941:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20923:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20923:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20923:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20964:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20975:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20960:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20960:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20980:2:56",
                        "type": "",
                        "value": "40"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20953:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20953:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20953:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21003:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21014:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20999:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20999:18:56"
                      },
                      {
                        "hexValue": "455243313135353a204552433131353552656365697665722072656a65637465",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "21019:34:56",
                        "type": "",
                        "value": "ERC1155: ERC1155Receiver rejecte"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20992:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20992:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20992:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21074:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21085:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21070:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21070:18:56"
                      },
                      {
                        "hexValue": "6420746f6b656e73",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "21090:10:56",
                        "type": "",
                        "value": "d tokens"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21063:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21063:38:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21063:38:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21110:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21122:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21133:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "21118:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21118:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "21110:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "20890:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "20904:4:56",
                "type": ""
              }
            ],
            "src": "20739:404:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21379:330:56",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "21389:29:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21407:3:56",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21412:1:56",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "21403:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21403:11:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21416:1:56",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "21399:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21399:19:56"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "21393:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21434:9:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "21449:6:56"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "21457:2:56"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "21445:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21445:15:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21427:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21427:34:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21427:34:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21481:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21492:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21477:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21477:18:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "21501:6:56"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "21509:2:56"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "21497:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21497:15:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21470:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21470:43:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21470:43:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21533:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21544:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21529:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21529:18:56"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "21549:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21522:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21522:34:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21522:34:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21576:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21587:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21572:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21572:18:56"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "21592:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21565:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21565:34:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21565:34:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21619:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21630:3:56",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21615:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21615:19:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21636:3:56",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21608:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21608:32:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21608:32:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21649:54:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "21675:6:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21687:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21698:3:56",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21683:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21683:19:56"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "21657:17:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21657:46:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "21649:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "21316:9:56",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "21327:6:56",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "21335:6:56",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "21343:6:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "21351:6:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "21359:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "21370:4:56",
                "type": ""
              }
            ],
            "src": "21148:561:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21763:76:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "21785:22:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "21787:16:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "21787:18:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "21787:18:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "21779:1:56"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "21782:1:56"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "21776:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21776:8:56"
                  },
                  "nodeType": "YulIf",
                  "src": "21773:34:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21816:17:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "21828:1:56"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "21831:1:56"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "21824:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21824:9:56"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nodeType": "YulIdentifier",
                      "src": "21816:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "checked_sub_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "21745:1:56",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "21748:1:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nodeType": "YulTypedName",
                "src": "21754:4:56",
                "type": ""
              }
            ],
            "src": "21714:125:56"
          }
        ]
      },
      "contents": "{\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_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\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 validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\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        validator_revert_bytes4(value)\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 panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function finalize_allocation(memPtr, size)\n    {\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_available_length_string(src, length, end) -> array\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, add(and(add(length, 31), not(31)), 0x20))\n        array := memPtr\n        mstore(memPtr, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), src, length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n    }\n    function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value0 := abi_decode_available_length_string(add(_1, 32), calldataload(_1), dataEnd)\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_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            let _1 := 0x20\n            mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n        }\n        if gt(i, length)\n        {\n            mstore(add(add(pos, length), 0x20), 0)\n        }\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function array_allocation_size_array_uint256_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function abi_decode_array_uint256_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let _3 := array_allocation_size_array_uint256_dyn(_1)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _3)\n        let dst := memPtr\n        mstore(memPtr, _1)\n        dst := add(memPtr, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n        }\n        array := memPtr\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        array := abi_decode_available_length_string(add(offset, 0x20), calldataload(offset), end)\n    }\n    function abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\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        value1 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 96))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value3 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value3 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 128))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := calldataload(_2)\n        let _4 := 0x20\n        let _5 := array_allocation_size_array_uint256_dyn(_3)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _5)\n        let dst := memPtr\n        mstore(memPtr, _3)\n        dst := add(memPtr, _4)\n        let srcEnd := add(add(_2, shl(5, _3)), _4)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _4)\n        for { } lt(src, srcEnd) { src := add(src, _4) }\n        {\n            mstore(dst, abi_decode_address(src))\n            dst := add(dst, _4)\n        }\n        value0 := memPtr\n        let offset_1 := calldataload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n    }\n    function abi_encode_array_uint256_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _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        end := pos\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        mstore(headStart, 32)\n        tail := abi_encode_array_uint256_dyn(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2\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        value1 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\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_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := calldataload(add(headStart, 32))\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value1 := value\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        let offset := calldataload(add(headStart, 128))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset), dataEnd)\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_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"ERC1155: balance query for the z\")\n        mstore(add(headStart, 96), \"ero address\")\n        tail := add(headStart, 128)\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 extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"ERC1155: transfer caller is not \")\n        mstore(add(headStart, 96), \"owner nor approved\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__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), \"ERC1155: accounts and ids length\")\n        mstore(add(headStart, 96), \" mismatch\")\n        tail := add(headStart, 128)\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_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a__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), \"ERC1155: caller is not owner nor\")\n        mstore(add(headStart, 96), \" approved\")\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_tuple_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"ERC1155: mint to the zero addres\")\n        mstore(add(headStart, 96), \"s\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 40)\n        mstore(add(headStart, 64), \"ERC1155: ids and amounts length \")\n        mstore(add(headStart, 96), \"mismatch\")\n        tail := add(headStart, 128)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        let tail_1 := abi_encode_array_uint256_dyn(value0, add(headStart, 64))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        tail := abi_encode_array_uint256_dyn(value1, tail_1)\n    }\n    function abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC1155: transfer to the zero ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf__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), \"ERC1155: insufficient balance fo\")\n        mstore(add(headStart, 96), \"r transfer\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a__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), \"ERC1155: burn from the zero addr\")\n        mstore(add(headStart, 96), \"ess\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685__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), \"ERC1155: burn amount exceeds bal\")\n        mstore(add(headStart, 96), \"ance\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__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), \"ERC1155: setting approval status\")\n        mstore(add(headStart, 96), \" for self\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_array_uint256_dyn(value2, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value3, tail_1)\n        mstore(add(headStart, 128), sub(tail_2, headStart))\n        tail := abi_encode_string(value4, tail_2)\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function return_data_selector() -> sig\n    {\n        if gt(returndatasize(), 3)\n        {\n            returndatacopy(0, 0, 4)\n            sig := shr(224, mload(0))\n        }\n    }\n    function try_decode_error_message() -> ret\n    {\n        if lt(returndatasize(), 0x44) { leave }\n        let data := mload(64)\n        let _1 := not(3)\n        returndatacopy(data, 4, add(returndatasize(), _1))\n        let offset := mload(data)\n        let _2 := returndatasize()\n        let _3 := 0xffffffffffffffff\n        if or(gt(offset, _3), gt(add(offset, 0x24), _2)) { leave }\n        let msg := add(data, offset)\n        let length := mload(msg)\n        if gt(length, _3) { leave }\n        if gt(add(add(msg, length), 0x20), add(add(data, returndatasize()), _1)) { leave }\n        finalize_allocation(data, add(add(offset, length), 0x20))\n        ret := msg\n    }\n    function abi_encode_tuple_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 52)\n        mstore(add(headStart, 64), \"ERC1155: transfer to non ERC1155\")\n        mstore(add(headStart, 96), \"Receiver implementer\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 40)\n        mstore(add(headStart, 64), \"ERC1155: ERC1155Receiver rejecte\")\n        mstore(add(headStart, 96), \"d tokens\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), 160)\n        tail := abi_encode_string(value4, add(headStart, 160))\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n}",
      "id": 56,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "376:1052:49:-:0;;;493:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;533:4;1134:13:7;533:4:49;1134:7:7;:13::i;:::-;-1:-1:-1;921:32:3;719:10:27;921:18:3;:32::i;:::-;493:48:49;376:1052;;7936:86:7;8002:13;;;;:4;;:13;;;;;:::i;:::-;;7936:86;:::o;2270:187:3:-;2362:6;;;-1:-1:-1;;;;;2378:17:3;;;-1:-1:-1;;;;;;2378:17:3;;;;;;;2410:40;;2362:6;;;2378:17;2362:6;;2410:40;;2343:16;;2410:40;2333:124;2270:187;:::o;376:1052:49:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;376:1052:49;;;-1:-1:-1;376:1052:49;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:56;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1087;226:6;257:2;300;288:9;279:7;275:23;271:32;268:52;;;316:1;313;306:12;268:52;343:16;;-1:-1:-1;;;;;408:14:56;;;405:34;;;435:1;432;425:12;405:34;473:6;462:9;458:22;448:32;;518:7;511:4;507:2;503:13;499:27;489:55;;540:1;537;530:12;489:55;569:2;563:9;591:2;587;584:10;581:36;;;597:18;;:::i;:::-;672:2;666:9;640:2;726:13;;-1:-1:-1;;722:22:56;;;746:2;718:31;714:40;702:53;;;770:18;;;790:22;;;767:46;764:72;;;816:18;;:::i;:::-;856:10;852:2;845:22;891:2;883:6;876:18;931:7;926:2;921;917;913:11;909:20;906:33;903:53;;;952:1;949;942:12;903:53;974:1;965:10;;984:129;998:2;995:1;992:9;984:129;;;1086:10;;;1082:19;;1076:26;1055:14;;;1051:23;;1044:59;1009:10;;;;984:129;;;1131:2;1128:1;1125:9;1122:80;;;1190:1;1185:2;1180;1172:6;1168:15;1164:24;1157:35;1122:80;1221:6;146:1087;-1:-1:-1;;;;;;;;146:1087:56:o;1238:380::-;1317:1;1313:12;;;;1360;;;1381:61;;1435:4;1427:6;1423:17;1413:27;;1381:61;1488:2;1480:6;1477:14;1457:18;1454:38;1451:161;;;1534:10;1529:3;1525:20;1522:1;1515:31;1569:4;1566:1;1559:15;1597:4;1594:1;1587:15;1451:161;;1238:380;;;:::o;:::-;376:1052:49;;;;;;",
  "deployedSourceMap": "376:1052:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2170:228:7;;;;;;:::i;:::-;;:::i;:::-;;;597:25:56;;;585:2;570:18;2170:228:7;;;;;;;;1221:305;;;;;;:::i;:::-;;:::i;:::-;;;1184:14:56;;1177:22;1159:41;;1147:2;1132:18;1221:305:7;1019:187:56;547:87:49;;;;;;:::i;:::-;;:::i;:::-;;1925:103:7;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;828:204:49:-;;;;;;:::i;:::-;;:::i;4045:430:7:-;;;;;;:::i;:::-;;:::i;2555:508::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;886:120:11:-;;;;;;:::i;:::-;943:4;770:16;;;:12;:16;;;;;;-1:-1:-1;;;886:120:11;709:342:10;;;;;;:::i;:::-;;:::i;1668:101:3:-;;;:::i;640:182:49:-;;;;;;:::i;:::-;;:::i;1036:85:3:-;1108:6;;1036:85;;-1:-1:-1;;;;;1108:6:3;;;9653:51:56;;9641:2;9626:18;1036:85:3;9507:203:56;3131:153:7;;;;;;:::i;:::-;;:::i;682:111:11:-;;;;;;:::i;:::-;744:7;770:16;;;:12;:16;;;;;;;682:111;3351:166:7;;;;;;:::i;:::-;-1:-1:-1;;;;;3473:27:7;;;3450:4;3473:27;;;:18;:27;;;;;;;;:37;;;;;;;;;;;;;;;3351:166;3584:389;;;;;;:::i;:::-;;:::i;1918:198:3:-;;;;;;:::i;:::-;;:::i;393:310:10:-;;;;;;:::i;:::-;;:::i;2170:228:7:-;2256:7;-1:-1:-1;;;;;2283:21:7;;2275:77;;;;-1:-1:-1;;;2275:77:7;;11663:2:56;2275:77:7;;;11645:21:56;11702:2;11682:18;;;11675:30;11741:34;11721:18;;;11714:62;-1:-1:-1;;;11792:18:56;;;11785:41;11843:19;;2275:77:7;;;;;;;;;-1:-1:-1;2369:9:7;:13;;;;;;;;;;;-1:-1:-1;;;;;2369:22:7;;;;;;;;;;;;2170:228::o;1221:305::-;1323:4;-1:-1:-1;;;;;;1358:41:7;;-1:-1:-1;;;1358:41:7;;:109;;-1:-1:-1;;;;;;;1415:52:7;;-1:-1:-1;;;1415:52:7;1358:109;:161;;;-1:-1:-1;;;;;;;;;;937:40:33;;;1483:36:7;1339:180;1221:305;-1:-1:-1;;1221:305:7:o;547:87:49:-;1108:6:3;;-1:-1:-1;;;;;1108:6:3;719:10:27;1248:23:3;1240:68;;;;-1:-1:-1;;;1240:68:3;;;;;;;:::i;:::-;612:15:49::1;620:6;612:7;:15::i;:::-;547:87:::0;:::o;1925:103:7:-;1985:13;2017:4;2010:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1925:103;;;:::o;828:204:49:-;1108:6:3;;-1:-1:-1;;;;;1108:6:3;719:10:27;1248:23:3;1240:68;;;;-1:-1:-1;;;1240:68:3;;;;;;;:::i;:::-;991:34:49::1;1002:2;1006:3;1011:7;1020:4;991:10;:34::i;:::-;828:204:::0;;;;:::o;4045:430:7:-;-1:-1:-1;;;;;4270:20:7;;719:10:27;4270:20:7;;:60;;-1:-1:-1;4294:36:7;4311:4;719:10:27;3351:166:7;:::i;4294:36::-;4249:157;;;;-1:-1:-1;;;4249:157:7;;12821:2:56;4249:157:7;;;12803:21:56;12860:2;12840:18;;;12833:30;12899:34;12879:18;;;12872:62;-1:-1:-1;;;12950:18:56;;;12943:48;13008:19;;4249:157:7;12619:414:56;4249:157:7;4416:52;4439:4;4445:2;4449:3;4454:7;4463:4;4416:22;:52::i;:::-;4045:430;;;;;:::o;2555:508::-;2706:16;2765:3;:10;2746:8;:15;:29;2738:83;;;;-1:-1:-1;;;2738:83:7;;13240:2:56;2738:83:7;;;13222:21:56;13279:2;13259:18;;;13252:30;13318:34;13298:18;;;13291:62;-1:-1:-1;;;13369:18:56;;;13362:39;13418:19;;2738:83:7;13038:405:56;2738:83:7;2832:30;2879:8;:15;2865:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2865:30:7;;2832:63;;2911:9;2906:120;2930:8;:15;2926:1;:19;2906:120;;;2985:30;2995:8;3004:1;2995:11;;;;;;;;:::i;:::-;;;;;;;3008:3;3012:1;3008:6;;;;;;;;:::i;:::-;;;;;;;2985:9;:30::i;:::-;2966:13;2980:1;2966:16;;;;;;;;:::i;:::-;;;;;;;;;;:49;2947:3;;;:::i;:::-;;;2906:120;;;-1:-1:-1;3043:13:7;2555:508;-1:-1:-1;;;2555:508:7:o;709:342:10:-;-1:-1:-1;;;;;868:23:10;;719:10:27;868:23:10;;:66;;-1:-1:-1;895:39:10;912:7;719:10:27;3351:166:7;:::i;895:39:10:-;847:154;;;;-1:-1:-1;;;847:154:10;;;;;;;:::i;:::-;1012:32;1023:7;1032:3;1037:6;1012:10;:32::i;:::-;709:342;;;:::o;1668:101:3:-;1108:6;;-1:-1:-1;;;;;1108:6:3;719:10:27;1248:23:3;1240:68;;;;-1:-1:-1;;;1240:68:3;;;;;;;:::i;:::-;1732:30:::1;1759:1;1732:18;:30::i;:::-;1668:101::o:0;640:182:49:-;1108:6:3;;-1:-1:-1;;;;;1108:6:3;719:10:27;1248:23:3;1240:68;;;;-1:-1:-1;;;1240:68:3;;;;;;;:::i;:::-;783:32:49::1;789:7;798:2;802:6;810:4;783:5;:32::i;3131:153:7:-:0;3225:52;719:10:27;3258:8:7;3268;3225:18;:52::i;:::-;3131:153;;:::o;3584:389::-;-1:-1:-1;;;;;3784:20:7;;719:10:27;3784:20:7;;:60;;-1:-1:-1;3808:36:7;3825:4;719:10:27;3351:166:7;:::i;3808:36::-;3763:148;;;;-1:-1:-1;;;3763:148:7;;;;;;;:::i;:::-;3921:45;3939:4;3945:2;3949;3953:6;3961:4;3921:17;:45::i;1918:198:3:-;1108:6;;-1:-1:-1;;;;;1108:6:3;719:10:27;1248:23:3;1240:68;;;;-1:-1:-1;;;1240:68:3;;;;;;;:::i;:::-;-1:-1:-1;;;;;2006:22:3;::::1;1998:73;;;::::0;-1:-1:-1;;;1998:73:3;;14464:2:56;1998:73:3::1;::::0;::::1;14446:21:56::0;14503:2;14483:18;;;14476:30;14542:34;14522:18;;;14515:62;-1:-1:-1;;;14593:18:56;;;14586:36;14639:19;;1998:73:3::1;14262:402:56::0;1998:73:3::1;2081:28;2100:8;2081:18;:28::i;393:310:10:-:0;-1:-1:-1;;;;;527:23:10;;719:10:27;527:23:10;;:66;;-1:-1:-1;554:39:10;571:7;719:10:27;3351:166:7;:::i;554:39:10:-;506:154;;;;-1:-1:-1;;;506:154:10;;;;;;;:::i;:::-;671:25;677:7;686:2;690:5;671;:25::i;7936:86:7:-;8002:13;;;;:4;;:13;;;;;:::i;9293:715::-;-1:-1:-1;;;;;9465:16:7;;9457:62;;;;-1:-1:-1;;;9457:62:7;;;;;;;:::i;:::-;9551:7;:14;9537:3;:10;:28;9529:81;;;;-1:-1:-1;;;9529:81:7;;;;;;;:::i;:::-;719:10:27;9663:66:7;719:10:27;9621:16:7;9706:2;9710:3;9715:7;9724:4;9663:20;:66::i;:::-;9745:9;9740:101;9764:3;:10;9760:1;:14;9740:101;;;9820:7;9828:1;9820:10;;;;;;;;:::i;:::-;;;;;;;9795:9;:17;9805:3;9809:1;9805:6;;;;;;;;:::i;:::-;;;;;;;9795:17;;;;;;;;;;;:21;9813:2;-1:-1:-1;;;;;9795:21:7;-1:-1:-1;;;;;9795:21:7;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;9776:3:7;;-1:-1:-1;9776:3:7;;;:::i;:::-;;;;9740:101;;;;9892:2;-1:-1:-1;;;;;9856:53:7;9888:1;-1:-1:-1;;;;;9856:53:7;9870:8;-1:-1:-1;;;;;9856:53:7;;9896:3;9901:7;9856:53;;;;;;;:::i;:::-;;;;;;;;9920:81;9956:8;9974:1;9978:2;9982:3;9987:7;9996:4;9920:35;:81::i;6068:1045::-;6288:7;:14;6274:3;:10;:28;6266:81;;;;-1:-1:-1;;;6266:81:7;;;;;;;:::i;:::-;-1:-1:-1;;;;;6365:16:7;;6357:66;;;;-1:-1:-1;;;6357:66:7;;;;;;;:::i;:::-;719:10:27;6476:60:7;719:10:27;6507:4:7;6513:2;6517:3;6522:7;6531:4;6476:20;:60::i;:::-;6552:9;6547:411;6571:3;:10;6567:1;:14;6547:411;;;6602:10;6615:3;6619:1;6615:6;;;;;;;;:::i;:::-;;;;;;;6602:19;;6635:14;6652:7;6660:1;6652:10;;;;;;;;:::i;:::-;;;;;;;;;;;;6677:19;6699:13;;;;;;;;;;-1:-1:-1;;;;;6699:19:7;;;;;;;;;;;;6652:10;;-1:-1:-1;6740:21:7;;;;6732:76;;;;-1:-1:-1;;;6732:76:7;;;;;;;:::i;:::-;6850:9;:13;;;;;;;;;;;-1:-1:-1;;;;;6850:19:7;;;;;;;;;;6872:20;;;6850:42;;6920:17;;;;;;;:27;;6872:20;;6850:9;6920:27;;6872:20;;6920:27;:::i;:::-;;;;;;;;6588:370;;;6583:3;;;;:::i;:::-;;;6547:411;;;;7003:2;-1:-1:-1;;;;;6973:47:7;6997:4;-1:-1:-1;;;;;6973:47:7;6987:8;-1:-1:-1;;;;;6973:47:7;;7007:3;7012:7;6973:47;;;;;;;:::i;:::-;;;;;;;;7031:75;7067:8;7077:4;7083:2;7087:3;7092:7;7101:4;7031:35;:75::i;:::-;6256:857;6068:1045;;;;;:::o;11072:867::-;-1:-1:-1;;;;;11219:18:7;;11211:66;;;;-1:-1:-1;;;11211:66:7;;;;;;;:::i;:::-;11309:7;:14;11295:3;:10;:28;11287:81;;;;-1:-1:-1;;;11287:81:7;;;;;;;:::i;:::-;11379:16;719:10:27;11379:31:7;;11421:66;11442:8;11452:4;11466:1;11470:3;11475:7;11421:66;;;;;;;;;;;;:20;:66::i;:::-;11503:9;11498:364;11522:3;:10;11518:1;:14;11498:364;;;11553:10;11566:3;11570:1;11566:6;;;;;;;;:::i;:::-;;;;;;;11553:19;;11586:14;11603:7;11611:1;11603:10;;;;;;;;:::i;:::-;;;;;;;;;;;;11628:19;11650:13;;;;;;;;;;-1:-1:-1;;;;;11650:19:7;;;;;;;;;;;;11603:10;;-1:-1:-1;11691:21:7;;;;11683:70;;;;-1:-1:-1;;;11683:70:7;;;;;;;:::i;:::-;11795:9;:13;;;;;;;;;;;-1:-1:-1;;;;;11795:19:7;;;;;;;;;;11817:20;;11795:42;;11534:3;;;;:::i;:::-;;;;11498:364;;;;11915:1;-1:-1:-1;;;;;11877:55:7;11901:4;-1:-1:-1;;;;;11877:55:7;11891:8;-1:-1:-1;;;;;11877:55:7;;11919:3;11924:7;11877:55;;;;;;;:::i;:::-;;;;;;;;11201:738;11072:867;;;:::o;2270:187:3:-;2362:6;;;-1:-1:-1;;;;;2378:17:3;;;-1:-1:-1;;;;;;2378:17:3;;;;;;;2410:40;;2362:6;;;2378:17;2362:6;;2410:40;;2343:16;;2410:40;2333:124;2270:187;:::o;8395:553:7:-;-1:-1:-1;;;;;8542:16:7;;8534:62;;;;-1:-1:-1;;;8534:62:7;;;;;;;:::i;:::-;719:10:27;8649:102:7;719:10:27;8607:16:7;8692:2;8696:21;8714:2;8696:17;:21::i;:::-;8719:25;8737:6;8719:17;:25::i;:::-;8746:4;8649:20;:102::i;:::-;8762:9;:13;;;;;;;;;;;-1:-1:-1;;;;;8762:17:7;;;;;;;;;:27;;8783:6;;8762:9;:27;;8783:6;;8762:27;:::i;:::-;;;;-1:-1:-1;;8804:52:7;;;17883:25:56;;;17939:2;17924:18;;17917:34;;;-1:-1:-1;;;;;8804:52:7;;;;8837:1;;8804:52;;;;;;17856:18:56;8804:52:7;;;;;;;8867:74;8898:8;8916:1;8920:2;8924;8928:6;8936:4;8867:30;:74::i;12074:323::-;12224:8;-1:-1:-1;;;;;12215:17:7;:5;-1:-1:-1;;;;;12215:17:7;;;12207:71;;;;-1:-1:-1;;;12207:71:7;;18164:2:56;12207:71:7;;;18146:21:56;18203:2;18183:18;;;18176:30;18242:34;18222:18;;;18215:62;-1:-1:-1;;;18293:18:56;;;18286:39;18342:19;;12207:71:7;17962:405:56;12207:71:7;-1:-1:-1;;;;;12288:25:7;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;12288:46:7;;;;;;;;;;12349:41;;1159::56;;;12349::7;;1132:18:56;12349:41:7;;;;;;;12074:323;;;:::o;4925:797::-;-1:-1:-1;;;;;5106:16:7;;5098:66;;;;-1:-1:-1;;;5098:66:7;;;;;;;:::i;:::-;719:10:27;5217:96:7;719:10:27;5248:4:7;5254:2;5258:21;5276:2;5258:17;:21::i;5217:96::-;5324:19;5346:13;;;;;;;;;;;-1:-1:-1;;;;;5346:19:7;;;;;;;;;;5383:21;;;;5375:76;;;;-1:-1:-1;;;5375:76:7;;;;;;;:::i;:::-;5485:9;:13;;;;;;;;;;;-1:-1:-1;;;;;5485:19:7;;;;;;;;;;5507:20;;;5485:42;;5547:17;;;;;;;:27;;5507:20;;5485:9;5547:27;;5507:20;;5547:27;:::i;:::-;;;;-1:-1:-1;;5590:46:7;;;17883:25:56;;;17939:2;17924:18;;17917:34;;;-1:-1:-1;;;;;5590:46:7;;;;;;;;;;;;;;17856:18:56;5590:46:7;;;;;;;5647:68;5678:8;5688:4;5694:2;5698;5702:6;5710:4;5647:30;:68::i;:::-;5088:634;;4925:797;;;;;:::o;10248:630::-;-1:-1:-1;;;;;10370:18:7;;10362:66;;;;-1:-1:-1;;;10362:66:7;;;;;;;:::i;:::-;719:10:27;10481:102:7;719:10:27;10512:4:7;10439:16;10530:21;10548:2;10530:17;:21::i;:::-;10553:25;10571:6;10553:17;:25::i;:::-;10481:102;;;;;;;;;;;;:20;:102::i;:::-;10594:19;10616:13;;;;;;;;;;;-1:-1:-1;;;;;10616:19:7;;;;;;;;;;10653:21;;;;10645:70;;;;-1:-1:-1;;;10645:70:7;;;;;;;:::i;:::-;10749:9;:13;;;;;;;;;;;-1:-1:-1;;;;;10749:19:7;;;;;;;;;;;;10771:20;;;10749:42;;10817:54;;17883:25:56;;;17924:18;;;17917:34;;;10749:19:7;;10817:54;;;;;;17856:18:56;10817:54:7;;;;;;;10352:526;;10248:630;;;:::o;1106:320:49:-;1353:66;1380:8;1390:4;1396:2;1400:3;1405:7;1414:4;1353:26;:66::i;14282:792:7:-;-1:-1:-1;;;;;14514:13:7;;1465:19:26;:23;14510:558:7;;14549:79;;-1:-1:-1;;;14549:79:7;;-1:-1:-1;;;;;14549:43:7;;;;;:79;;14593:8;;14603:4;;14609:3;;14614:7;;14623:4;;14549:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14549:79:7;;;;;;;;-1:-1:-1;;14549:79:7;;;;;;;;;;;;:::i;:::-;;;14545:513;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;14934:6;14927:14;;-1:-1:-1;;;14927:14:7;;;;;;;;:::i;14545:513::-;;;14981:62;;-1:-1:-1;;;14981:62:7;;20520:2:56;14981:62:7;;;20502:21:56;20559:2;20539:18;;;20532:30;20598:34;20578:18;;;20571:62;-1:-1:-1;;;20649:18:56;;;20642:50;20709:19;;14981:62:7;20318:416:56;14545:513:7;-1:-1:-1;;;;;;14707:60:7;;-1:-1:-1;;;14707:60:7;14703:157;;14791:50;;-1:-1:-1;;;14791:50:7;;;;;;;:::i;15080:193::-;15199:16;;;15213:1;15199:16;;;;;;;;;15146;;15174:22;;15199:16;;;;;;;;;;;;-1:-1:-1;15199:16:7;15174:41;;15236:7;15225:5;15231:1;15225:8;;;;;;;;:::i;:::-;;;;;;;;;;:18;15261:5;15080:193;-1:-1:-1;;15080:193:7:o;13551:725::-;-1:-1:-1;;;;;13758:13:7;;1465:19:26;:23;13754:516:7;;13793:72;;-1:-1:-1;;;13793:72:7;;-1:-1:-1;;;;;13793:38:7;;;;;:72;;13832:8;;13842:4;;13848:2;;13852:6;;13860:4;;13793:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13793:72:7;;;;;;;;-1:-1:-1;;13793:72:7;;;;;;;;;;;;:::i;:::-;;;13789:471;;;;:::i;:::-;-1:-1:-1;;;;;;13914:55:7;;-1:-1:-1;;;13914:55:7;13910:152;;13993:50;;-1:-1:-1;;;13993:50:7;;;;;;;:::i;1076:634:11:-;-1:-1:-1;;;;;1388:18:11;;1384:156;;1427:9;1422:108;1446:3;:10;1442:1;:14;1422:108;;;1505:7;1513:1;1505:10;;;;;;;;:::i;:::-;;;;;;;1481:12;:20;1494:3;1498:1;1494:6;;;;;;;;:::i;:::-;;;;;;;1481:20;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;1458:3:11;;-1:-1:-1;1458:3:11;;:::i;:::-;;;1422:108;;;;1384:156;-1:-1:-1;;;;;1554:16:11;;1550:154;;1591:9;1586:108;1610:3;:10;1606:1;:14;1586:108;;;1669:7;1677:1;1669:10;;;;;;;;:::i;:::-;;;;;;;1645:12;:20;1658:3;1662:1;1658:6;;;;;;;;:::i;:::-;;;;;;;1645:20;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;1622:3:11;;-1:-1:-1;1622:3:11;;:::i;:::-;;;1586:108;;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:173:56;82:20;;-1:-1:-1;;;;;131:31:56;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:254::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;436:2;421:18;;;;408:32;;-1:-1:-1;;;192:254:56:o;633:131::-;-1:-1:-1;;;;;;707:32:56;;697:43;;687:71;;754:1;751;744:12;769:245;827:6;880:2;868:9;859:7;855:23;851:32;848:52;;;896:1;893;886:12;848:52;935:9;922:23;954:30;978:5;954:30;:::i;:::-;1003:5;769:245;-1:-1:-1;;;769:245:56:o;1211:127::-;1272:10;1267:3;1263:20;1260:1;1253:31;1303:4;1300:1;1293:15;1327:4;1324:1;1317:15;1343:249;1453:2;1434:13;;-1:-1:-1;;1430:27:56;1418:40;;1488:18;1473:34;;1509:22;;;1470:62;1467:88;;;1535:18;;:::i;:::-;1571:2;1564:22;-1:-1:-1;;1343:249:56:o;1597:469::-;1662:5;1696:18;1688:6;1685:30;1682:56;;;1718:18;;:::i;:::-;1767:2;1761:9;1779:69;1836:2;1815:15;;-1:-1:-1;;1811:29:56;1842:4;1807:40;1761:9;1779:69;:::i;:::-;1866:6;1857:15;;1896:6;1888;1881:22;1936:3;1927:6;1922:3;1918:16;1915:25;1912:45;;;1953:1;1950;1943:12;1912:45;2003:6;1998:3;1991:4;1983:6;1979:17;1966:44;2058:1;2051:4;2042:6;2034;2030:19;2026:30;2019:41;;1597:469;;;;;:::o;2071:451::-;2140:6;2193:2;2181:9;2172:7;2168:23;2164:32;2161:52;;;2209:1;2206;2199:12;2161:52;2249:9;2236:23;2282:18;2274:6;2271:30;2268:50;;;2314:1;2311;2304:12;2268:50;2337:22;;2390:4;2382:13;;2378:27;-1:-1:-1;2368:55:56;;2419:1;2416;2409:12;2368:55;2442:74;2508:7;2503:2;2490:16;2485:2;2481;2477:11;2442:74;:::i;:::-;2432:84;2071:451;-1:-1:-1;;;;2071:451:56:o;2527:180::-;2586:6;2639:2;2627:9;2618:7;2614:23;2610:32;2607:52;;;2655:1;2652;2645:12;2607:52;-1:-1:-1;2678:23:56;;2527:180;-1:-1:-1;2527:180:56:o;2712:472::-;2754:3;2792:5;2786:12;2819:6;2814:3;2807:19;2844:1;2854:162;2868:6;2865:1;2862:13;2854:162;;;2930:4;2986:13;;;2982:22;;2976:29;2958:11;;;2954:20;;2947:59;2883:12;2854:162;;;3034:6;3031:1;3028:13;3025:87;;;3100:1;3093:4;3084:6;3079:3;3075:16;3071:27;3064:38;3025:87;-1:-1:-1;3166:2:56;3145:15;-1:-1:-1;;3141:29:56;3132:39;;;;3173:4;3128:50;;2712:472;-1:-1:-1;;2712:472:56:o;3189:220::-;3338:2;3327:9;3320:21;3301:4;3358:45;3399:2;3388:9;3384:18;3376:6;3358:45;:::i;3414:183::-;3474:4;3507:18;3499:6;3496:30;3493:56;;;3529:18;;:::i;:::-;-1:-1:-1;3574:1:56;3570:14;3586:4;3566:25;;3414:183::o;3602:724::-;3656:5;3709:3;3702:4;3694:6;3690:17;3686:27;3676:55;;3727:1;3724;3717:12;3676:55;3763:6;3750:20;3789:4;3812:43;3852:2;3812:43;:::i;:::-;3884:2;3878:9;3896:31;3924:2;3916:6;3896:31;:::i;:::-;3962:18;;;4054:1;4050:10;;;;4038:23;;4034:32;;;3996:15;;;;-1:-1:-1;4078:15:56;;;4075:35;;;4106:1;4103;4096:12;4075:35;4142:2;4134:6;4130:15;4154:142;4170:6;4165:3;4162:15;4154:142;;;4236:17;;4224:30;;4274:12;;;;4187;;4154:142;;;-1:-1:-1;4314:6:56;3602:724;-1:-1:-1;;;;;;3602:724:56:o;4331:221::-;4373:5;4426:3;4419:4;4411:6;4407:17;4403:27;4393:55;;4444:1;4441;4434:12;4393:55;4466:80;4542:3;4533:6;4520:20;4513:4;4505:6;4501:17;4466:80;:::i;4557:868::-;4702:6;4710;4718;4726;4779:3;4767:9;4758:7;4754:23;4750:33;4747:53;;;4796:1;4793;4786:12;4747:53;4819:29;4838:9;4819:29;:::i;:::-;4809:39;;4899:2;4888:9;4884:18;4871:32;4922:18;4963:2;4955:6;4952:14;4949:34;;;4979:1;4976;4969:12;4949:34;5002:61;5055:7;5046:6;5035:9;5031:22;5002:61;:::i;:::-;4992:71;;5116:2;5105:9;5101:18;5088:32;5072:48;;5145:2;5135:8;5132:16;5129:36;;;5161:1;5158;5151:12;5129:36;5184:63;5239:7;5228:8;5217:9;5213:24;5184:63;:::i;:::-;5174:73;;5300:2;5289:9;5285:18;5272:32;5256:48;;5329:2;5319:8;5316:16;5313:36;;;5345:1;5342;5335:12;5313:36;;5368:51;5411:7;5400:8;5389:9;5385:24;5368:51;:::i;:::-;5358:61;;;4557:868;;;;;;;:::o;5430:943::-;5584:6;5592;5600;5608;5616;5669:3;5657:9;5648:7;5644:23;5640:33;5637:53;;;5686:1;5683;5676:12;5637:53;5709:29;5728:9;5709:29;:::i;:::-;5699:39;;5757:38;5791:2;5780:9;5776:18;5757:38;:::i;:::-;5747:48;;5846:2;5835:9;5831:18;5818:32;5869:18;5910:2;5902:6;5899:14;5896:34;;;5926:1;5923;5916:12;5896:34;5949:61;6002:7;5993:6;5982:9;5978:22;5949:61;:::i;:::-;5939:71;;6063:2;6052:9;6048:18;6035:32;6019:48;;6092:2;6082:8;6079:16;6076:36;;;6108:1;6105;6098:12;6076:36;6131:63;6186:7;6175:8;6164:9;6160:24;6131:63;:::i;:::-;6121:73;;6247:3;6236:9;6232:19;6219:33;6203:49;;6277:2;6267:8;6264:16;6261:36;;;6293:1;6290;6283:12;6261:36;;6316:51;6359:7;6348:8;6337:9;6333:24;6316:51;:::i;:::-;6306:61;;;5430:943;;;;;;;;:::o;6378:1208::-;6496:6;6504;6557:2;6545:9;6536:7;6532:23;6528:32;6525:52;;;6573:1;6570;6563:12;6525:52;6613:9;6600:23;6642:18;6683:2;6675:6;6672:14;6669:34;;;6699:1;6696;6689:12;6669:34;6737:6;6726:9;6722:22;6712:32;;6782:7;6775:4;6771:2;6767:13;6763:27;6753:55;;6804:1;6801;6794:12;6753:55;6840:2;6827:16;6862:4;6885:43;6925:2;6885:43;:::i;:::-;6957:2;6951:9;6969:31;6997:2;6989:6;6969:31;:::i;:::-;7035:18;;;7123:1;7119:10;;;;7111:19;;7107:28;;;7069:15;;;;-1:-1:-1;7147:19:56;;;7144:39;;;7179:1;7176;7169:12;7144:39;7203:11;;;;7223:148;7239:6;7234:3;7231:15;7223:148;;;7305:23;7324:3;7305:23;:::i;:::-;7293:36;;7256:12;;;;7349;;;;7223:148;;;7390:6;-1:-1:-1;;7434:18:56;;7421:32;;-1:-1:-1;;7465:16:56;;;7462:36;;;7494:1;7491;7484:12;7462:36;;7517:63;7572:7;7561:8;7550:9;7546:24;7517:63;:::i;:::-;7507:73;;;6378:1208;;;;;:::o;7591:435::-;7644:3;7682:5;7676:12;7709:6;7704:3;7697:19;7735:4;7764:2;7759:3;7755:12;7748:19;;7801:2;7794:5;7790:14;7822:1;7832:169;7846:6;7843:1;7840:13;7832:169;;;7907:13;;7895:26;;7941:12;;;;7976:15;;;;7868:1;7861:9;7832:169;;;-1:-1:-1;8017:3:56;;7591:435;-1:-1:-1;;;;;7591:435:56:o;8031:261::-;8210:2;8199:9;8192:21;8173:4;8230:56;8282:2;8271:9;8267:18;8259:6;8230:56;:::i;8297:669::-;8424:6;8432;8440;8493:2;8481:9;8472:7;8468:23;8464:32;8461:52;;;8509:1;8506;8499:12;8461:52;8532:29;8551:9;8532:29;:::i;:::-;8522:39;;8612:2;8601:9;8597:18;8584:32;8635:18;8676:2;8668:6;8665:14;8662:34;;;8692:1;8689;8682:12;8662:34;8715:61;8768:7;8759:6;8748:9;8744:22;8715:61;:::i;:::-;8705:71;;8829:2;8818:9;8814:18;8801:32;8785:48;;8858:2;8848:8;8845:16;8842:36;;;8874:1;8871;8864:12;8842:36;;8897:63;8952:7;8941:8;8930:9;8926:24;8897:63;:::i;:::-;8887:73;;;8297:669;;;;;:::o;8971:531::-;9066:6;9074;9082;9090;9143:3;9131:9;9122:7;9118:23;9114:33;9111:53;;;9160:1;9157;9150:12;9111:53;9183:29;9202:9;9183:29;:::i;:::-;9173:39;;9259:2;9248:9;9244:18;9231:32;9221:42;;9310:2;9299:9;9295:18;9282:32;9272:42;;9365:2;9354:9;9350:18;9337:32;9392:18;9384:6;9381:30;9378:50;;;9424:1;9421;9414:12;9378:50;9447:49;9488:7;9479:6;9468:9;9464:22;9447:49;:::i;9715:347::-;9780:6;9788;9841:2;9829:9;9820:7;9816:23;9812:32;9809:52;;;9857:1;9854;9847:12;9809:52;9880:29;9899:9;9880:29;:::i;:::-;9870:39;;9959:2;9948:9;9944:18;9931:32;10006:5;9999:13;9992:21;9985:5;9982:32;9972:60;;10028:1;10025;10018:12;9972:60;10051:5;10041:15;;;9715:347;;;;;:::o;10067:260::-;10135:6;10143;10196:2;10184:9;10175:7;10171:23;10167:32;10164:52;;;10212:1;10209;10202:12;10164:52;10235:29;10254:9;10235:29;:::i;:::-;10225:39;;10283:38;10317:2;10306:9;10302:18;10283:38;:::i;:::-;10273:48;;10067:260;;;;;:::o;10332:606::-;10436:6;10444;10452;10460;10468;10521:3;10509:9;10500:7;10496:23;10492:33;10489:53;;;10538:1;10535;10528:12;10489:53;10561:29;10580:9;10561:29;:::i;:::-;10551:39;;10609:38;10643:2;10632:9;10628:18;10609:38;:::i;:::-;10599:48;;10694:2;10683:9;10679:18;10666:32;10656:42;;10745:2;10734:9;10730:18;10717:32;10707:42;;10800:3;10789:9;10785:19;10772:33;10828:18;10820:6;10817:30;10814:50;;;10860:1;10857;10850:12;10814:50;10883:49;10924:7;10915:6;10904:9;10900:22;10883:49;:::i;10943:186::-;11002:6;11055:2;11043:9;11034:7;11030:23;11026:32;11023:52;;;11071:1;11068;11061:12;11023:52;11094:29;11113:9;11094:29;:::i;11134:322::-;11211:6;11219;11227;11280:2;11268:9;11259:7;11255:23;11251:32;11248:52;;;11296:1;11293;11286:12;11248:52;11319:29;11338:9;11319:29;:::i;:::-;11309:39;11395:2;11380:18;;11367:32;;-1:-1:-1;11446:2:56;11431:18;;;11418:32;;11134:322;-1:-1:-1;;;11134:322:56:o;11873:356::-;12075:2;12057:21;;;12094:18;;;12087:30;12153:34;12148:2;12133:18;;12126:62;12220:2;12205:18;;11873:356::o;12234:380::-;12313:1;12309:12;;;;12356;;;12377:61;;12431:4;12423:6;12419:17;12409:27;;12377:61;12484:2;12476:6;12473:14;12453:18;12450:38;12447:161;;;12530:10;12525:3;12521:20;12518:1;12511:31;12565:4;12562:1;12555:15;12593:4;12590:1;12583:15;12447:161;;12234:380;;;:::o;13448:127::-;13509:10;13504:3;13500:20;13497:1;13490:31;13540:4;13537:1;13530:15;13564:4;13561:1;13554:15;13580:127;13641:10;13636:3;13632:20;13629:1;13622:31;13672:4;13669:1;13662:15;13696:4;13693:1;13686:15;13712:135;13751:3;-1:-1:-1;;13772:17:56;;13769:43;;;13792:18;;:::i;:::-;-1:-1:-1;13839:1:56;13828:13;;13712:135::o;13852:405::-;14054:2;14036:21;;;14093:2;14073:18;;;14066:30;14132:34;14127:2;14112:18;;14105:62;-1:-1:-1;;;14198:2:56;14183:18;;14176:39;14247:3;14232:19;;13852:405::o;14669:397::-;14871:2;14853:21;;;14910:2;14890:18;;;14883:30;14949:34;14944:2;14929:18;;14922:62;-1:-1:-1;;;15015:2:56;15000:18;;14993:31;15056:3;15041:19;;14669:397::o;15071:404::-;15273:2;15255:21;;;15312:2;15292:18;;;15285:30;15351:34;15346:2;15331:18;;15324:62;-1:-1:-1;;;15417:2:56;15402:18;;15395:38;15465:3;15450:19;;15071:404::o;15480:128::-;15520:3;15551:1;15547:6;15544:1;15541:13;15538:39;;;15557:18;;:::i;:::-;-1:-1:-1;15593:9:56;;15480:128::o;15613:465::-;15870:2;15859:9;15852:21;15833:4;15896:56;15948:2;15937:9;15933:18;15925:6;15896:56;:::i;:::-;16000:9;15992:6;15988:22;15983:2;15972:9;15968:18;15961:50;16028:44;16065:6;16057;16028:44;:::i;:::-;16020:52;15613:465;-1:-1:-1;;;;;15613:465:56:o;16083:401::-;16285:2;16267:21;;;16324:2;16304:18;;;16297:30;16363:34;16358:2;16343:18;;16336:62;-1:-1:-1;;;16429:2:56;16414:18;;16407:35;16474:3;16459:19;;16083:401::o;16489:406::-;16691:2;16673:21;;;16730:2;16710:18;;;16703:30;16769:34;16764:2;16749:18;;16742:62;-1:-1:-1;;;16835:2:56;16820:18;;16813:40;16885:3;16870:19;;16489:406::o;16900:399::-;17102:2;17084:21;;;17141:2;17121:18;;;17114:30;17180:34;17175:2;17160:18;;17153:62;-1:-1:-1;;;17246:2:56;17231:18;;17224:33;17289:3;17274:19;;16900:399::o;17304:400::-;17506:2;17488:21;;;17545:2;17525:18;;;17518:30;17584:34;17579:2;17564:18;;17557:62;-1:-1:-1;;;17650:2:56;17635:18;;17628:34;17694:3;17679:19;;17304:400::o;18372:827::-;-1:-1:-1;;;;;18769:15:56;;;18751:34;;18821:15;;18816:2;18801:18;;18794:43;18731:3;18868:2;18853:18;;18846:31;;;18694:4;;18900:57;;18937:19;;18929:6;18900:57;:::i;:::-;19005:9;18997:6;18993:22;18988:2;18977:9;18973:18;18966:50;19039:44;19076:6;19068;19039:44;:::i;:::-;19025:58;;19132:9;19124:6;19120:22;19114:3;19103:9;19099:19;19092:51;19160:33;19186:6;19178;19160:33;:::i;:::-;19152:41;18372:827;-1:-1:-1;;;;;;;;18372:827:56:o;19204:249::-;19273:6;19326:2;19314:9;19305:7;19301:23;19297:32;19294:52;;;19342:1;19339;19332:12;19294:52;19374:9;19368:16;19393:30;19417:5;19393:30;:::i;19458:179::-;19493:3;19535:1;19517:16;19514:23;19511:120;;;19581:1;19578;19575;19560:23;-1:-1:-1;19618:1:56;19612:8;19607:3;19603:18;19511:120;19458:179;:::o;19642:671::-;19681:3;19723:4;19705:16;19702:26;19699:39;;;19642:671;:::o;19699:39::-;19765:2;19759:9;-1:-1:-1;;19830:16:56;19826:25;;19823:1;19759:9;19802:50;19881:4;19875:11;19905:16;19940:18;20011:2;20004:4;19996:6;19992:17;19989:25;19984:2;19976:6;19973:14;19970:45;19967:58;;;20018:5;;;;;19642:671;:::o;19967:58::-;20055:6;20049:4;20045:17;20034:28;;20091:3;20085:10;20118:2;20110:6;20107:14;20104:27;;;20124:5;;;;;;19642:671;:::o;20104:27::-;20208:2;20189:16;20183:4;20179:27;20175:36;20168:4;20159:6;20154:3;20150:16;20146:27;20143:69;20140:82;;;20215:5;;;;;;19642:671;:::o;20140:82::-;20231:57;20282:4;20273:6;20265;20261:19;20257:30;20251:4;20231:57;:::i;:::-;-1:-1:-1;20304:3:56;;19642:671;-1:-1:-1;;;;;19642:671:56:o;20739:404::-;20941:2;20923:21;;;20980:2;20960:18;;;20953:30;21019:34;21014:2;20999:18;;20992:62;-1:-1:-1;;;21085:2:56;21070:18;;21063:38;21133:3;21118:19;;20739:404::o;21148:561::-;-1:-1:-1;;;;;21445:15:56;;;21427:34;;21497:15;;21492:2;21477:18;;21470:43;21544:2;21529:18;;21522:34;;;21587:2;21572:18;;21565:34;;;21407:3;21630;21615:19;;21608:32;;;21370:4;;21657:46;;21683:19;;21675:6;21657:46;:::i;:::-;21649:54;21148:561;-1:-1:-1;;;;;;;21148:561:56:o;21714:125::-;21754:4;21782:1;21779;21776:8;21773:34;;;21787:18;;:::i;:::-;-1:-1:-1;21824:9:56;;21714:125::o",
  "source": "// SPDX-License-Identifier: AGPL-3.0\n\npragma solidity ^0.8.11;\n\nimport \"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol\";\nimport \"@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol\";\nimport \"./interfaces/IERC1155Custom.sol\";\n\ncontract ERC1155Custom is\n    ERC1155,\n    Ownable,\n    ERC1155Burnable,\n    ERC1155Supply,\n    IERC1155Custom\n{\n    constructor(string memory _uri) ERC1155(_uri) {}\n\n    function setURI(string memory newuri) public onlyOwner {\n        _setURI(newuri);\n    }\n\n    function mint(\n        address account,\n        uint256 id,\n        uint256 amount,\n        bytes memory data\n    ) public onlyOwner {\n        _mint(account, id, amount, data);\n    }\n\n    function mintBatch(\n        address to,\n        uint256[] memory ids,\n        uint256[] memory amounts,\n        bytes memory data\n    ) public onlyOwner {\n        _mintBatch(to, ids, amounts, data);\n    }\n\n    // The following functions are overrides required by Solidity.\n\n    function _beforeTokenTransfer(\n        address operator,\n        address from,\n        address to,\n        uint256[] memory ids,\n        uint256[] memory amounts,\n        bytes memory data\n    ) internal override(ERC1155, ERC1155Supply) {\n        super._beforeTokenTransfer(operator, from, to, ids, amounts, data);\n    }\n}\n",
  "sourcePath": "/Users/yosephks/Documents/GitHub/alpsfinance-smart-contracts/contracts/token/ERC1155Custom.sol",
  "ast": {
    "absolutePath": "project:/contracts/token/ERC1155Custom.sol",
    "exportedSymbols": {
      "Address": [
        5275
      ],
      "Context": [
        5297
      ],
      "ERC1155": [
        1838
      ],
      "ERC1155Burnable": [
        2070
      ],
      "ERC1155Custom": [
        9193
      ],
      "ERC1155Supply": [
        2203
      ],
      "ERC165": [
        6252
      ],
      "IERC1155": [
        1960
      ],
      "IERC1155Custom": [
        9586
      ],
      "IERC1155MetadataURI": [
        2218
      ],
      "IERC1155Receiver": [
        2001
      ],
      "IERC165": [
        6264
      ],
      "Ownable": [
        532
      ]
    },
    "id": 9194,
    "license": "AGPL-3.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 9080,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".11"
        ],
        "nodeType": "PragmaDirective",
        "src": "38:24:49"
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol",
        "file": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol",
        "id": 9081,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9194,
        "sourceUnit": 1839,
        "src": "64:59:49",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
        "file": "@openzeppelin/contracts/access/Ownable.sol",
        "id": 9082,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9194,
        "sourceUnit": 533,
        "src": "124:52:49",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol",
        "file": "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol",
        "id": 9083,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9194,
        "sourceUnit": 2071,
        "src": "177:78:49",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol",
        "file": "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol",
        "id": 9084,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9194,
        "sourceUnit": 2204,
        "src": "256:76:49",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/token/interfaces/IERC1155Custom.sol",
        "file": "./interfaces/IERC1155Custom.sol",
        "id": 9085,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9194,
        "sourceUnit": 9587,
        "src": "333:41:49",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 9086,
              "name": "ERC1155",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 1838,
              "src": "406:7:49"
            },
            "id": 9087,
            "nodeType": "InheritanceSpecifier",
            "src": "406:7:49"
          },
          {
            "baseName": {
              "id": 9088,
              "name": "Ownable",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 532,
              "src": "419:7:49"
            },
            "id": 9089,
            "nodeType": "InheritanceSpecifier",
            "src": "419:7:49"
          },
          {
            "baseName": {
              "id": 9090,
              "name": "ERC1155Burnable",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 2070,
              "src": "432:15:49"
            },
            "id": 9091,
            "nodeType": "InheritanceSpecifier",
            "src": "432:15:49"
          },
          {
            "baseName": {
              "id": 9092,
              "name": "ERC1155Supply",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 2203,
              "src": "453:13:49"
            },
            "id": 9093,
            "nodeType": "InheritanceSpecifier",
            "src": "453:13:49"
          },
          {
            "baseName": {
              "id": 9094,
              "name": "IERC1155Custom",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 9586,
              "src": "472:14:49"
            },
            "id": 9095,
            "nodeType": "InheritanceSpecifier",
            "src": "472:14:49"
          }
        ],
        "canonicalName": "ERC1155Custom",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 9193,
        "linearizedBaseContracts": [
          9193,
          9586,
          2203,
          2070,
          532,
          1838,
          2218,
          1960,
          6252,
          6264,
          5297
        ],
        "name": "ERC1155Custom",
        "nameLocation": "385:13:49",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 9103,
              "nodeType": "Block",
              "src": "539:2:49",
              "statements": []
            },
            "id": 9104,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 9100,
                    "name": "_uri",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9097,
                    "src": "533:4:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 9101,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 9099,
                  "name": "ERC1155",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1838,
                  "src": "525:7:49"
                },
                "nodeType": "ModifierInvocation",
                "src": "525:13:49"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9098,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9097,
                  "mutability": "mutable",
                  "name": "_uri",
                  "nameLocation": "519:4:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9104,
                  "src": "505:18:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 9096,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "505:6:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "504:20:49"
            },
            "returnParameters": {
              "id": 9102,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "539:0:49"
            },
            "scope": 9193,
            "src": "493:48:49",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 9115,
              "nodeType": "Block",
              "src": "602:32:49",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9112,
                        "name": "newuri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9106,
                        "src": "620:6:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 9111,
                      "name": "_setURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1266,
                      "src": "612:7:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory)"
                      }
                    },
                    "id": 9113,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "612:15:49",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9114,
                  "nodeType": "ExpressionStatement",
                  "src": "612:15:49"
                }
              ]
            },
            "functionSelector": "02fe5305",
            "id": 9116,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 9109,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 9108,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 474,
                  "src": "592:9:49"
                },
                "nodeType": "ModifierInvocation",
                "src": "592:9:49"
              }
            ],
            "name": "setURI",
            "nameLocation": "556:6:49",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9107,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9106,
                  "mutability": "mutable",
                  "name": "newuri",
                  "nameLocation": "577:6:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9116,
                  "src": "563:20:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 9105,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "563:6:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "562:22:49"
            },
            "returnParameters": {
              "id": 9110,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "602:0:49"
            },
            "scope": 9193,
            "src": "547:87:49",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 9136,
              "nodeType": "Block",
              "src": "773:49:49",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9130,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9118,
                        "src": "789:7:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9131,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9120,
                        "src": "798:2:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 9132,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9122,
                        "src": "802:6:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 9133,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9124,
                        "src": "810:4:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 9129,
                      "name": "_mint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1341,
                      "src": "783:5:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256,uint256,bytes memory)"
                      }
                    },
                    "id": 9134,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "783:32:49",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9135,
                  "nodeType": "ExpressionStatement",
                  "src": "783:32:49"
                }
              ]
            },
            "functionSelector": "731133e9",
            "id": 9137,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 9127,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 9126,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 474,
                  "src": "763:9:49"
                },
                "nodeType": "ModifierInvocation",
                "src": "763:9:49"
              }
            ],
            "name": "mint",
            "nameLocation": "649:4:49",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9125,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9118,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "671:7:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9137,
                  "src": "663:15:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9117,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "663:7:49",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9120,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "696:2:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9137,
                  "src": "688:10:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9119,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "688:7:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9122,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "716:6:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9137,
                  "src": "708:14:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9121,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "708:7:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9124,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "745:4:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9137,
                  "src": "732:17:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9123,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "732:5:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "653:102:49"
            },
            "returnParameters": {
              "id": 9128,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "773:0:49"
            },
            "scope": 9193,
            "src": "640:182:49",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 9159,
              "nodeType": "Block",
              "src": "981:51:49",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9153,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9139,
                        "src": "1002:2:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9154,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9142,
                        "src": "1006:3:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 9155,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9145,
                        "src": "1011:7:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 9156,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9147,
                        "src": "1020:4:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 9152,
                      "name": "_mintBatch",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1440,
                      "src": "991:10:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256[] memory,uint256[] memory,bytes memory)"
                      }
                    },
                    "id": 9157,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "991:34:49",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9158,
                  "nodeType": "ExpressionStatement",
                  "src": "991:34:49"
                }
              ]
            },
            "functionSelector": "1f7fdffa",
            "id": 9160,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 9150,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 9149,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 474,
                  "src": "971:9:49"
                },
                "nodeType": "ModifierInvocation",
                "src": "971:9:49"
              }
            ],
            "name": "mintBatch",
            "nameLocation": "837:9:49",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9148,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9139,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "864:2:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9160,
                  "src": "856:10:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9138,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "856:7:49",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9142,
                  "mutability": "mutable",
                  "name": "ids",
                  "nameLocation": "893:3:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9160,
                  "src": "876:20:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 9140,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "876:7:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9141,
                    "nodeType": "ArrayTypeName",
                    "src": "876:9:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9145,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "923:7:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9160,
                  "src": "906:24:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 9143,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "906:7:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9144,
                    "nodeType": "ArrayTypeName",
                    "src": "906:9:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9147,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "953:4:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9160,
                  "src": "940:17:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9146,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "940:5:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "846:117:49"
            },
            "returnParameters": {
              "id": 9151,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "981:0:49"
            },
            "scope": 9193,
            "src": "828:204:49",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1681,
              2202
            ],
            "body": {
              "id": 9191,
              "nodeType": "Block",
              "src": "1343:83:49",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9183,
                        "name": "operator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9162,
                        "src": "1380:8:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9184,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9164,
                        "src": "1390:4:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9185,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9166,
                        "src": "1396:2:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9186,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9169,
                        "src": "1400:3:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 9187,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9172,
                        "src": "1405:7:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 9188,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9174,
                        "src": "1414:4:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 9180,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "1353:5:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_ERC1155Custom_$9193_$",
                          "typeString": "type(contract super ERC1155Custom)"
                        }
                      },
                      "id": 9182,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_beforeTokenTransfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2202,
                      "src": "1353:26:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)"
                      }
                    },
                    "id": 9189,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1353:66:49",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9190,
                  "nodeType": "ExpressionStatement",
                  "src": "1353:66:49"
                }
              ]
            },
            "id": 9192,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_beforeTokenTransfer",
            "nameLocation": "1115:20:49",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9178,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 9176,
                  "name": "ERC1155",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1838,
                  "src": "1319:7:49"
                },
                {
                  "id": 9177,
                  "name": "ERC1155Supply",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 2203,
                  "src": "1328:13:49"
                }
              ],
              "src": "1310:32:49"
            },
            "parameters": {
              "id": 9175,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9162,
                  "mutability": "mutable",
                  "name": "operator",
                  "nameLocation": "1153:8:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9192,
                  "src": "1145:16:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9161,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1145:7:49",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9164,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "1179:4:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9192,
                  "src": "1171:12:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9163,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1171:7:49",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9166,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1201:2:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9192,
                  "src": "1193:10:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9165,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1193:7:49",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9169,
                  "mutability": "mutable",
                  "name": "ids",
                  "nameLocation": "1230:3:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9192,
                  "src": "1213:20:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 9167,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1213:7:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9168,
                    "nodeType": "ArrayTypeName",
                    "src": "1213:9:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9172,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "1260:7:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9192,
                  "src": "1243:24:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 9170,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1243:7:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9171,
                    "nodeType": "ArrayTypeName",
                    "src": "1243:9:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9174,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "1290:4:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9192,
                  "src": "1277:17:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9173,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1277:5:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1135:165:49"
            },
            "returnParameters": {
              "id": 9179,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1343:0:49"
            },
            "scope": 9193,
            "src": "1106:320:49",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 9194,
        "src": "376:1052:49",
        "usedErrors": []
      }
    ],
    "src": "38:1391:49"
  },
  "legacyAST": {
    "absolutePath": "project:/contracts/token/ERC1155Custom.sol",
    "exportedSymbols": {
      "Address": [
        5275
      ],
      "Context": [
        5297
      ],
      "ERC1155": [
        1838
      ],
      "ERC1155Burnable": [
        2070
      ],
      "ERC1155Custom": [
        9193
      ],
      "ERC1155Supply": [
        2203
      ],
      "ERC165": [
        6252
      ],
      "IERC1155": [
        1960
      ],
      "IERC1155Custom": [
        9586
      ],
      "IERC1155MetadataURI": [
        2218
      ],
      "IERC1155Receiver": [
        2001
      ],
      "IERC165": [
        6264
      ],
      "Ownable": [
        532
      ]
    },
    "id": 9194,
    "license": "AGPL-3.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 9080,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".11"
        ],
        "nodeType": "PragmaDirective",
        "src": "38:24:49"
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol",
        "file": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol",
        "id": 9081,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9194,
        "sourceUnit": 1839,
        "src": "64:59:49",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
        "file": "@openzeppelin/contracts/access/Ownable.sol",
        "id": 9082,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9194,
        "sourceUnit": 533,
        "src": "124:52:49",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol",
        "file": "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol",
        "id": 9083,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9194,
        "sourceUnit": 2071,
        "src": "177:78:49",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol",
        "file": "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol",
        "id": 9084,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9194,
        "sourceUnit": 2204,
        "src": "256:76:49",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/token/interfaces/IERC1155Custom.sol",
        "file": "./interfaces/IERC1155Custom.sol",
        "id": 9085,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9194,
        "sourceUnit": 9587,
        "src": "333:41:49",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 9086,
              "name": "ERC1155",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 1838,
              "src": "406:7:49"
            },
            "id": 9087,
            "nodeType": "InheritanceSpecifier",
            "src": "406:7:49"
          },
          {
            "baseName": {
              "id": 9088,
              "name": "Ownable",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 532,
              "src": "419:7:49"
            },
            "id": 9089,
            "nodeType": "InheritanceSpecifier",
            "src": "419:7:49"
          },
          {
            "baseName": {
              "id": 9090,
              "name": "ERC1155Burnable",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 2070,
              "src": "432:15:49"
            },
            "id": 9091,
            "nodeType": "InheritanceSpecifier",
            "src": "432:15:49"
          },
          {
            "baseName": {
              "id": 9092,
              "name": "ERC1155Supply",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 2203,
              "src": "453:13:49"
            },
            "id": 9093,
            "nodeType": "InheritanceSpecifier",
            "src": "453:13:49"
          },
          {
            "baseName": {
              "id": 9094,
              "name": "IERC1155Custom",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 9586,
              "src": "472:14:49"
            },
            "id": 9095,
            "nodeType": "InheritanceSpecifier",
            "src": "472:14:49"
          }
        ],
        "canonicalName": "ERC1155Custom",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 9193,
        "linearizedBaseContracts": [
          9193,
          9586,
          2203,
          2070,
          532,
          1838,
          2218,
          1960,
          6252,
          6264,
          5297
        ],
        "name": "ERC1155Custom",
        "nameLocation": "385:13:49",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 9103,
              "nodeType": "Block",
              "src": "539:2:49",
              "statements": []
            },
            "id": 9104,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 9100,
                    "name": "_uri",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9097,
                    "src": "533:4:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 9101,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 9099,
                  "name": "ERC1155",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1838,
                  "src": "525:7:49"
                },
                "nodeType": "ModifierInvocation",
                "src": "525:13:49"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9098,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9097,
                  "mutability": "mutable",
                  "name": "_uri",
                  "nameLocation": "519:4:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9104,
                  "src": "505:18:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 9096,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "505:6:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "504:20:49"
            },
            "returnParameters": {
              "id": 9102,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "539:0:49"
            },
            "scope": 9193,
            "src": "493:48:49",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 9115,
              "nodeType": "Block",
              "src": "602:32:49",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9112,
                        "name": "newuri",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9106,
                        "src": "620:6:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 9111,
                      "name": "_setURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1266,
                      "src": "612:7:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory)"
                      }
                    },
                    "id": 9113,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "612:15:49",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9114,
                  "nodeType": "ExpressionStatement",
                  "src": "612:15:49"
                }
              ]
            },
            "functionSelector": "02fe5305",
            "id": 9116,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 9109,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 9108,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 474,
                  "src": "592:9:49"
                },
                "nodeType": "ModifierInvocation",
                "src": "592:9:49"
              }
            ],
            "name": "setURI",
            "nameLocation": "556:6:49",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9107,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9106,
                  "mutability": "mutable",
                  "name": "newuri",
                  "nameLocation": "577:6:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9116,
                  "src": "563:20:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 9105,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "563:6:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "562:22:49"
            },
            "returnParameters": {
              "id": 9110,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "602:0:49"
            },
            "scope": 9193,
            "src": "547:87:49",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 9136,
              "nodeType": "Block",
              "src": "773:49:49",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9130,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9118,
                        "src": "789:7:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9131,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9120,
                        "src": "798:2:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 9132,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9122,
                        "src": "802:6:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 9133,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9124,
                        "src": "810:4:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 9129,
                      "name": "_mint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1341,
                      "src": "783:5:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256,uint256,bytes memory)"
                      }
                    },
                    "id": 9134,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "783:32:49",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9135,
                  "nodeType": "ExpressionStatement",
                  "src": "783:32:49"
                }
              ]
            },
            "functionSelector": "731133e9",
            "id": 9137,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 9127,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 9126,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 474,
                  "src": "763:9:49"
                },
                "nodeType": "ModifierInvocation",
                "src": "763:9:49"
              }
            ],
            "name": "mint",
            "nameLocation": "649:4:49",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9125,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9118,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "671:7:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9137,
                  "src": "663:15:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9117,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "663:7:49",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9120,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "696:2:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9137,
                  "src": "688:10:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9119,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "688:7:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9122,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "716:6:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9137,
                  "src": "708:14:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9121,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "708:7:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9124,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "745:4:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9137,
                  "src": "732:17:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9123,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "732:5:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "653:102:49"
            },
            "returnParameters": {
              "id": 9128,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "773:0:49"
            },
            "scope": 9193,
            "src": "640:182:49",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 9159,
              "nodeType": "Block",
              "src": "981:51:49",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9153,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9139,
                        "src": "1002:2:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9154,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9142,
                        "src": "1006:3:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 9155,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9145,
                        "src": "1011:7:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 9156,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9147,
                        "src": "1020:4:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 9152,
                      "name": "_mintBatch",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1440,
                      "src": "991:10:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256[] memory,uint256[] memory,bytes memory)"
                      }
                    },
                    "id": 9157,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "991:34:49",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9158,
                  "nodeType": "ExpressionStatement",
                  "src": "991:34:49"
                }
              ]
            },
            "functionSelector": "1f7fdffa",
            "id": 9160,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 9150,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 9149,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 474,
                  "src": "971:9:49"
                },
                "nodeType": "ModifierInvocation",
                "src": "971:9:49"
              }
            ],
            "name": "mintBatch",
            "nameLocation": "837:9:49",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9148,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9139,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "864:2:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9160,
                  "src": "856:10:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9138,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "856:7:49",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9142,
                  "mutability": "mutable",
                  "name": "ids",
                  "nameLocation": "893:3:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9160,
                  "src": "876:20:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 9140,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "876:7:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9141,
                    "nodeType": "ArrayTypeName",
                    "src": "876:9:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9145,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "923:7:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9160,
                  "src": "906:24:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 9143,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "906:7:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9144,
                    "nodeType": "ArrayTypeName",
                    "src": "906:9:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9147,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "953:4:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9160,
                  "src": "940:17:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9146,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "940:5:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "846:117:49"
            },
            "returnParameters": {
              "id": 9151,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "981:0:49"
            },
            "scope": 9193,
            "src": "828:204:49",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1681,
              2202
            ],
            "body": {
              "id": 9191,
              "nodeType": "Block",
              "src": "1343:83:49",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9183,
                        "name": "operator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9162,
                        "src": "1380:8:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9184,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9164,
                        "src": "1390:4:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9185,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9166,
                        "src": "1396:2:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9186,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9169,
                        "src": "1400:3:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 9187,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9172,
                        "src": "1405:7:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 9188,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9174,
                        "src": "1414:4:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 9180,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "1353:5:49",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_ERC1155Custom_$9193_$",
                          "typeString": "type(contract super ERC1155Custom)"
                        }
                      },
                      "id": 9182,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_beforeTokenTransfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2202,
                      "src": "1353:26:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)"
                      }
                    },
                    "id": 9189,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1353:66:49",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9190,
                  "nodeType": "ExpressionStatement",
                  "src": "1353:66:49"
                }
              ]
            },
            "id": 9192,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_beforeTokenTransfer",
            "nameLocation": "1115:20:49",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9178,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 9176,
                  "name": "ERC1155",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1838,
                  "src": "1319:7:49"
                },
                {
                  "id": 9177,
                  "name": "ERC1155Supply",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 2203,
                  "src": "1328:13:49"
                }
              ],
              "src": "1310:32:49"
            },
            "parameters": {
              "id": 9175,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9162,
                  "mutability": "mutable",
                  "name": "operator",
                  "nameLocation": "1153:8:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9192,
                  "src": "1145:16:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9161,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1145:7:49",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9164,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "1179:4:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9192,
                  "src": "1171:12:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9163,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1171:7:49",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9166,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1201:2:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9192,
                  "src": "1193:10:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9165,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1193:7:49",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9169,
                  "mutability": "mutable",
                  "name": "ids",
                  "nameLocation": "1230:3:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9192,
                  "src": "1213:20:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 9167,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1213:7:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9168,
                    "nodeType": "ArrayTypeName",
                    "src": "1213:9:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9172,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "1260:7:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9192,
                  "src": "1243:24:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 9170,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1243:7:49",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9171,
                    "nodeType": "ArrayTypeName",
                    "src": "1243:9:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9174,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "1290:4:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 9192,
                  "src": "1277:17:49",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9173,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1277:5:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1135:165:49"
            },
            "returnParameters": {
              "id": 9179,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1343:0:49"
            },
            "scope": 9193,
            "src": "1106:320:49",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 9194,
        "src": "376:1052:49",
        "usedErrors": []
      }
    ],
    "src": "38:1391:49"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.11+commit.d7f03943.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.4",
  "updatedAt": "2022-03-06T23:47:11.116Z",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "balanceOf(address,uint256)": {
        "details": "See {IERC1155-balanceOf}. Requirements: - `account` cannot be the zero address."
      },
      "balanceOfBatch(address[],uint256[])": {
        "details": "See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length."
      },
      "exists(uint256)": {
        "details": "Indicates whether any token exist with a given id, or not."
      },
      "isApprovedForAll(address,address)": {
        "details": "See {IERC1155-isApprovedForAll}."
      },
      "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."
      },
      "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": {
        "details": "See {IERC1155-safeBatchTransferFrom}."
      },
      "safeTransferFrom(address,address,uint256,uint256,bytes)": {
        "details": "See {IERC1155-safeTransferFrom}."
      },
      "setApprovalForAll(address,bool)": {
        "details": "See {IERC1155-setApprovalForAll}."
      },
      "supportsInterface(bytes4)": {
        "details": "See {IERC165-supportsInterface}."
      },
      "totalSupply(uint256)": {
        "details": "Total amount of tokens in with a given id."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      },
      "uri(uint256)": {
        "details": "See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\{id\\}` substring with the actual token type ID."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}