diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 502e0cf..c24e71f 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -26,6 +26,7 @@ jobs: run: | touch env echo WALLET_CONNECT_PROJECT_ID=${{secrets.WALLET_CONNECT_PROJECT_ID}} >> env + echo PRIVATE_KEY=${{secrets.PRIVATE_KEY}} >> env - name: Show version working-directory: flutter_bird_app diff --git a/README.md b/README.md index 4b5470b..a81b392 100644 --- a/README.md +++ b/README.md @@ -197,6 +197,71 @@ Summary > Final cost: 0.118115450004724618 ETH ``` +### Generate and Mint full onchain bird +- You can generate random bird images using a script. +- Using the deployed contract, you can base64 encode the generated bird image and set it as the tokenURI to mint it as a full onchain NFT. + +- Create bird + - You can start the server to get or generate images. + - If the target tokenId exists, it will be retrieved; if not, it will be generated. +``` +% cd flutter_bird_image_server +% npm run start +% curl -o image.png http://localhost:3000/image/:tokenId +``` + +- Mint full onchain bird + - We recommend minting from Flutter Birds, but you can also mint it manually. + - The generated image is used to mint NFTs. + - Please run it in the environment where you deployed the contract. + - Please change the filePath of toenInfo in `mint_random_skin.js` as appropriate. + - Please execute the following in your docker environment. + +``` +# node scripts/mint_full_onchain_bird/mint_random_skin.js +Minting a random Flutter Bird Skin on contract: 0xBa29cfe58943Ee7830663C31029ef73f65B1D470 +data:application/json,{"name":"Flutter Bird - 358","description":"NFT Flutter Bird","attributes":[{"trait_type":"File size","value":"17,510 bytes"}],"image":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAu4AAALuCAYAAADxHZPKAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3dW4xsWXkf8G/VnDMzppuLLWMD4WI5sjkTkBwFCytyZJLYGWGEIkRAAhmJEGEpD4mSOHFirOAHiPEFIhNFQnF4QLIQ..."} +chunk count: 1 +appendUri tx: [object Object] +Minting successful +Token ID of new Skin: 358 +0xbfd1a547a6dc6d332e5dc23530992c550719c8db3e39ef3454d8cb24c05617be +``` + +- Transfer nft + - transfer_nft.js `recipientAddress` `tokenId` + +``` +# node scripts/transfer_nft.js 0xde7c30d8548b1b38856aa3ae2bf02c536ab60f1e 66 +Sender address: 0x492ca3c9594B17b65494F910A9a33Fa66f3141ed +Recipient address: 0xde7c30d8548b1b38856aa3ae2bf02c536ab60f1e +Token ID: 66 +NFT (Token ID: 66) successfully transferred +Transaction Hash: 0x5a2c95a0a19e7621f21f058fcc712d92a0850ea5cc0983444d3904c1d72b5025 +``` + +- Check the minted NFT using truffle. + - Please execute the following in your docker environment. + - You can open the NFT image by pasting `data:image/png;base64, xxxxxxx` from the image field of the uri into the search box of your browser. +``` +// If you are deploying to the testnet, set the network to baobab. +# truffle console --network baobab +truffle(baobab)> let instance = await FlutterBirdSkins.deployed() +undefined +truffle(baobab)> ownerAddress="0x244d85991c825ad2672111ed73e089fbd39e357d" +'0x244d85991c825ad2672111ed73e089fbd39e357d' +truffle(baobab)> let tokens = await instance.getTokensForOwner(ownerAddress) +undefined +truffle(baobab)> console.log(tokens.map(token => token.toString())) +[ '358' ] +truffle(baobab)> let uri = await instance.tokenURI(358) +undefined +truffle(baobab)> console.log(uri) +data:application/json,{"name":"Flutter Bird - 358","description":"NFT Flutter Bird","attributes":[{"trait_type":"File size","value":"10,029 bytes"}],"image":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAu4AAALuCAYAAADxHZPKAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3dW4xsWXkf8G/VnDMzppuLLWMD4WI5sjkTkBwFCytyZJLYGWGEIkRAAhmJEGEpD4mSOHFirOAHiPEFIhNFQnF4QLIQ..."} +``` + + + ## Access via LINE The LINE Messenger API allows us to receive URLs via LINE. diff --git a/flutter_bird_app/assets/FlutterBirdSkins.json b/flutter_bird_app/assets/FlutterBirdSkins.json new file mode 100644 index 0000000..021f855 --- /dev/null +++ b/flutter_bird_app/assets/FlutterBirdSkins.json @@ -0,0 +1,24963 @@ +{ + "contractName": "FlutterBirdSkins", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_size", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_end", + "type": "uint256" + } + ], + "name": "InvalidCodeAtRange", + "type": "error" + }, + { + "inputs": [], + "name": "TokenDoesNotExist", + "type": "error" + }, + { + "inputs": [], + "name": "WriteError", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "SkinMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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", + "constant": true + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newTokenId", + "type": "uint256" + } + ], + "name": "mintSkin", + "outputs": [], + "stateMutability": "payable", + "type": "function", + "payable": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "getTokensForOwner", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "getMintedTokenList", + "outputs": [ + { + "internalType": "bool[]", + "name": "", + "type": "bool[]" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes[]", + "name": "values", + "type": "bytes[]" + } + ], + "name": "appendUri", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_end\",\"type\":\"uint256\"}],\"name\":\"InvalidCodeAtRange\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WriteError\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"SkinMinted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"appendUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMintedTokenList\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"getTokensForOwner\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newTokenId\",\"type\":\"uint256\"}],\"name\":\"mintSkin\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"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\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getMintedTokenList()\":{\"notice\":\"returns a list of boolean values indicating whether the skin with that index has been minted already.\"},\"getTokensForOwner(address)\":{\"notice\":\"returns a list of tokenIds that are owned by the given address\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/FlutterBirdSkins.sol\":\"FlutterBirdSkins\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x2c309e7df9e05e6ce15bedfe74f3c61b467fc37e0fae9eab496acf5ea0bbd7ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7063b5c98711a98018ba4635ac74cee1c1cfa2ea01099498e062699ed9530005\",\"dweb:/ipfs/QmeJ8rGXkcv7RrqLdAW8PCXPAykxVsddfYY6g5NaTwmRFE\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":{\"keccak256\":\"0xa8796bd16014cefb8c26449413981a49c510f92a98d6828494f5fd046223ced3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63a5e0bb5a7d182e0d0eef87033f78115eab791de3626a929bc98c157087880a\",\"dweb:/ipfs/QmetkXAu2CJKS4qrZtEQPU8okAPwUwa6HL4XYwk8vrYMk8\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@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\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"project:/contracts/FlutterBirdSkins.sol\":{\"keccak256\":\"0xec6cd844584bcbe9779792ee789ecc42745d68e928b29ef04f1e0ce26cde3950\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea7859c522bb485aea5adc21a3cbac3dfe445c1da718d706732bb12f8258702e\",\"dweb:/ipfs/QmQ36H429SaDrp76XhAL8MftKtw1kb6N5xeUUPw7VxiwKV\"]},\"project:/contracts/lib/Memory.sol\":{\"keccak256\":\"0x4c9ded40bbf5cc7a88488c4c9461a6a2d13f44f4f3d38334bd4cebae6a2e726f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04ba66006e9537a0b3fc527a98548e2fbfff4a29bead99eed1982464776d7b23\",\"dweb:/ipfs/QmR2UxiBUfYxWyNvHJKJaxobf6KqP617kUdabA1BLudV53\"]},\"project:/contracts/lib/sstore2/Bytecode.sol\":{\"keccak256\":\"0x40ef4ee5697507566574eda36358a76b523b3dfe7cb65da1630004fe6c5a7a45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95059c34a2fe249bede85fb523ff53eddf61e45fe76436201237f2eae73bc14c\",\"dweb:/ipfs/QmT6qbZsBzUS6Mpc9yAmhourUFC8TNpaF6vzxysyAKEcpN\"]},\"project:/contracts/lib/sstore2/SSTORE2.sol\":{\"keccak256\":\"0xabeae21f0f8191e870627c924a52a3c94134ee22b8aff8119dd5f70aab8f8f12\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a24d92742de39230b72ebec2d548fdb46027d40dea0cf63c4c38aceb0c9b424\",\"dweb:/ipfs/QmVSKjFmHhbah4tX29PWhZUKwmgU5vzdvD23b5KvgxPKEk\"]}},\"version\":1}", + "bytecode": "0x60806040526103e8600b55662386f26fc10000600c553480156200002257600080fd5b506040518060400160405280601081526020017f466c757474657242697264536b696e73000000000000000000000000000000008152506040518060400160405280600381526020017f46425300000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000a7929190620001b7565b508060019080519060200190620000c0929190620001b7565b505050620000e3620000d7620000e960201b60201c565b620000f160201b60201c565b620002cb565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001c59062000296565b90600052602060002090601f016020900481019282620001e9576000855562000235565b82601f106200020457805160ff191683800117855562000235565b8280016001018555821562000235579182015b828111156200023457825182559160200191906001019062000217565b5b50905062000244919062000248565b5090565b5b808211156200026357600081600090555060010162000249565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002af57607f821691505b602082108103620002c557620002c462000267565b5b50919050565b613f2580620002db6000396000f3fe6080604052600436106101405760003560e01c80634f6ccce7116100b6578063a22cb4651161006f578063a22cb46514610482578063b88d4fde146104ab578063c87b56dd146104d4578063e985e9c514610511578063f03526511461054e578063f2fde38b1461056a57610140565b80634f6ccce71461035e5780636352211e1461039b57806370a08231146103d8578063715018a6146104155780638da5cb5b1461042c57806395d89b411461045757610140565b806318160ddd1161010857806318160ddd1461025057806319a0b41b1461027b57806323b872dd146102a65780632f0fe447146102cf5780632f745c59146102f857806342842e0e1461033557610140565b806301ffc9a71461014557806306fdde03146101825780630725e898146101ad578063081812fc146101ea578063095ea7b314610227575b600080fd5b34801561015157600080fd5b5061016c60048036038101906101679190612764565b610593565b60405161017991906127ac565b60405180910390f35b34801561018e57600080fd5b5061019761060d565b6040516101a49190612860565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906128e0565b61069f565b6040516101e191906129d5565b60405180910390f35b3480156101f657600080fd5b50610211600480360381019061020c9190612a23565b61074f565b60405161021e9190612a5f565b60405180910390f35b34801561023357600080fd5b5061024e60048036038101906102499190612a7a565b610795565b005b34801561025c57600080fd5b506102656108ac565b6040516102729190612ac9565b60405180910390f35b34801561028757600080fd5b506102906108b9565b60405161029d9190612ba2565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c89190612bc4565b610968565b005b3480156102db57600080fd5b506102f660048036038101906102f19190612c7c565b6109c8565b005b34801561030457600080fd5b5061031f600480360381019061031a9190612a7a565b610b30565b60405161032c9190612ac9565b60405180910390f35b34801561034157600080fd5b5061035c60048036038101906103579190612bc4565b610bd5565b005b34801561036a57600080fd5b5061038560048036038101906103809190612a23565b610bf5565b6040516103929190612ac9565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd9190612a23565b610c66565b6040516103cf9190612a5f565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa91906128e0565b610cec565b60405161040c9190612ac9565b60405180910390f35b34801561042157600080fd5b5061042a610da3565b005b34801561043857600080fd5b50610441610db7565b60405161044e9190612a5f565b60405180910390f35b34801561046357600080fd5b5061046c610de1565b6040516104799190612860565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a49190612d08565b610e73565b005b3480156104b757600080fd5b506104d260048036038101906104cd9190612e78565b610e89565b005b3480156104e057600080fd5b506104fb60048036038101906104f69190612a23565b610eeb565b6040516105089190612860565b60405180910390f35b34801561051d57600080fd5b5061053860048036038101906105339190612efb565b61106e565b60405161054591906127ac565b60405180910390f35b61056860048036038101906105639190612a23565b611102565b005b34801561057657600080fd5b50610591600480360381019061058c91906128e0565b6111c5565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610606575061060582611248565b5b9050919050565b60606000805461061c90612f6a565b80601f016020809104026020016040519081016040528092919081815260200182805461064890612f6a565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b5050505050905090565b606060006106ac83610cec565b67ffffffffffffffff8111156106c5576106c4612d4d565b5b6040519080825280602002602001820160405280156106f35781602001602082028036833780820191505090505b50905060005b61070284610cec565b811015610745576107138482610b30565b82828151811061072657610725612f9b565b5b602002602001018181525050808061073d90612ff9565b9150506106f9565b8192505050919050565b600061075a8261132a565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006107a082610c66565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610810576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610807906130b3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661082f611375565b73ffffffffffffffffffffffffffffffffffffffff16148061085e575061085d81610858611375565b61106e565b5b61089d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089490613145565b60405180910390fd5b6108a7838361137d565b505050565b6000600880549050905090565b60606000600b5467ffffffffffffffff8111156108d9576108d8612d4d565b5b6040519080825280602002602001820160405280156109075781602001602082028036833780820191505090505b50905060005b600b548110156109605761092081611436565b1561094d57600182828151811061093a57610939612f9b565b5b6020026020010190151590811515815250505b808061095890612ff9565b91505061090d565b819250505090565b610979610973611375565b82611477565b6109b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109af906131d7565b60405180910390fd5b6109c383838361150c565b505050565b6109d0611805565b60005b82829050811015610b2a57600d6000858152602001908152602001600020600101610a64848484818110610a0a57610a09612f9b565b5b9050602002810190610a1c9190613206565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611883565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828282818110610ad757610ad6612f9b565b5b9050602002810190610ae99190613206565b9050600d60008681526020019081526020016000206000016000828254610b109190613269565b925050819055508080610b2290612ff9565b9150506109d3565b50505050565b6000610b3b83610cec565b8210610b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7390613331565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610bf083838360405180602001604052806000815250610e89565b505050565b6000610bff6108ac565b8210610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c37906133c3565b60405180910390fd5b60088281548110610c5457610c53612f9b565b5b90600052602060002001549050919050565b600080610c7283611927565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ce3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cda9061342f565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d53906134c1565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dab611805565b610db56000611964565b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610df090612f6a565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1c90612f6a565b8015610e695780601f10610e3e57610100808354040283529160200191610e69565b820191906000526020600020905b815481529060010190602001808311610e4c57829003601f168201915b5050505050905090565b610e85610e7e611375565b8383611a2a565b5050565b610e9a610e94611375565b83611477565b610ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed0906131d7565b60405180910390fd5b610ee584848484611b96565b50505050565b6060610ef682611436565b610f2c576040517fceea21b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600d60008481526020019081526020016000206000015467ffffffffffffffff811115610f5e57610f5d612d4d565b5b6040519080825280601f01601f191660200182016040528015610f905781602001600182028036833780820191505090505b5090506000610f9e82611bf2565b50905060005b600d600086815260200190815260200160002060010180549050811015611063576000611022600d60008881526020019081526020016000206001018381548110610ff257610ff1612f9b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611c04565b905060008061103083611bf2565b9150915061103f828683611c39565b808561104b9190613269565b9450505050808061105b90612ff9565b915050610fa4565b508192505050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600b548110611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d9061352d565b60405180910390fd5b600c5434101561118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290613599565b60405180910390fd5b6111953382611cc2565b807ff8a1d8b71931385fc2643b62738ac48b2b5dfed67d40bebe158bca04f9995e9560405160405180910390a250565b6111cd611805565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361123c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112339061362b565b60405180910390fd5b61124581611964565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061131357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611323575061132282611ce0565b5b9050919050565b61133381611436565b611372576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113699061342f565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166113f083610c66565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008073ffffffffffffffffffffffffffffffffffffffff1661145883611927565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60008061148383610c66565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114c557506114c4818561106e565b5b8061150357508373ffffffffffffffffffffffffffffffffffffffff166114eb8461074f565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661152c82610c66565b73ffffffffffffffffffffffffffffffffffffffff1614611582576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611579906136bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e89061374f565b60405180910390fd5b6115fe8383836001611d4a565b8273ffffffffffffffffffffffffffffffffffffffff1661161e82610c66565b73ffffffffffffffffffffffffffffffffffffffff1614611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b906136bd565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46118008383836001611ea8565b505050565b61180d611375565b73ffffffffffffffffffffffffffffffffffffffff1661182b610db7565b73ffffffffffffffffffffffffffffffffffffffff1614611881576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611878906137bb565b60405180910390fd5b565b6000806118ae8360405160200161189a9190613859565b604051602081830303815290604052611eae565b90508051602082016000f09150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611921576040517f08d4abb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f906138c7565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611b8991906127ac565b60405180910390a3505050565b611ba184848461150c565b611bad84848484611eda565b611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be390613959565b60405180910390fd5b50505050565b60008082519050602083019150915091565b6060611c328260017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612061565b9050919050565b5b60208110611c785782518252602082611c539190613269565b9150602083611c629190613269565b9250602081611c719190613979565b9050611c3a565b6000810315611cbd5760006001826020611c929190613979565b610100611c9f9190613ae0565b611ca99190613979565b905080198451168184511681811785525050505b505050565b611cdc828260405180602001604052806000815250612146565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611d56848484846121a1565b6001811115611d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9190613b9d565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611de157611ddc816121a7565b611e20565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611e1f57611e1e85826121f0565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611e6257611e5d8161235d565b611ea1565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611ea057611e9f848261242e565b5b5b5050505050565b50505050565b6060815182604051602001611ec4929190613c9b565b6040516020818303038152906040529050919050565b6000611efb8473ffffffffffffffffffffffffffffffffffffffff166124ad565b15612054578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611f24611375565b8786866040518563ffffffff1660e01b8152600401611f469493929190613d23565b6020604051808303816000875af1925050508015611f8257506040513d601f19601f82011682018060405250810190611f7f9190613d84565b60015b612004573d8060008114611fb2576040519150601f19603f3d011682016040523d82523d6000602084013e611fb7565b606091505b506000815103611ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff390613959565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612059565b600190505b949350505050565b6060600061206e856124d0565b905060008103612090576040518060200160405280600081525091505061213f565b808411156120b0576040518060200160405280600081525091505061213f565b838310156120f9578084846040517f2c4a89fa0000000000000000000000000000000000000000000000000000000081526004016120f093929190613db1565b60405180910390fd5b600084840390506000858303905060008282106121165782612118565b815b90506040519450601f19601f60208301011685016040528085528087602087018a3c505050505b9392505050565b61215083836124db565b61215d6000848484611eda565b61219c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219390613959565b60405180910390fd5b505050565b50505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016121fd84610cec565b6122079190613979565b90506000600760008481526020019081526020016000205490508181146122ec576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506123719190613979565b90506000600960008481526020019081526020016000205490506000600883815481106123a1576123a0612f9b565b5b9060005260206000200154905080600883815481106123c3576123c2612f9b565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061241257612411613de8565b5b6001900381819060005260206000200160009055905550505050565b600061243983610cec565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000813b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361254a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254190613e63565b60405180910390fd5b61255381611436565b15612593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258a90613ecf565b60405180910390fd5b6125a1600083836001611d4a565b6125aa81611436565b156125ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e190613ecf565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46126f4600083836001611ea8565b5050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6127418161270c565b811461274c57600080fd5b50565b60008135905061275e81612738565b92915050565b60006020828403121561277a57612779612702565b5b60006127888482850161274f565b91505092915050565b60008115159050919050565b6127a681612791565b82525050565b60006020820190506127c1600083018461279d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128015780820151818401526020810190506127e6565b83811115612810576000848401525b50505050565b6000601f19601f8301169050919050565b6000612832826127c7565b61283c81856127d2565b935061284c8185602086016127e3565b61285581612816565b840191505092915050565b6000602082019050818103600083015261287a8184612827565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128ad82612882565b9050919050565b6128bd816128a2565b81146128c857600080fd5b50565b6000813590506128da816128b4565b92915050565b6000602082840312156128f6576128f5612702565b5b6000612904848285016128cb565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b61294c81612939565b82525050565b600061295e8383612943565b60208301905092915050565b6000602082019050919050565b60006129828261290d565b61298c8185612918565b935061299783612929565b8060005b838110156129c85781516129af8882612952565b97506129ba8361296a565b92505060018101905061299b565b5085935050505092915050565b600060208201905081810360008301526129ef8184612977565b905092915050565b612a0081612939565b8114612a0b57600080fd5b50565b600081359050612a1d816129f7565b92915050565b600060208284031215612a3957612a38612702565b5b6000612a4784828501612a0e565b91505092915050565b612a59816128a2565b82525050565b6000602082019050612a746000830184612a50565b92915050565b60008060408385031215612a9157612a90612702565b5b6000612a9f858286016128cb565b9250506020612ab085828601612a0e565b9150509250929050565b612ac381612939565b82525050565b6000602082019050612ade6000830184612aba565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b1981612791565b82525050565b6000612b2b8383612b10565b60208301905092915050565b6000602082019050919050565b6000612b4f82612ae4565b612b598185612aef565b9350612b6483612b00565b8060005b83811015612b95578151612b7c8882612b1f565b9750612b8783612b37565b925050600181019050612b68565b5085935050505092915050565b60006020820190508181036000830152612bbc8184612b44565b905092915050565b600080600060608486031215612bdd57612bdc612702565b5b6000612beb868287016128cb565b9350506020612bfc868287016128cb565b9250506040612c0d86828701612a0e565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612c3c57612c3b612c17565b5b8235905067ffffffffffffffff811115612c5957612c58612c1c565b5b602083019150836020820283011115612c7557612c74612c21565b5b9250929050565b600080600060408486031215612c9557612c94612702565b5b6000612ca386828701612a0e565b935050602084013567ffffffffffffffff811115612cc457612cc3612707565b5b612cd086828701612c26565b92509250509250925092565b612ce581612791565b8114612cf057600080fd5b50565b600081359050612d0281612cdc565b92915050565b60008060408385031215612d1f57612d1e612702565b5b6000612d2d858286016128cb565b9250506020612d3e85828601612cf3565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d8582612816565b810181811067ffffffffffffffff82111715612da457612da3612d4d565b5b80604052505050565b6000612db76126f8565b9050612dc38282612d7c565b919050565b600067ffffffffffffffff821115612de357612de2612d4d565b5b612dec82612816565b9050602081019050919050565b82818337600083830152505050565b6000612e1b612e1684612dc8565b612dad565b905082815260208101848484011115612e3757612e36612d48565b5b612e42848285612df9565b509392505050565b600082601f830112612e5f57612e5e612c17565b5b8135612e6f848260208601612e08565b91505092915050565b60008060008060808587031215612e9257612e91612702565b5b6000612ea0878288016128cb565b9450506020612eb1878288016128cb565b9350506040612ec287828801612a0e565b925050606085013567ffffffffffffffff811115612ee357612ee2612707565b5b612eef87828801612e4a565b91505092959194509250565b60008060408385031215612f1257612f11612702565b5b6000612f20858286016128cb565b9250506020612f31858286016128cb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f8257607f821691505b602082108103612f9557612f94612f3b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061300482612939565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361303657613035612fca565b5b600182019050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b600061309d6021836127d2565b91506130a882613041565b604082019050919050565b600060208201905081810360008301526130cc81613090565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b600061312f603d836127d2565b915061313a826130d3565b604082019050919050565b6000602082019050818103600083015261315e81613122565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006131c1602d836127d2565b91506131cc82613165565b604082019050919050565b600060208201905081810360008301526131f0816131b4565b9050919050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613223576132226131f7565b5b80840192508235915067ffffffffffffffff821115613245576132446131fc565b5b60208301925060018202360383131561326157613260613201565b5b509250929050565b600061327482612939565b915061327f83612939565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132b4576132b3612fca565b5b828201905092915050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b600061331b602b836127d2565b9150613326826132bf565b604082019050919050565b6000602082019050818103600083015261334a8161330e565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b60006133ad602c836127d2565b91506133b882613351565b604082019050919050565b600060208201905081810360008301526133dc816133a0565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006134196018836127d2565b9150613424826133e3565b602082019050919050565b600060208201905081810360008301526134488161340c565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006134ab6029836127d2565b91506134b68261344f565b604082019050919050565b600060208201905081810360008301526134da8161349e565b9050919050565b7f696e76616c696420746f6b656e49642e206d7573742062652023393939000000600082015250565b6000613517601d836127d2565b9150613522826134e1565b602082019050919050565b600060208201905081810360008301526135468161350a565b9050919050565b7f696e73756666696369656e742066756e64730000000000000000000000000000600082015250565b60006135836012836127d2565b915061358e8261354d565b602082019050919050565b600060208201905081810360008301526135b281613576565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136156026836127d2565b9150613620826135b9565b604082019050919050565b6000602082019050818103600083015261364481613608565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006136a76025836127d2565b91506136b28261364b565b604082019050919050565b600060208201905081810360008301526136d68161369a565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137396024836127d2565b9150613744826136dd565b604082019050919050565b600060208201905081810360008301526137688161372c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137a56020836127d2565b91506137b08261376f565b602082019050919050565b600060208201905081810360008301526137d481613798565b9050919050565b600081905092915050565b60008082015250565b60006137fc6001836137db565b9150613807826137e6565b600182019050919050565b600081519050919050565b600081905092915050565b600061383382613812565b61383d818561381d565b935061384d8185602086016127e3565b80840191505092915050565b6000613864826137ef565b91506138708284613828565b915081905092915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006138b16019836127d2565b91506138bc8261387b565b602082019050919050565b600060208201905081810360008301526138e0816138a4565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006139436032836127d2565b915061394e826138e7565b604082019050919050565b6000602082019050818103600083015261397281613936565b9050919050565b600061398482612939565b915061398f83612939565b9250828210156139a2576139a1612fca565b5b828203905092915050565b60008160011c9050919050565b6000808291508390505b6001851115613a04578086048111156139e0576139df612fca565b5b60018516156139ef5780820291505b80810290506139fd856139ad565b94506139c4565b94509492505050565b600082613a1d5760019050613ad9565b81613a2b5760009050613ad9565b8160018114613a415760028114613a4b57613a7a565b6001915050613ad9565b60ff841115613a5d57613a5c612fca565b5b8360020a915084821115613a7457613a73612fca565b5b50613ad9565b5060208310610133831016604e8410600b8410161715613aaf5782820a905083811115613aaa57613aa9612fca565b5b613ad9565b613abc84848460016139ba565b92509050818404811115613ad357613ad2612fca565b5b81810290505b9392505050565b6000613aeb82612939565b9150613af683612939565b9250613b237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613a0d565b905092915050565b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b6000613b876035836127d2565b9150613b9282613b2b565b604082019050919050565b60006020820190508181036000830152613bb681613b7a565b9050919050565b7f6300000000000000000000000000000000000000000000000000000000000000600082015250565b6000613bf36001836137db565b9150613bfe82613bbd565b600182019050919050565b600063ffffffff82169050919050565b60008160e01b9050919050565b6000613c3182613c19565b9050919050565b613c49613c4482613c09565b613c26565b82525050565b7f80600e6000396000f30000000000000000000000000000000000000000000000600082015250565b6000613c856009836137db565b9150613c9082613c4f565b600982019050919050565b6000613ca682613be6565b9150613cb28285613c38565b600482019150613cc182613c78565b9150613ccd8284613828565b91508190509392505050565b600082825260208201905092915050565b6000613cf582613812565b613cff8185613cd9565b9350613d0f8185602086016127e3565b613d1881612816565b840191505092915050565b6000608082019050613d386000830187612a50565b613d456020830186612a50565b613d526040830185612aba565b8181036060830152613d648184613cea565b905095945050505050565b600081519050613d7e81612738565b92915050565b600060208284031215613d9a57613d99612702565b5b6000613da884828501613d6f565b91505092915050565b6000606082019050613dc66000830186612aba565b613dd36020830185612aba565b613de06040830184612aba565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613e4d6020836127d2565b9150613e5882613e17565b602082019050919050565b60006020820190508181036000830152613e7c81613e40565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613eb9601c836127d2565b9150613ec482613e83565b602082019050919050565b60006020820190508181036000830152613ee881613eac565b905091905056fea2646970667358221220eee1e37bde30f335a29fbb21d0539d00455524a16ba12e17b7a42e84d2f85b9764736f6c634300080e0033", + "deployedBytecode": "0x6080604052600436106101405760003560e01c80634f6ccce7116100b6578063a22cb4651161006f578063a22cb46514610482578063b88d4fde146104ab578063c87b56dd146104d4578063e985e9c514610511578063f03526511461054e578063f2fde38b1461056a57610140565b80634f6ccce71461035e5780636352211e1461039b57806370a08231146103d8578063715018a6146104155780638da5cb5b1461042c57806395d89b411461045757610140565b806318160ddd1161010857806318160ddd1461025057806319a0b41b1461027b57806323b872dd146102a65780632f0fe447146102cf5780632f745c59146102f857806342842e0e1461033557610140565b806301ffc9a71461014557806306fdde03146101825780630725e898146101ad578063081812fc146101ea578063095ea7b314610227575b600080fd5b34801561015157600080fd5b5061016c60048036038101906101679190612764565b610593565b60405161017991906127ac565b60405180910390f35b34801561018e57600080fd5b5061019761060d565b6040516101a49190612860565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906128e0565b61069f565b6040516101e191906129d5565b60405180910390f35b3480156101f657600080fd5b50610211600480360381019061020c9190612a23565b61074f565b60405161021e9190612a5f565b60405180910390f35b34801561023357600080fd5b5061024e60048036038101906102499190612a7a565b610795565b005b34801561025c57600080fd5b506102656108ac565b6040516102729190612ac9565b60405180910390f35b34801561028757600080fd5b506102906108b9565b60405161029d9190612ba2565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c89190612bc4565b610968565b005b3480156102db57600080fd5b506102f660048036038101906102f19190612c7c565b6109c8565b005b34801561030457600080fd5b5061031f600480360381019061031a9190612a7a565b610b30565b60405161032c9190612ac9565b60405180910390f35b34801561034157600080fd5b5061035c60048036038101906103579190612bc4565b610bd5565b005b34801561036a57600080fd5b5061038560048036038101906103809190612a23565b610bf5565b6040516103929190612ac9565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd9190612a23565b610c66565b6040516103cf9190612a5f565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa91906128e0565b610cec565b60405161040c9190612ac9565b60405180910390f35b34801561042157600080fd5b5061042a610da3565b005b34801561043857600080fd5b50610441610db7565b60405161044e9190612a5f565b60405180910390f35b34801561046357600080fd5b5061046c610de1565b6040516104799190612860565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a49190612d08565b610e73565b005b3480156104b757600080fd5b506104d260048036038101906104cd9190612e78565b610e89565b005b3480156104e057600080fd5b506104fb60048036038101906104f69190612a23565b610eeb565b6040516105089190612860565b60405180910390f35b34801561051d57600080fd5b5061053860048036038101906105339190612efb565b61106e565b60405161054591906127ac565b60405180910390f35b61056860048036038101906105639190612a23565b611102565b005b34801561057657600080fd5b50610591600480360381019061058c91906128e0565b6111c5565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610606575061060582611248565b5b9050919050565b60606000805461061c90612f6a565b80601f016020809104026020016040519081016040528092919081815260200182805461064890612f6a565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b5050505050905090565b606060006106ac83610cec565b67ffffffffffffffff8111156106c5576106c4612d4d565b5b6040519080825280602002602001820160405280156106f35781602001602082028036833780820191505090505b50905060005b61070284610cec565b811015610745576107138482610b30565b82828151811061072657610725612f9b565b5b602002602001018181525050808061073d90612ff9565b9150506106f9565b8192505050919050565b600061075a8261132a565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006107a082610c66565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610810576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610807906130b3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661082f611375565b73ffffffffffffffffffffffffffffffffffffffff16148061085e575061085d81610858611375565b61106e565b5b61089d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089490613145565b60405180910390fd5b6108a7838361137d565b505050565b6000600880549050905090565b60606000600b5467ffffffffffffffff8111156108d9576108d8612d4d565b5b6040519080825280602002602001820160405280156109075781602001602082028036833780820191505090505b50905060005b600b548110156109605761092081611436565b1561094d57600182828151811061093a57610939612f9b565b5b6020026020010190151590811515815250505b808061095890612ff9565b91505061090d565b819250505090565b610979610973611375565b82611477565b6109b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109af906131d7565b60405180910390fd5b6109c383838361150c565b505050565b6109d0611805565b60005b82829050811015610b2a57600d6000858152602001908152602001600020600101610a64848484818110610a0a57610a09612f9b565b5b9050602002810190610a1c9190613206565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611883565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828282818110610ad757610ad6612f9b565b5b9050602002810190610ae99190613206565b9050600d60008681526020019081526020016000206000016000828254610b109190613269565b925050819055508080610b2290612ff9565b9150506109d3565b50505050565b6000610b3b83610cec565b8210610b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7390613331565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610bf083838360405180602001604052806000815250610e89565b505050565b6000610bff6108ac565b8210610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c37906133c3565b60405180910390fd5b60088281548110610c5457610c53612f9b565b5b90600052602060002001549050919050565b600080610c7283611927565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ce3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cda9061342f565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d53906134c1565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dab611805565b610db56000611964565b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610df090612f6a565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1c90612f6a565b8015610e695780601f10610e3e57610100808354040283529160200191610e69565b820191906000526020600020905b815481529060010190602001808311610e4c57829003601f168201915b5050505050905090565b610e85610e7e611375565b8383611a2a565b5050565b610e9a610e94611375565b83611477565b610ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed0906131d7565b60405180910390fd5b610ee584848484611b96565b50505050565b6060610ef682611436565b610f2c576040517fceea21b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600d60008481526020019081526020016000206000015467ffffffffffffffff811115610f5e57610f5d612d4d565b5b6040519080825280601f01601f191660200182016040528015610f905781602001600182028036833780820191505090505b5090506000610f9e82611bf2565b50905060005b600d600086815260200190815260200160002060010180549050811015611063576000611022600d60008881526020019081526020016000206001018381548110610ff257610ff1612f9b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611c04565b905060008061103083611bf2565b9150915061103f828683611c39565b808561104b9190613269565b9450505050808061105b90612ff9565b915050610fa4565b508192505050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600b548110611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d9061352d565b60405180910390fd5b600c5434101561118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290613599565b60405180910390fd5b6111953382611cc2565b807ff8a1d8b71931385fc2643b62738ac48b2b5dfed67d40bebe158bca04f9995e9560405160405180910390a250565b6111cd611805565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361123c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112339061362b565b60405180910390fd5b61124581611964565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061131357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611323575061132282611ce0565b5b9050919050565b61133381611436565b611372576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113699061342f565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166113f083610c66565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008073ffffffffffffffffffffffffffffffffffffffff1661145883611927565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60008061148383610c66565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114c557506114c4818561106e565b5b8061150357508373ffffffffffffffffffffffffffffffffffffffff166114eb8461074f565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661152c82610c66565b73ffffffffffffffffffffffffffffffffffffffff1614611582576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611579906136bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e89061374f565b60405180910390fd5b6115fe8383836001611d4a565b8273ffffffffffffffffffffffffffffffffffffffff1661161e82610c66565b73ffffffffffffffffffffffffffffffffffffffff1614611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b906136bd565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46118008383836001611ea8565b505050565b61180d611375565b73ffffffffffffffffffffffffffffffffffffffff1661182b610db7565b73ffffffffffffffffffffffffffffffffffffffff1614611881576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611878906137bb565b60405180910390fd5b565b6000806118ae8360405160200161189a9190613859565b604051602081830303815290604052611eae565b90508051602082016000f09150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611921576040517f08d4abb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f906138c7565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611b8991906127ac565b60405180910390a3505050565b611ba184848461150c565b611bad84848484611eda565b611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be390613959565b60405180910390fd5b50505050565b60008082519050602083019150915091565b6060611c328260017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612061565b9050919050565b5b60208110611c785782518252602082611c539190613269565b9150602083611c629190613269565b9250602081611c719190613979565b9050611c3a565b6000810315611cbd5760006001826020611c929190613979565b610100611c9f9190613ae0565b611ca99190613979565b905080198451168184511681811785525050505b505050565b611cdc828260405180602001604052806000815250612146565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611d56848484846121a1565b6001811115611d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9190613b9d565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611de157611ddc816121a7565b611e20565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611e1f57611e1e85826121f0565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611e6257611e5d8161235d565b611ea1565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611ea057611e9f848261242e565b5b5b5050505050565b50505050565b6060815182604051602001611ec4929190613c9b565b6040516020818303038152906040529050919050565b6000611efb8473ffffffffffffffffffffffffffffffffffffffff166124ad565b15612054578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611f24611375565b8786866040518563ffffffff1660e01b8152600401611f469493929190613d23565b6020604051808303816000875af1925050508015611f8257506040513d601f19601f82011682018060405250810190611f7f9190613d84565b60015b612004573d8060008114611fb2576040519150601f19603f3d011682016040523d82523d6000602084013e611fb7565b606091505b506000815103611ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff390613959565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612059565b600190505b949350505050565b6060600061206e856124d0565b905060008103612090576040518060200160405280600081525091505061213f565b808411156120b0576040518060200160405280600081525091505061213f565b838310156120f9578084846040517f2c4a89fa0000000000000000000000000000000000000000000000000000000081526004016120f093929190613db1565b60405180910390fd5b600084840390506000858303905060008282106121165782612118565b815b90506040519450601f19601f60208301011685016040528085528087602087018a3c505050505b9392505050565b61215083836124db565b61215d6000848484611eda565b61219c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219390613959565b60405180910390fd5b505050565b50505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016121fd84610cec565b6122079190613979565b90506000600760008481526020019081526020016000205490508181146122ec576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506123719190613979565b90506000600960008481526020019081526020016000205490506000600883815481106123a1576123a0612f9b565b5b9060005260206000200154905080600883815481106123c3576123c2612f9b565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061241257612411613de8565b5b6001900381819060005260206000200160009055905550505050565b600061243983610cec565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000813b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361254a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254190613e63565b60405180910390fd5b61255381611436565b15612593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258a90613ecf565b60405180910390fd5b6125a1600083836001611d4a565b6125aa81611436565b156125ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e190613ecf565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46126f4600083836001611ea8565b5050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6127418161270c565b811461274c57600080fd5b50565b60008135905061275e81612738565b92915050565b60006020828403121561277a57612779612702565b5b60006127888482850161274f565b91505092915050565b60008115159050919050565b6127a681612791565b82525050565b60006020820190506127c1600083018461279d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128015780820151818401526020810190506127e6565b83811115612810576000848401525b50505050565b6000601f19601f8301169050919050565b6000612832826127c7565b61283c81856127d2565b935061284c8185602086016127e3565b61285581612816565b840191505092915050565b6000602082019050818103600083015261287a8184612827565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128ad82612882565b9050919050565b6128bd816128a2565b81146128c857600080fd5b50565b6000813590506128da816128b4565b92915050565b6000602082840312156128f6576128f5612702565b5b6000612904848285016128cb565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b61294c81612939565b82525050565b600061295e8383612943565b60208301905092915050565b6000602082019050919050565b60006129828261290d565b61298c8185612918565b935061299783612929565b8060005b838110156129c85781516129af8882612952565b97506129ba8361296a565b92505060018101905061299b565b5085935050505092915050565b600060208201905081810360008301526129ef8184612977565b905092915050565b612a0081612939565b8114612a0b57600080fd5b50565b600081359050612a1d816129f7565b92915050565b600060208284031215612a3957612a38612702565b5b6000612a4784828501612a0e565b91505092915050565b612a59816128a2565b82525050565b6000602082019050612a746000830184612a50565b92915050565b60008060408385031215612a9157612a90612702565b5b6000612a9f858286016128cb565b9250506020612ab085828601612a0e565b9150509250929050565b612ac381612939565b82525050565b6000602082019050612ade6000830184612aba565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b1981612791565b82525050565b6000612b2b8383612b10565b60208301905092915050565b6000602082019050919050565b6000612b4f82612ae4565b612b598185612aef565b9350612b6483612b00565b8060005b83811015612b95578151612b7c8882612b1f565b9750612b8783612b37565b925050600181019050612b68565b5085935050505092915050565b60006020820190508181036000830152612bbc8184612b44565b905092915050565b600080600060608486031215612bdd57612bdc612702565b5b6000612beb868287016128cb565b9350506020612bfc868287016128cb565b9250506040612c0d86828701612a0e565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612c3c57612c3b612c17565b5b8235905067ffffffffffffffff811115612c5957612c58612c1c565b5b602083019150836020820283011115612c7557612c74612c21565b5b9250929050565b600080600060408486031215612c9557612c94612702565b5b6000612ca386828701612a0e565b935050602084013567ffffffffffffffff811115612cc457612cc3612707565b5b612cd086828701612c26565b92509250509250925092565b612ce581612791565b8114612cf057600080fd5b50565b600081359050612d0281612cdc565b92915050565b60008060408385031215612d1f57612d1e612702565b5b6000612d2d858286016128cb565b9250506020612d3e85828601612cf3565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d8582612816565b810181811067ffffffffffffffff82111715612da457612da3612d4d565b5b80604052505050565b6000612db76126f8565b9050612dc38282612d7c565b919050565b600067ffffffffffffffff821115612de357612de2612d4d565b5b612dec82612816565b9050602081019050919050565b82818337600083830152505050565b6000612e1b612e1684612dc8565b612dad565b905082815260208101848484011115612e3757612e36612d48565b5b612e42848285612df9565b509392505050565b600082601f830112612e5f57612e5e612c17565b5b8135612e6f848260208601612e08565b91505092915050565b60008060008060808587031215612e9257612e91612702565b5b6000612ea0878288016128cb565b9450506020612eb1878288016128cb565b9350506040612ec287828801612a0e565b925050606085013567ffffffffffffffff811115612ee357612ee2612707565b5b612eef87828801612e4a565b91505092959194509250565b60008060408385031215612f1257612f11612702565b5b6000612f20858286016128cb565b9250506020612f31858286016128cb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f8257607f821691505b602082108103612f9557612f94612f3b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061300482612939565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361303657613035612fca565b5b600182019050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b600061309d6021836127d2565b91506130a882613041565b604082019050919050565b600060208201905081810360008301526130cc81613090565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b600061312f603d836127d2565b915061313a826130d3565b604082019050919050565b6000602082019050818103600083015261315e81613122565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006131c1602d836127d2565b91506131cc82613165565b604082019050919050565b600060208201905081810360008301526131f0816131b4565b9050919050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613223576132226131f7565b5b80840192508235915067ffffffffffffffff821115613245576132446131fc565b5b60208301925060018202360383131561326157613260613201565b5b509250929050565b600061327482612939565b915061327f83612939565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132b4576132b3612fca565b5b828201905092915050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b600061331b602b836127d2565b9150613326826132bf565b604082019050919050565b6000602082019050818103600083015261334a8161330e565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b60006133ad602c836127d2565b91506133b882613351565b604082019050919050565b600060208201905081810360008301526133dc816133a0565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006134196018836127d2565b9150613424826133e3565b602082019050919050565b600060208201905081810360008301526134488161340c565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006134ab6029836127d2565b91506134b68261344f565b604082019050919050565b600060208201905081810360008301526134da8161349e565b9050919050565b7f696e76616c696420746f6b656e49642e206d7573742062652023393939000000600082015250565b6000613517601d836127d2565b9150613522826134e1565b602082019050919050565b600060208201905081810360008301526135468161350a565b9050919050565b7f696e73756666696369656e742066756e64730000000000000000000000000000600082015250565b60006135836012836127d2565b915061358e8261354d565b602082019050919050565b600060208201905081810360008301526135b281613576565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136156026836127d2565b9150613620826135b9565b604082019050919050565b6000602082019050818103600083015261364481613608565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006136a76025836127d2565b91506136b28261364b565b604082019050919050565b600060208201905081810360008301526136d68161369a565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137396024836127d2565b9150613744826136dd565b604082019050919050565b600060208201905081810360008301526137688161372c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137a56020836127d2565b91506137b08261376f565b602082019050919050565b600060208201905081810360008301526137d481613798565b9050919050565b600081905092915050565b60008082015250565b60006137fc6001836137db565b9150613807826137e6565b600182019050919050565b600081519050919050565b600081905092915050565b600061383382613812565b61383d818561381d565b935061384d8185602086016127e3565b80840191505092915050565b6000613864826137ef565b91506138708284613828565b915081905092915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006138b16019836127d2565b91506138bc8261387b565b602082019050919050565b600060208201905081810360008301526138e0816138a4565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006139436032836127d2565b915061394e826138e7565b604082019050919050565b6000602082019050818103600083015261397281613936565b9050919050565b600061398482612939565b915061398f83612939565b9250828210156139a2576139a1612fca565b5b828203905092915050565b60008160011c9050919050565b6000808291508390505b6001851115613a04578086048111156139e0576139df612fca565b5b60018516156139ef5780820291505b80810290506139fd856139ad565b94506139c4565b94509492505050565b600082613a1d5760019050613ad9565b81613a2b5760009050613ad9565b8160018114613a415760028114613a4b57613a7a565b6001915050613ad9565b60ff841115613a5d57613a5c612fca565b5b8360020a915084821115613a7457613a73612fca565b5b50613ad9565b5060208310610133831016604e8410600b8410161715613aaf5782820a905083811115613aaa57613aa9612fca565b5b613ad9565b613abc84848460016139ba565b92509050818404811115613ad357613ad2612fca565b5b81810290505b9392505050565b6000613aeb82612939565b9150613af683612939565b9250613b237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613a0d565b905092915050565b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b6000613b876035836127d2565b9150613b9282613b2b565b604082019050919050565b60006020820190508181036000830152613bb681613b7a565b9050919050565b7f6300000000000000000000000000000000000000000000000000000000000000600082015250565b6000613bf36001836137db565b9150613bfe82613bbd565b600182019050919050565b600063ffffffff82169050919050565b60008160e01b9050919050565b6000613c3182613c19565b9050919050565b613c49613c4482613c09565b613c26565b82525050565b7f80600e6000396000f30000000000000000000000000000000000000000000000600082015250565b6000613c856009836137db565b9150613c9082613c4f565b600982019050919050565b6000613ca682613be6565b9150613cb28285613c38565b600482019150613cc182613c78565b9150613ccd8284613828565b91508190509392505050565b600082825260208201905092915050565b6000613cf582613812565b613cff8185613cd9565b9350613d0f8185602086016127e3565b613d1881612816565b840191505092915050565b6000608082019050613d386000830187612a50565b613d456020830186612a50565b613d526040830185612aba565b8181036060830152613d648184613cea565b905095945050505050565b600081519050613d7e81612738565b92915050565b600060208284031215613d9a57613d99612702565b5b6000613da884828501613d6f565b91505092915050565b6000606082019050613dc66000830186612aba565b613dd36020830185612aba565b613de06040830184612aba565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613e4d6020836127d2565b9150613e5882613e17565b602082019050919050565b60006020820190508181036000830152613e7c81613e40565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613eb9601c836127d2565b9150613ec482613e83565b602082019050919050565b60006020820190508181036000830152613ee881613eac565b905091905056fea2646970667358221220eee1e37bde30f335a29fbb21d0539d00455524a16ba12e17b7a42e84d2f85b9764736f6c634300080e0033", + "immutableReferences": {}, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:516:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "35:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "45:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "45:88:19" + }, + "nodeType": "YulExpressionStatement", + "src": "45:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "149:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "152:4:19", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "142:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "142:15:19" + }, + "nodeType": "YulExpressionStatement", + "src": "142:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "173:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "176:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "166:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "166:15:19" + }, + "nodeType": "YulExpressionStatement", + "src": "166:15:19" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "7:180:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "244:269:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "254:22:19", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "268:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "274:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "264:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "264:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "254:6:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "285:38:19", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "315:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "321:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "311:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "311:12:19" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "289:18:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "362:51:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "376:27:19", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "390:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "398:4:19", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "386:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "386:17:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "376:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "342:18:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "335:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "335:26:19" + }, + "nodeType": "YulIf", + "src": "332:81:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "465:42:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "479:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "479:18:19" + }, + "nodeType": "YulExpressionStatement", + "src": "479:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "429:18:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "452:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "460:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "449:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "449:14:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "426:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "426:38:19" + }, + "nodeType": "YulIf", + "src": "423:84:19" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "228:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "237:6:19", + "type": "" + } + ], + "src": "193:320:19" + } + ] + }, + "contents": "{\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:46207:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:19" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:19", + "type": "" + } + ], + "src": "7:75:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:19" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:19" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "378:105:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "388:89:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "403:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "410:66:19", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "399:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "399:78:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "388:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "360:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "370:7:19", + "type": "" + } + ], + "src": "334:149:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "531:78:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "587:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "596:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "599:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "589:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "589:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "589:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "554:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "578:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "561:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "561:23:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "551:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "551:34:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "544:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "544:42:19" + }, + "nodeType": "YulIf", + "src": "541:62:19" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "524:5:19", + "type": "" + } + ], + "src": "489:120:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "666:86:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "676:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "698:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "685:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "685:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "740:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "714:25:19" + }, + "nodeType": "YulFunctionCall", + "src": "714:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "714:32:19" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "644:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "652:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "660:5:19", + "type": "" + } + ], + "src": "615:137:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "823:262:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "869:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "871:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "871:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "871:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "844:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "853:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "840:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "840:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "865:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "836:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "836:32:19" + }, + "nodeType": "YulIf", + "src": "833:119:19" + }, + { + "nodeType": "YulBlock", + "src": "962:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "977:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "991:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "981:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1006:62:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1040:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1051:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1036:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1036:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1060:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nodeType": "YulIdentifier", + "src": "1016:19:19" + }, + "nodeType": "YulFunctionCall", + "src": "1016:52:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1006:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "793:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "804:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "816:6:19", + "type": "" + } + ], + "src": "758:327:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1133:48:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1143:32:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1168:5:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1161:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1161:13:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1154:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1154:21:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1143:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1115:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1125:7:19", + "type": "" + } + ], + "src": "1091:90:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1246:50:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1263:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1283:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "1268:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "1268:21:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1256:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1256:34:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1256:34:19" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1234:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1241:3:19", + "type": "" + } + ], + "src": "1187:109:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1394:118:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1404:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1416:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1412:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1412:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1404:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1478:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1491:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1502:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1487:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1487:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1440:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "1440:65:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1440:65:19" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1366:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1378:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1389:4:19", + "type": "" + } + ], + "src": "1302:210:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1577:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1588:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1604:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1598:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "1598:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1588:6:19" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1560:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1570:6:19", + "type": "" + } + ], + "src": "1518:99:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1719:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1736:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1741:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1729:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1729:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1729:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "1757:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1776:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1781:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1772:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1772:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "1757:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1691:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1696:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "1707:11:19", + "type": "" + } + ], + "src": "1623:169:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1847:258:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1857:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1866:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1861:1:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1926:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1951:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1956:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1947:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1947:11:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1970:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1975:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1966:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1966:11:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1960:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "1960:18:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1940:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1940:39:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1940:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1887:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1890:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1884:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "1884:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1898:19:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1900:15:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1909:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1912:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1905:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1905:10:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1900:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1880:3:19", + "statements": [] + }, + "src": "1876:113:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2023:76:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2073:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2078:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2069:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2069:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2087:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2062:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2062:27:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2062:27:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2004:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2007:6:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2001:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "2001:13:19" + }, + "nodeType": "YulIf", + "src": "1998:101:19" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1829:3:19", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1834:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1839:6:19", + "type": "" + } + ], + "src": "1798:307:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2159:54:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2169:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2187:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2194:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2183:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2183:14:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2203:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "2199:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2199:7:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2179:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2179:28:19" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "2169:6:19" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2142:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "2152:6:19", + "type": "" + } + ], + "src": "2111:102:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2311:272:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2321:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2368:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2335:32:19" + }, + "nodeType": "YulFunctionCall", + "src": "2335:39:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2325:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2383:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2449:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2454:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2390:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "2390:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2383:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2496:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2503:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2492:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2492:16:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2510:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2515:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "2470:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "2470:52:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2470:52:19" + }, + { + "nodeType": "YulAssignment", + "src": "2531:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2542:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2569:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2547:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "2547:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2538:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2538:39:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2531:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2292:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2299:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2307:3:19", + "type": "" + } + ], + "src": "2219:364:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2707:195:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2717:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2729:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2740:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2725:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2725:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2717:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2764:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2775:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2760:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2760:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2783:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2789:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2779:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2779:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2753:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2753:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2753:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "2809:86:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2881:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2890:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2817:63:19" + }, + "nodeType": "YulFunctionCall", + "src": "2817:78:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2809:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2679:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2691:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2702:4:19", + "type": "" + } + ], + "src": "2589:313:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2953:81:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2963:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2978:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2985:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2974:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2974:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2963:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2935:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2945:7:19", + "type": "" + } + ], + "src": "2908:126:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3085:51:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3124:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "3106:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "3106:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3095:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3067:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3077:7:19", + "type": "" + } + ], + "src": "3040:96:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3185:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3242:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3251:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3254:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3244:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "3244:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3244:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3208:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3233:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "3215:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "3215:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "3205:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "3205:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3198:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "3198:43:19" + }, + "nodeType": "YulIf", + "src": "3195:63:19" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3178:5:19", + "type": "" + } + ], + "src": "3142:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3354:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3341:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "3341:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3332:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3397:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "3370:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "3370:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3370:33:19" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3300:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3308:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3316:5:19", + "type": "" + } + ], + "src": "3270:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3481:263:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3527:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3529:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "3529:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3529:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3502:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3511:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3498:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3498:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3523:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3494:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3494:32:19" + }, + "nodeType": "YulIf", + "src": "3491:119:19" + }, + { + "nodeType": "YulBlock", + "src": "3620:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3635:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3649:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3639:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3664:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3699:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3710:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3695:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3695:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3719:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3674:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "3674:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3664:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3451:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3462:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3474:6:19", + "type": "" + } + ], + "src": "3415:329:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3824:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3835:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3851:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3845:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "3845:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3835:6:19" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3807:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3817:6:19", + "type": "" + } + ], + "src": "3750:114:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3981:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3998:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4003:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3991:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "3991:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3991:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "4019:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4038:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4043:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4034:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4034:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4019:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3953:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3958:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "3969:11:19", + "type": "" + } + ], + "src": "3870:184:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4132:60:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4142:11:19", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4150:3:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4142:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4163:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4175:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4180:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4171:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4171:14:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4163:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "4119:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "4127:4:19", + "type": "" + } + ], + "src": "4060:132:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4243:32:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4253:16:19", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4264:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4253:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4225:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4235:7:19", + "type": "" + } + ], + "src": "4198:77:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4336:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4353:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4376:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4358:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "4358:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4346:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4346:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4346:37:19" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4324:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4331:3:19", + "type": "" + } + ], + "src": "4281:108:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4475:99:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4519:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4527:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "4485:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "4485:46:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4485:46:19" + }, + { + "nodeType": "YulAssignment", + "src": "4540:28:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4558:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4563:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4554:14:19" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "4540:10:19" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4448:6:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4456:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "4464:10:19", + "type": "" + } + ], + "src": "4395:179:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4655:38:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4665:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4677:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4682:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4673:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4673:14:19" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "4665:4:19" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "4642:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "4650:4:19", + "type": "" + } + ], + "src": "4580:113:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4853:608:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4863:68:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4925:5:19" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4877:47:19" + }, + "nodeType": "YulFunctionCall", + "src": "4877:54:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4867:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4940:93:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5021:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5026:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4947:73:19" + }, + "nodeType": "YulFunctionCall", + "src": "4947:86:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4940:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5042:71:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5107:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5057:49:19" + }, + "nodeType": "YulFunctionCall", + "src": "5057:56:19" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "5046:7:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5122:21:19", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "5136:7:19" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "5126:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5212:224:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5226:34:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "5253:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5247:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "5247:13:19" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "5230:13:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5273:70:19", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "5324:13:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5339:3:19" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5280:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "5280:63:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5273:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5356:70:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "5419:6:19" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5366:52:19" + }, + "nodeType": "YulFunctionCall", + "src": "5366:60:19" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "5356:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5174:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5177:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5171:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "5171:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5185:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5187:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5196:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5199:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5192:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5192:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5187:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5156:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5158:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5167:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "5162:1:19", + "type": "" + } + ] + } + ] + }, + "src": "5152:284:19" + }, + { + "nodeType": "YulAssignment", + "src": "5445:10:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5452:3:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5445:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4832:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4839:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4848:3:19", + "type": "" + } + ], + "src": "4729:732:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5615:225:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5625:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5637:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5648:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5633:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5633:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5625:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5672:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5683:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5668:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5668:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5691:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5697:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5687:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5687:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5661:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5661:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5661:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "5717:116:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5819:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5828:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5725:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "5725:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5717:4:19" + } + ] + } + ] + }, + "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": "5587:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5599:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5610:4:19", + "type": "" + } + ], + "src": "5467:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5889:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5946:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5955:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5958:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5948:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5948:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5948:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5912:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5937:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5919:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "5919:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "5909:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "5909:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5902:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5902:43:19" + }, + "nodeType": "YulIf", + "src": "5899:63:19" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5882:5:19", + "type": "" + } + ], + "src": "5846:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6026:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6036:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6058:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6045:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "6045:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6036:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6101:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "6074:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "6074:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6074:33:19" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6004:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6012:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6020:5:19", + "type": "" + } + ], + "src": "5974:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6185:263:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6231:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6233:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "6233:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6233:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6206:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6215:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6202:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6202:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6227:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6198:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6198:32:19" + }, + "nodeType": "YulIf", + "src": "6195:119:19" + }, + { + "nodeType": "YulBlock", + "src": "6324:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6339:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6353:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6343:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6368:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6403:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6414:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6399:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6399:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6423:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6378:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "6378:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6368:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6155:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6166:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6178:6:19", + "type": "" + } + ], + "src": "6119:329:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6519:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6536:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6559:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6541:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "6541:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6529:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "6529:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6529:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6507:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6514:3:19", + "type": "" + } + ], + "src": "6454:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6676:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6686:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6698:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6709:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6694:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6694:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6686:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6766:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6779:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6790:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6775:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6775:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6722:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "6722:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6722:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6648:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6660:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6671:4:19", + "type": "" + } + ], + "src": "6578:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6889:391:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6935:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6937:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "6937:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6937:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6910:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6919:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6906:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6906:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6931:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6902:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6902:32:19" + }, + "nodeType": "YulIf", + "src": "6899:119:19" + }, + { + "nodeType": "YulBlock", + "src": "7028:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7043:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7057:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7047:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7072:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7107:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7118:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7103:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7103:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7127:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7082:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "7082:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7072:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7155:118:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7170:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7184:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7174:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7200:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7235:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7246:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7231:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7231:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7255:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7210:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "7210:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7200:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6851:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6862:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6874:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6882:6:19", + "type": "" + } + ], + "src": "6806:474:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7351:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7368:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7391:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7373:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "7373:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7361:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "7361:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "7361:37:19" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7339:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7346:3:19", + "type": "" + } + ], + "src": "7286:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7508:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7518:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7530:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7541:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7526:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7526:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7518:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7598:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7611:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7622:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7607:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7607:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7554:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "7554:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "7554:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7480:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7492:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7503:4:19", + "type": "" + } + ], + "src": "7410:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7709:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7720:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7736:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7730:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "7730:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7720:6:19" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_bool_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7692:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7702:6:19", + "type": "" + } + ], + "src": "7638:111:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7863:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7880:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7885:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7873:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "7873:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "7873:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "7901:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7920:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7925:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7916:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7916:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "7901:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7835:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7840:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "7851:11:19", + "type": "" + } + ], + "src": "7755:181:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8011:60:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8021:11:19", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "8029:3:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8021:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8042:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "8054:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8059:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8050:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8050:14:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8042:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_bool_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "7998:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "8006:4:19", + "type": "" + } + ], + "src": "7942:129:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8126:50:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8143:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8163:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "8148:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "8148:21:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8136:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8136:34:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8136:34:19" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8114:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8121:3:19", + "type": "" + } + ], + "src": "8077:99:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8256:93:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8294:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8302:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool", + "nodeType": "YulIdentifier", + "src": "8266:27:19" + }, + "nodeType": "YulFunctionCall", + "src": "8266:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8266:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "8315:28:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8333:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8338:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8329:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8329:14:19" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "8315:10:19" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_bool_to_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8229:6:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8237:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "8245:10:19", + "type": "" + } + ], + "src": "8182:167:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8427:38:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8437:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "8449:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8454:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8445:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8445:14:19" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "8437:4:19" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_bool_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "8414:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "8422:4:19", + "type": "" + } + ], + "src": "8355:110:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8613:590:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8623:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8682:5:19" + } + ], + "functionName": { + "name": "array_length_t_array$_t_bool_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8637:44:19" + }, + "nodeType": "YulFunctionCall", + "src": "8637:51:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8627:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8697:90:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8775:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8780:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8704:70:19" + }, + "nodeType": "YulFunctionCall", + "src": "8704:83:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8697:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8796:68:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8858:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_bool_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8811:46:19" + }, + "nodeType": "YulFunctionCall", + "src": "8811:53:19" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "8800:7:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8873:21:19", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "8887:7:19" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "8877:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8963:215:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8977:34:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "9004:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8998:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "8998:13:19" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "8981:13:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9024:64:19", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "9069:13:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9084:3:19" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_bool_to_t_bool", + "nodeType": "YulIdentifier", + "src": "9031:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "9031:57:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9024:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9101:67:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "9161:6:19" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_bool_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "9111:49:19" + }, + "nodeType": "YulFunctionCall", + "src": "9111:57:19" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "9101:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8925:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8928:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8922:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "8922:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "8936:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8938:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8947:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8950:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8943:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8943:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8938:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "8907:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8909:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8918:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "8913:1:19", + "type": "" + } + ] + } + ] + }, + "src": "8903:275:19" + }, + { + "nodeType": "YulAssignment", + "src": "9187:10:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9194:3:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9187:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8592:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8599:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8608:3:19", + "type": "" + } + ], + "src": "8495:708:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9351:219:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9361:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9373:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9384:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9369:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9369:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9361:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9408:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9419:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9404:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9404:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9427:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9433:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9423:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9423:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9397:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "9397:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9397:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "9453:110:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9549:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9558:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9461:87:19" + }, + "nodeType": "YulFunctionCall", + "src": "9461:102:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9453:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9323:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9335:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9346:4:19", + "type": "" + } + ], + "src": "9209:361:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9676:519:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9722:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9724:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "9724:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9724:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9697:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9706:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9693:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9693:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9718:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9689:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9689:32:19" + }, + "nodeType": "YulIf", + "src": "9686:119:19" + }, + { + "nodeType": "YulBlock", + "src": "9815:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9830:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9844:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9834:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9859:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9894:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9905:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9890:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9890:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9914:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9869:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9869:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9859:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9942:118:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9957:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9971:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9961:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9987:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10022:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10033:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10018:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10018:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10042:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9997:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9997:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9987:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10070:118:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10085:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10099:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10089:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10115:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10150:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10161:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10146:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10146:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10170:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "10125:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "10125:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "10115:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9630:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9641:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9653:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9661:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "9669:6:19", + "type": "" + } + ], + "src": "9576:619:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10290:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10307:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10310:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10300:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "10300:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10300:12:19" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "10201:117:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10413:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10430:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10433:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10423:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "10423:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10423:12:19" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulFunctionDefinition", + "src": "10324:117:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10536:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10553:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10556:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10546:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "10546:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10546:12:19" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulFunctionDefinition", + "src": "10447:117:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10686:478:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10735:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "10737:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "10737:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10737:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10714:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10722:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10710:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10710:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10729:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10706:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10706:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "10699:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "10699:35:19" + }, + "nodeType": "YulIf", + "src": "10696:122:19" + }, + { + "nodeType": "YulAssignment", + "src": "10827:30:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10850:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "10837:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "10837:20:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10827:6:19" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10900:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "10902:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "10902:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10902:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10872:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10880:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10869:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "10869:30:19" + }, + "nodeType": "YulIf", + "src": "10866:117:19" + }, + { + "nodeType": "YulAssignment", + "src": "10992:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11008:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11016:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11004:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11004:17:19" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "10992:8:19" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11075:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "11077:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "11077:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11077:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "11040:8:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11054:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11062:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "11050:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11050:17:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11036:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11036:32:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11070:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11033:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "11033:41:19" + }, + "nodeType": "YulIf", + "src": "11030:128:19" + } + ] + }, + "name": "abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10653:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10661:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "10669:8:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "10679:6:19", + "type": "" + } + ], + "src": "10585:579:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11299:597:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11345:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "11347:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "11347:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11347:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11320:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11329:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11316:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11316:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11341:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11312:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11312:32:19" + }, + "nodeType": "YulIf", + "src": "11309:119:19" + }, + { + "nodeType": "YulBlock", + "src": "11438:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11453:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11467:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11457:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11482:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11517:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11528:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11513:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11513:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11537:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "11492:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "11492:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11482:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11565:324:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11580:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11611:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11622:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11607:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11607:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "11594:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "11594:32:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11584:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11673:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "11675:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "11675:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11675:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11645:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11653:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11642:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "11642:30:19" + }, + "nodeType": "YulIf", + "src": "11639:117:19" + }, + { + "nodeType": "YulAssignment", + "src": "11770:109:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11851:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11862:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11847:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11847:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11871:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "11788:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "11788:91:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "11770:6:19" + }, + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "11778:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11253:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "11264:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11276:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "11284:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "11292:6:19", + "type": "" + } + ], + "src": "11170:726:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11942:76:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11996:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12005:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12008:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11998:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "11998:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11998:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11965:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11987:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "11972:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "11972:21:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "11962:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "11962:32:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11955:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "11955:40:19" + }, + "nodeType": "YulIf", + "src": "11952:60:19" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11935:5:19", + "type": "" + } + ], + "src": "11902:116:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12073:84:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12083:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12105:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12092:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "12092:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12083:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12145:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "12121:23:19" + }, + "nodeType": "YulFunctionCall", + "src": "12121:30:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12121:30:19" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12051:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12059:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12067:5:19", + "type": "" + } + ], + "src": "12024:133:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12243:388:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12289:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12291:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "12291:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12291:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12264:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12273:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12260:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12260:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12285:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12256:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12256:32:19" + }, + "nodeType": "YulIf", + "src": "12253:119:19" + }, + { + "nodeType": "YulBlock", + "src": "12382:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12397:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12411:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12401:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12426:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12461:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12472:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12457:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12457:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12481:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "12436:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "12436:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12426:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "12509:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12524:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12538:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12528:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12554:60:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12586:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12597:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12582:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12582:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12606:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "12564:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "12564:50:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12554:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12205:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12216:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12228:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12236:6:19", + "type": "" + } + ], + "src": "12163:468:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12726:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12743:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12746:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12736:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "12736:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12736:12:19" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "12637:117:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12788:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12805:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12808:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12798:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "12798:88:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12798:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12902:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12905:4:19", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12895:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "12895:15:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12895:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12926:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12929:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12919:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "12919:15:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12919:15:19" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "12760:180:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12989:238:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12999:58:19", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13021:6:19" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "13051:4:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "13029:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "13029:27:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13017:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13017:40:19" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "13003:10:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13168:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "13170:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "13170:18:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13170:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "13111:10:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13123:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13108:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "13108:34:19" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "13147:10:19" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13159:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "13144:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "13144:22:19" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "13105:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "13105:62:19" + }, + "nodeType": "YulIf", + "src": "13102:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13206:2:19", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "13210:10:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13199:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "13199:22:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13199:22:19" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "12975:6:19", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "12983:4:19", + "type": "" + } + ], + "src": "12946:281:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13274:88:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13284:30:19", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "13294:18:19" + }, + "nodeType": "YulFunctionCall", + "src": "13294:20:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13284:6:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13343:6:19" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "13351:4:19" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "13323:19:19" + }, + "nodeType": "YulFunctionCall", + "src": "13323:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13323:33:19" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "13258:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "13267:6:19", + "type": "" + } + ], + "src": "13233:129:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13434:241:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13539:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "13541:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "13541:18:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13541:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13511:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13519:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13508:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "13508:30:19" + }, + "nodeType": "YulIf", + "src": "13505:56:19" + }, + { + "nodeType": "YulAssignment", + "src": "13571:37:19", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13601:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "13579:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "13579:29:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "13571:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13645:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "13657:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13663:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13653:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13653:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "13645:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13418:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "13429:4:19", + "type": "" + } + ], + "src": "13368:307:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13732:103:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "13755:3:19" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "13760:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13765:6:19" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "13742:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "13742:30:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13742:30:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "13813:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13818:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13809:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13809:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13827:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13802:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "13802:27:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13802:27:19" + } + ] + }, + "name": "copy_calldata_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "13714:3:19", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "13719:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13724:6:19", + "type": "" + } + ], + "src": "13681:154:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13924:327:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13934:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14000:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "13959:40:19" + }, + "nodeType": "YulFunctionCall", + "src": "13959:48:19" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "13943:15:19" + }, + "nodeType": "YulFunctionCall", + "src": "13943:65:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "13934:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "14024:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14031:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14017:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "14017:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14017:21:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "14047:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "14062:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14069:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14058:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14058:16:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "14051:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14112:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "14114:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "14114:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14114:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "14093:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14098:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14089:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14089:16:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14107:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "14086:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "14086:25:19" + }, + "nodeType": "YulIf", + "src": "14083:112:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "14228:3:19" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "14233:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14238:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "14204:23:19" + }, + "nodeType": "YulFunctionCall", + "src": "14204:41:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14204:41:19" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "13897:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13902:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13910:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "13918:5:19", + "type": "" + } + ], + "src": "13841:410:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14331:277:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14380:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "14382:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "14382:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14382:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14359:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14367:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14355:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14355:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14374:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14351:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14351:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "14344:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "14344:35:19" + }, + "nodeType": "YulIf", + "src": "14341:122:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "14472:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14499:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "14486:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "14486:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "14476:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14515:87:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14575:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14583:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14571:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14571:17:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14590:6:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14598:3:19" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "14524:46:19" + }, + "nodeType": "YulFunctionCall", + "src": "14524:78:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "14515:5:19" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14309:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14317:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "14325:5:19", + "type": "" + } + ], + "src": "14270:338:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14740:817:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14787:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "14789:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "14789:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14789:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14761:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14770:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14757:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14757:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14782:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14753:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14753:33:19" + }, + "nodeType": "YulIf", + "src": "14750:120:19" + }, + { + "nodeType": "YulBlock", + "src": "14880:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14895:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14909:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14899:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14924:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14959:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14970:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14955:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14955:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14979:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "14934:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "14934:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14924:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "15007:118:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "15022:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15036:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "15026:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15052:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15087:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15098:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15083:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15083:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15107:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "15062:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "15062:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "15052:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "15135:118:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "15150:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15164:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "15154:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15180:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15215:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15226:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15211:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15211:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15235:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "15190:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "15190:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "15180:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "15263:287:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "15278:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15309:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15320:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15305:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15305:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "15292:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "15292:32:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "15282:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15371:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "15373:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "15373:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "15373:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15343:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15351:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "15340:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "15340:30:19" + }, + "nodeType": "YulIf", + "src": "15337:117:19" + }, + { + "nodeType": "YulAssignment", + "src": "15468:72:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15512:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15523:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15508:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15508:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15532:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "15478:29:19" + }, + "nodeType": "YulFunctionCall", + "src": "15478:62:19" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "15468:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14686:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14697:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14709:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14717:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "14725:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "14733:6:19", + "type": "" + } + ], + "src": "14614:943:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15646:391:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "15692:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "15694:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "15694:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "15694:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15667:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15676:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15663:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15663:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15688:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "15659:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15659:32:19" + }, + "nodeType": "YulIf", + "src": "15656:119:19" + }, + { + "nodeType": "YulBlock", + "src": "15785:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "15800:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15814:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "15804:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15829:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15864:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15875:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15860:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15860:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15884:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "15839:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "15839:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15829:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "15912:118:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "15927:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15941:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "15931:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15957:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15992:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "16003:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15988:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15988:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "16012:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "15967:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "15967:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "15957:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15608:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "15619:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15631:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "15639:6:19", + "type": "" + } + ], + "src": "15563:474:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16071:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16088:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16091:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16081:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16081:88:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16081:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16185:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16188:4:19", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16178:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16178:15:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16178:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16209:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16212:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "16202:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16202:15:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16202:15:19" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "16043:180:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16280:269:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16290:22:19", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "16304:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16310:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "16300:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16300:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16290:6:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "16321:38:19", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "16351:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16357:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "16347:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16347:12:19" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "16325:18:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16398:51:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16412:27:19", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16426:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16434:4:19", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "16422:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16422:17:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16412:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "16378:18:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "16371:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16371:26:19" + }, + "nodeType": "YulIf", + "src": "16368:81:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16501:42:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "16515:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "16515:18:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16515:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "16465:18:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16488:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16496:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "16485:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "16485:14:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "16462:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "16462:38:19" + }, + "nodeType": "YulIf", + "src": "16459:84:19" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "16264:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "16273:6:19", + "type": "" + } + ], + "src": "16229:320:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16583:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16600:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16603:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16593:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16593:88:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16593:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16697:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16700:4:19", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16690:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16690:15:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16690:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16721:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16724:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "16714:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16714:15:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16714:15:19" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "16555:180:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16769:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16786:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16789:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16779:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16779:88:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16779:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16883:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16886:4:19", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16876:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16876:15:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16876:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16907:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16910:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "16900:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16900:15:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16900:15:19" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "16741:180:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16970:190:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16980:33:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17007:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "16989:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "16989:24:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16980:5:19" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17103:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "17105:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "17105:18:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17105:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17028:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17035:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "17025:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "17025:77:19" + }, + "nodeType": "YulIf", + "src": "17022:103:19" + }, + { + "nodeType": "YulAssignment", + "src": "17134:20:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17145:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17152:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17141:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17141:13:19" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "17134:3:19" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16956:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "16966:3:19", + "type": "" + } + ], + "src": "16927:233:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17272:114:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17294:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17302:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17290:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17290:14:19" + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17306:34:19", + "type": "", + "value": "ERC721: approval to current owne" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17283:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "17283:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17283:58:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17362:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17370:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17358:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17358:15:19" + }, + { + "hexValue": "72", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17375:3:19", + "type": "", + "value": "r" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17351:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "17351:28:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17351:28:19" + } + ] + }, + "name": "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17264:6:19", + "type": "" + } + ], + "src": "17166:220:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17538:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17548:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17614:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17619:2:19", + "type": "", + "value": "33" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17555:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "17555:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17548:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17720:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "nodeType": "YulIdentifier", + "src": "17631:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "17631:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17631:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "17733:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17744:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17749:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17740:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17740:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17733:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17526:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17534:3:19", + "type": "" + } + ], + "src": "17392:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17935:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17945:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17957:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17968:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17953:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17953:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17945:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17992:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18003:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17988:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17988:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18011:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18017:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18007:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18007:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17981:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "17981:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17981:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "18037:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18171:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18045:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "18045:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18037:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17915:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17930:4:19", + "type": "" + } + ], + "src": "17764:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18295:142:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "18317:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18325:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18313:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18313:14:19" + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "18329:34:19", + "type": "", + "value": "ERC721: approve caller is not to" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18306:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "18306:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "18306:58:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "18385:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18393:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18381:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18381:15:19" + }, + { + "hexValue": "6b656e206f776e6572206f7220617070726f76656420666f7220616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "18398:31:19", + "type": "", + "value": "ken owner or approved for all" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18374:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "18374:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "18374:56:19" + } + ] + }, + "name": "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "18287:6:19", + "type": "" + } + ], + "src": "18189:248:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18589:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18599:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18665:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18670:2:19", + "type": "", + "value": "61" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18606:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "18606:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18599:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18771:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "nodeType": "YulIdentifier", + "src": "18682:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "18682:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "18682:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "18784:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18795:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18800:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18791:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18791:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "18784:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18577:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "18585:3:19", + "type": "" + } + ], + "src": "18443:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18986:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18996:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19008:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19019:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19004:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19004:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18996:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19043:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19054:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19039:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19039:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19062:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19068:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19058:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19058:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19032:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19032:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19032:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "19088:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19222:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19096:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "19096:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19088:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18966:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18981:4:19", + "type": "" + } + ], + "src": "18815:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19346:126:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19368:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19376:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19364:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19364:14:19" + }, + { + "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19380:34:19", + "type": "", + "value": "ERC721: caller is not token owne" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19357:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19357:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19357:58:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19436:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19444:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19432:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19432:15:19" + }, + { + "hexValue": "72206f7220617070726f766564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19449:15:19", + "type": "", + "value": "r or approved" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19425:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19425:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19425:40:19" + } + ] + }, + "name": "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19338:6:19", + "type": "" + } + ], + "src": "19240:232:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19624:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19634:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19700:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19705:2:19", + "type": "", + "value": "45" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19641:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "19641:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19634:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19806:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "nodeType": "YulIdentifier", + "src": "19717:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "19717:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19717:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "19819:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19830:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19835:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19826:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19826:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19819:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19612:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19620:3:19", + "type": "" + } + ], + "src": "19478:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20021:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20031:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20043:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20054:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20039:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20039:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20031:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20078:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20089:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20074:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20074:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20097:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20103:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20093:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20093:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20067:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20067:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20067:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "20123:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20257:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20131:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "20131:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20123:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "20001:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "20016:4:19", + "type": "" + } + ], + "src": "19850:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20364:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20381:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20384:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "20374:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20374:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20374:12:19" + } + ] + }, + "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", + "nodeType": "YulFunctionDefinition", + "src": "20275:117:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20487:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20504:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20507:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "20497:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20497:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20497:12:19" + } + ] + }, + "name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a", + "nodeType": "YulFunctionDefinition", + "src": "20398:117:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20610:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20627:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20630:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "20620:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20620:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20620:12:19" + } + ] + }, + "name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e", + "nodeType": "YulFunctionDefinition", + "src": "20521:117:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20734:634:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "20744:51:19", + "value": { + "arguments": [ + { + "name": "ptr_to_tail", + "nodeType": "YulIdentifier", + "src": "20783:11:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "20770:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "20770:25:19" + }, + "variables": [ + { + "name": "rel_offset_of_tail", + "nodeType": "YulTypedName", + "src": "20748:18:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20889:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", + "nodeType": "YulIdentifier", + "src": "20891:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "20891:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20891:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "rel_offset_of_tail", + "nodeType": "YulIdentifier", + "src": "20818:18:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nodeType": "YulIdentifier", + "src": "20846:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "20846:14:19" + }, + { + "name": "base_ref", + "nodeType": "YulIdentifier", + "src": "20862:8:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20842:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20842:29:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20877:4:19", + "type": "", + "value": "0x20" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20883:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20873:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20873:12:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20838:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20838:48:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "20814:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20814:73:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "20807:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20807:81:19" + }, + "nodeType": "YulIf", + "src": "20804:168:19" + }, + { + "nodeType": "YulAssignment", + "src": "20981:41:19", + "value": { + "arguments": [ + { + "name": "base_ref", + "nodeType": "YulIdentifier", + "src": "20993:8:19" + }, + { + "name": "rel_offset_of_tail", + "nodeType": "YulIdentifier", + "src": "21003:18:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20989:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20989:33:19" + }, + "variableNames": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "20981:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21032:28:19", + "value": { + "arguments": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "21055:4:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "21042:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "21042:18:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21032:6:19" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21103:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a", + "nodeType": "YulIdentifier", + "src": "21105:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "21105:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21105:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21075:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21083:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "21072:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "21072:30:19" + }, + "nodeType": "YulIf", + "src": "21069:117:19" + }, + { + "nodeType": "YulAssignment", + "src": "21195:21:19", + "value": { + "arguments": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "21207:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21213:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21203:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21203:13:19" + }, + "variableNames": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "21195:4:19" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21278:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e", + "nodeType": "YulIdentifier", + "src": "21280:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "21280:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21280:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "21232:4:19" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nodeType": "YulIdentifier", + "src": "21242:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "21242:14:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21262:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21270:4:19", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "21258:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21258:17:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "21238:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21238:38:19" + } + ], + "functionName": { + "name": "sgt", + "nodeType": "YulIdentifier", + "src": "21228:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21228:49:19" + }, + "nodeType": "YulIf", + "src": "21225:136:19" + } + ] + }, + "name": "access_calldata_tail_t_bytes_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base_ref", + "nodeType": "YulTypedName", + "src": "20695:8:19", + "type": "" + }, + { + "name": "ptr_to_tail", + "nodeType": "YulTypedName", + "src": "20705:11:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "addr", + "nodeType": "YulTypedName", + "src": "20721:4:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "20727:6:19", + "type": "" + } + ], + "src": "20644:724:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21418:261:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21428:25:19", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21451:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "21433:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "21433:20:19" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21428:1:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21462:25:19", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21485:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "21467:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "21467:20:19" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21462:1:19" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21625:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "21627:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "21627:18:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21627:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21546:1:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21553:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21621:1:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "21549:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21549:74:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "21543:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "21543:81:19" + }, + "nodeType": "YulIf", + "src": "21540:107:19" + }, + { + "nodeType": "YulAssignment", + "src": "21657:16:19", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21668:1:19" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21671:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21664:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21664:9:19" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "21657:3:19" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "21405:1:19", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "21408:1:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "21414:3:19", + "type": "" + } + ], + "src": "21374:305:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21791:124:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "21813:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21821:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21809:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21809:14:19" + }, + { + "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f75", + "kind": "string", + "nodeType": "YulLiteral", + "src": "21825:34:19", + "type": "", + "value": "ERC721Enumerable: owner index ou" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21802:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21802:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21802:58:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "21881:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21889:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21877:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21877:15:19" + }, + { + "hexValue": "74206f6620626f756e6473", + "kind": "string", + "nodeType": "YulLiteral", + "src": "21894:13:19", + "type": "", + "value": "t of bounds" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21870:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21870:38:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21870:38:19" + } + ] + }, + "name": "store_literal_in_memory_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "21783:6:19", + "type": "" + } + ], + "src": "21685:230:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22067:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22077:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22143:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22148:2:19", + "type": "", + "value": "43" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22084:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "22084:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22077:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22249:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", + "nodeType": "YulIdentifier", + "src": "22160:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "22160:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22160:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "22262:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22273:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22278:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22269:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22269:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "22262:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22055:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22063:3:19", + "type": "" + } + ], + "src": "21921:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22464:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22474:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22486:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22497:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22482:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22482:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22474:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22521:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22532:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22517:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22517:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22540:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22546:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22536:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22536:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22510:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22510:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22510:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "22566:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22700:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22574:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "22574:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22566:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22444:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "22459:4:19", + "type": "" + } + ], + "src": "22293:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22824:125:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "22846:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22854:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22842:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22842:14:19" + }, + { + "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "22858:34:19", + "type": "", + "value": "ERC721Enumerable: global index o" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22835:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22835:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22835:58:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "22914:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22922:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22910:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22910:15:19" + }, + { + "hexValue": "7574206f6620626f756e6473", + "kind": "string", + "nodeType": "YulLiteral", + "src": "22927:14:19", + "type": "", + "value": "ut of bounds" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22903:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22903:39:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22903:39:19" + } + ] + }, + "name": "store_literal_in_memory_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "22816:6:19", + "type": "" + } + ], + "src": "22718:231:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23101:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23111:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23177:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23182:2:19", + "type": "", + "value": "44" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23118:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "23118:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23111:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23283:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", + "nodeType": "YulIdentifier", + "src": "23194:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "23194:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23194:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "23296:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23307:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23312:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23303:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23303:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23296:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "23089:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23097:3:19", + "type": "" + } + ], + "src": "22955:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23498:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23508:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23520:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23531:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23516:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23516:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23508:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23555:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23566:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23551:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23551:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23574:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23580:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "23570:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23570:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23544:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23544:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23544:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "23600:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23734:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23608:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "23608:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23600:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "23478:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "23493:4:19", + "type": "" + } + ], + "src": "23327:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23858:68:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "23880:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23888:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23876:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23876:14:19" + }, + { + "hexValue": "4552433732313a20696e76616c696420746f6b656e204944", + "kind": "string", + "nodeType": "YulLiteral", + "src": "23892:26:19", + "type": "", + "value": "ERC721: invalid token ID" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23869:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23869:50:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23869:50:19" + } + ] + }, + "name": "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "23850:6:19", + "type": "" + } + ], + "src": "23752:174:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24078:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24088:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24154:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24159:2:19", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24095:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "24095:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24088:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24260:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "nodeType": "YulIdentifier", + "src": "24171:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "24171:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24171:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "24273:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24284:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24289:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24280:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24280:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "24273:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "24066:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "24074:3:19", + "type": "" + } + ], + "src": "23932:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24475:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24485:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24497:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24508:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24493:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24493:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24485:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24532:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24543:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24528:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24528:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24551:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24557:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "24547:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24547:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24521:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24521:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24521:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "24577:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24711:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24585:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "24585:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24577:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24455:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "24470:4:19", + "type": "" + } + ], + "src": "24304:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24835:122:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "24857:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24865:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24853:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24853:14:19" + }, + { + "hexValue": "4552433732313a2061646472657373207a65726f206973206e6f742061207661", + "kind": "string", + "nodeType": "YulLiteral", + "src": "24869:34:19", + "type": "", + "value": "ERC721: address zero is not a va" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24846:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24846:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24846:58:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "24925:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24933:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24921:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24921:15:19" + }, + { + "hexValue": "6c6964206f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "24938:11:19", + "type": "", + "value": "lid owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24914:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24914:36:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24914:36:19" + } + ] + }, + "name": "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "24827:6:19", + "type": "" + } + ], + "src": "24729:228:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25109:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25119:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25185:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25190:2:19", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25126:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "25126:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25119:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25291:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "nodeType": "YulIdentifier", + "src": "25202:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "25202:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25202:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "25304:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25315:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25320:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25311:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25311:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "25304:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25097:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25105:3:19", + "type": "" + } + ], + "src": "24963:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25506:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25516:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25528:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25539:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25524:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25524:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25516:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25563:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25574:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25559:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25559:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25582:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25588:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25578:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25578:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25552:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25552:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25552:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "25608:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25742:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25616:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "25616:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25608:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "25486:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "25501:4:19", + "type": "" + } + ], + "src": "25335:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25866:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "25888:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25896:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25884:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25884:14:19" + }, + { + "hexValue": "696e76616c696420746f6b656e49642e206d7573742062652023393939", + "kind": "string", + "nodeType": "YulLiteral", + "src": "25900:31:19", + "type": "", + "value": "invalid tokenId. must be #999" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25877:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25877:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25877:55:19" + } + ] + }, + "name": "store_literal_in_memory_a694c7d0af81c0139c2d9cf9013fb42115382a7b8abc6fa7e09c0326c0773524", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "25858:6:19", + "type": "" + } + ], + "src": "25760:179:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26091:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26101:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26167:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26172:2:19", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26108:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "26108:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26101:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26273:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_a694c7d0af81c0139c2d9cf9013fb42115382a7b8abc6fa7e09c0326c0773524", + "nodeType": "YulIdentifier", + "src": "26184:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "26184:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26184:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "26286:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26297:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26302:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26293:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26293:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26286:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_a694c7d0af81c0139c2d9cf9013fb42115382a7b8abc6fa7e09c0326c0773524_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26079:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26087:3:19", + "type": "" + } + ], + "src": "25945:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26488:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26498:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26510:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26521:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26506:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26506:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26498:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26545:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26556:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26541:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26541:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26564:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26570:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "26560:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26560:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26534:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26534:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26534:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "26590:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26724:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_a694c7d0af81c0139c2d9cf9013fb42115382a7b8abc6fa7e09c0326c0773524_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26598:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "26598:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26590:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_a694c7d0af81c0139c2d9cf9013fb42115382a7b8abc6fa7e09c0326c0773524__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "26468:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "26483:4:19", + "type": "" + } + ], + "src": "26317:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26848:62:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "26870:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26878:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26866:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26866:14:19" + }, + { + "hexValue": "696e73756666696369656e742066756e6473", + "kind": "string", + "nodeType": "YulLiteral", + "src": "26882:20:19", + "type": "", + "value": "insufficient funds" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26859:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26859:44:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26859:44:19" + } + ] + }, + "name": "store_literal_in_memory_c6bc4f5b747fbbc581777f92b42c6eac56dbbb4e624c68b8c1a6001ff2001fc5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "26840:6:19", + "type": "" + } + ], + "src": "26742:168:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27062:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27072:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27138:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27143:2:19", + "type": "", + "value": "18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27079:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "27079:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27072:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27244:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_c6bc4f5b747fbbc581777f92b42c6eac56dbbb4e624c68b8c1a6001ff2001fc5", + "nodeType": "YulIdentifier", + "src": "27155:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "27155:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27155:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "27257:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27268:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27273:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27264:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27264:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "27257:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c6bc4f5b747fbbc581777f92b42c6eac56dbbb4e624c68b8c1a6001ff2001fc5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27050:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27058:3:19", + "type": "" + } + ], + "src": "26916:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27459:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27469:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27481:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27492:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27477:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27477:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27469:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27516:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27527:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27512:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27512:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27535:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27541:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "27531:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27531:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27505:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27505:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27505:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "27561:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27695:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c6bc4f5b747fbbc581777f92b42c6eac56dbbb4e624c68b8c1a6001ff2001fc5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27569:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "27569:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27561:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c6bc4f5b747fbbc581777f92b42c6eac56dbbb4e624c68b8c1a6001ff2001fc5__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "27439:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "27454:4:19", + "type": "" + } + ], + "src": "27288:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27819:119:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "27841:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27849:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27837:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27837:14:19" + }, + { + "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061", + "kind": "string", + "nodeType": "YulLiteral", + "src": "27853:34:19", + "type": "", + "value": "Ownable: new owner is the zero a" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27830:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27830:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27830:58:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "27909:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27917:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27905:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27905:15:19" + }, + { + "hexValue": "646472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "27922:8:19", + "type": "", + "value": "ddress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27898:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27898:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27898:33:19" + } + ] + }, + "name": "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "27811:6:19", + "type": "" + } + ], + "src": "27713:225:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28090:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28100:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28166:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28171:2:19", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28107:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "28107:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28100:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28272:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "nodeType": "YulIdentifier", + "src": "28183:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "28183:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28183:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "28285:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28296:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28301:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28292:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28292:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28285:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "28078:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "28086:3:19", + "type": "" + } + ], + "src": "27944:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28487:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28497:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28509:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28520:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28505:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28505:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28497:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28544:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28555:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28540:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28540:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28563:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28569:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "28559:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28559:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28533:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28533:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28533:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "28589:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28723:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28597:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "28597:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28589:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "28467:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "28482:4:19", + "type": "" + } + ], + "src": "28316:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28847:118:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "28869:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28877:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28865:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28865:14:19" + }, + { + "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f727265637420", + "kind": "string", + "nodeType": "YulLiteral", + "src": "28881:34:19", + "type": "", + "value": "ERC721: transfer from incorrect " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28858:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28858:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28858:58:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "28937:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28945:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28933:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28933:15:19" + }, + { + "hexValue": "6f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "28950:7:19", + "type": "", + "value": "owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28926:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28926:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28926:32:19" + } + ] + }, + "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "28839:6:19", + "type": "" + } + ], + "src": "28741:224:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29117:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29127:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29193:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29198:2:19", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29134:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "29134:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29127:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29299:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "nodeType": "YulIdentifier", + "src": "29210:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "29210:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29210:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "29312:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29323:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29328:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29319:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29319:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29312:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29105:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29113:3:19", + "type": "" + } + ], + "src": "28971:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29514:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29524:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29536:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29547:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29532:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29532:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29524:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29571:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29582:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29567:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29567:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29590:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29596:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "29586:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29586:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29560:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29560:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29560:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "29616:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29750:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29624:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "29624:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29616:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "29494:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "29509:4:19", + "type": "" + } + ], + "src": "29343:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29874:117:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "29896:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29904:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29892:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29892:14:19" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f20616464", + "kind": "string", + "nodeType": "YulLiteral", + "src": "29908:34:19", + "type": "", + "value": "ERC721: transfer to the zero add" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29885:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29885:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29885:58:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "29964:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29972:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29960:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29960:15:19" + }, + { + "hexValue": "72657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "29977:6:19", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29953:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29953:31:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29953:31:19" + } + ] + }, + "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "29866:6:19", + "type": "" + } + ], + "src": "29768:223:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30143:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30153:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30219:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30224:2:19", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30160:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "30160:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30153:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30325:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "nodeType": "YulIdentifier", + "src": "30236:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "30236:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30236:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "30338:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30349:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30354:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30345:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30345:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30338:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30131:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30139:3:19", + "type": "" + } + ], + "src": "29997:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30540:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30550:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30562:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30573:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30558:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30558:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30550:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30597:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30608:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30593:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30593:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30616:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30622:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "30612:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30612:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30586:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30586:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30586:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "30642:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30776:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30650:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "30650:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30642:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "30520:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "30535:4:19", + "type": "" + } + ], + "src": "30369:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30900:76:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30922:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30930:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30918:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30918:14:19" + }, + { + "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "30934:34:19", + "type": "", + "value": "Ownable: caller is not the owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30911:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30911:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30911:58:19" + } + ] + }, + "name": "store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "30892:6:19", + "type": "" + } + ], + "src": "30794:182:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31128:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31138:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31204:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31209:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31145:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "31145:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31138:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31310:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "nodeType": "YulIdentifier", + "src": "31221:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "31221:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31221:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "31323:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31334:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31339:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31330:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31330:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31323:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31116:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31124:3:19", + "type": "" + } + ], + "src": "30982:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31525:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31535:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31547:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31558:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31543:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31543:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "31535:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31582:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31593:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31578:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31578:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "31601:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31607:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "31597:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31597:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31571:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31571:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31571:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "31627:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "31761:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31635:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "31635:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "31627:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "31505:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "31520:4:19", + "type": "" + } + ], + "src": "31354:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31893:34:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31903:18:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31918:3:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "31903:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31865:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "31870:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "31881:11:19", + "type": "" + } + ], + "src": "31779:148:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32039:108:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "32061:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32069:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32057:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32057:14:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32073:66:19", + "type": "", + "value": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32050:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32050:90:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32050:90:19" + } + ] + }, + "name": "store_literal_in_memory_bc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "32031:6:19", + "type": "" + } + ], + "src": "31933:214:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32317:236:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32327:91:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32411:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32416:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "32334:76:19" + }, + "nodeType": "YulFunctionCall", + "src": "32334:84:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32327:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32516:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_bc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nodeType": "YulIdentifier", + "src": "32427:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "32427:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32427:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "32529:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32540:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32545:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32536:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32536:11:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "32529:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_bc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32305:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "32313:3:19", + "type": "" + } + ], + "src": "32153:400:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32617:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32628:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32644:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "32638:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "32638:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "32628:6:19" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32600:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "32610:6:19", + "type": "" + } + ], + "src": "32559:98:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32776:34:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32786:18:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32801:3:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "32786:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32748:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "32753:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "32764:11:19", + "type": "" + } + ], + "src": "32663:147:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32924:265:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "32934:52:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32980:5:19" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "32948:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "32948:38:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "32938:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "32995:95:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33078:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "33083:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "33002:75:19" + }, + "nodeType": "YulFunctionCall", + "src": "33002:88:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32995:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33125:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33132:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33121:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33121:16:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33139:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "33144:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "33099:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "33099:52:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33099:52:19" + }, + { + "nodeType": "YulAssignment", + "src": "33160:23:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33171:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "33176:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33167:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33167:16:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "33160:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32905:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32912:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "32920:3:19", + "type": "" + } + ], + "src": "32816:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33430:302:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33441:155:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33592:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_bc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "33448:142:19" + }, + "nodeType": "YulFunctionCall", + "src": "33448:148:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33441:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "33606:100:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "33693:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33702:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "33613:79:19" + }, + "nodeType": "YulFunctionCall", + "src": "33613:93:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33606:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "33716:10:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33723:3:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "33716:3:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_bc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "33409:3:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "33415:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33426:3:19", + "type": "" + } + ], + "src": "33195:537:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33844:69:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "33866:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33874:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33862:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33862:14:19" + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "33878:27:19", + "type": "", + "value": "ERC721: approve to caller" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33855:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "33855:51:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33855:51:19" + } + ] + }, + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "33836:6:19", + "type": "" + } + ], + "src": "33738:175:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34065:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34075:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34141:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34146:2:19", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34082:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "34082:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34075:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34247:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulIdentifier", + "src": "34158:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "34158:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34158:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "34260:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34271:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34276:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34267:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34267:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "34260:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "34053:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34061:3:19", + "type": "" + } + ], + "src": "33919:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34462:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34472:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34484:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34495:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34480:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34480:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34472:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34519:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34530:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34515:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34515:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34538:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34544:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "34534:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34534:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34508:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "34508:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34508:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "34564:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34698:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34572:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "34572:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34564:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "34442:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "34457:4:19", + "type": "" + } + ], + "src": "34291:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34822:131:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "34844:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34852:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34840:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34840:14:19" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e204552433732315265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "34856:34:19", + "type": "", + "value": "ERC721: transfer to non ERC721Re" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34833:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "34833:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34833:58:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "34912:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34920:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34908:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34908:15:19" + }, + { + "hexValue": "63656976657220696d706c656d656e746572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "34925:20:19", + "type": "", + "value": "ceiver implementer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34901:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "34901:45:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34901:45:19" + } + ] + }, + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "34814:6:19", + "type": "" + } + ], + "src": "34716:237:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35105:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35115:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35181:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35186:2:19", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35122:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "35122:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35115:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35287:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulIdentifier", + "src": "35198:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "35198:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35198:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "35300:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35311:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35316:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35307:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35307:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "35300:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "35093:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "35101:3:19", + "type": "" + } + ], + "src": "34959:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35502:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35512:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35524:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35535:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35520:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35520:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35512:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35559:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35570:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35555:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35555:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35578:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35584:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "35574:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35574:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35548:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35548:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35548:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "35604:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35738:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35612:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "35612:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35604:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "35482:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "35497:4:19", + "type": "" + } + ], + "src": "35331:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35801:146:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35811:25:19", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "35834:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "35816:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "35816:20:19" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "35811:1:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "35845:25:19", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "35868:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "35850:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "35850:20:19" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "35845:1:19" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35892:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "35894:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "35894:18:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35894:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "35886:1:19" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "35889:1:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "35883:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "35883:8:19" + }, + "nodeType": "YulIf", + "src": "35880:34:19" + }, + { + "nodeType": "YulAssignment", + "src": "35924:17:19", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "35936:1:19" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "35939:1:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "35932:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35932:9:19" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "35924:4:19" + } + ] + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "35787:1:19", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "35790:1:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "35796:4:19", + "type": "" + } + ], + "src": "35756:191:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36004:51:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36014:34:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36039:1:19", + "type": "", + "value": "1" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36042:5:19" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "36035:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36035:13:19" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "36014:8:19" + } + ] + } + ] + }, + "name": "shift_right_1_unsigned", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "35985:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "35995:8:19", + "type": "" + } + ], + "src": "35953:102:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36134:775:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36144:15:19", + "value": { + "name": "_power", + "nodeType": "YulIdentifier", + "src": "36153:6:19" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "36144:5:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "36168:14:19", + "value": { + "name": "_base", + "nodeType": "YulIdentifier", + "src": "36177:5:19" + }, + "variableNames": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "36168:4:19" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36226:677:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "36314:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "36316:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "36316:18:19" + }, + "nodeType": "YulExpressionStatement", + "src": "36316:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "36292:4:19" + }, + { + "arguments": [ + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "36302:3:19" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "36307:4:19" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "36298:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36298:14:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "36289:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "36289:24:19" + }, + "nodeType": "YulIf", + "src": "36286:50:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36381:419:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36761:25:19", + "value": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "36774:5:19" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "36781:4:19" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "36770:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36770:16:19" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "36761:5:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "36356:8:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36366:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "36352:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36352:16:19" + }, + "nodeType": "YulIf", + "src": "36349:451:19" + }, + { + "nodeType": "YulAssignment", + "src": "36813:23:19", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "36825:4:19" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "36831:4:19" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "36821:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36821:15:19" + }, + "variableNames": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "36813:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "36849:44:19", + "value": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "36884:8:19" + } + ], + "functionName": { + "name": "shift_right_1_unsigned", + "nodeType": "YulIdentifier", + "src": "36861:22:19" + }, + "nodeType": "YulFunctionCall", + "src": "36861:32:19" + }, + "variableNames": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "36849:8:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "36202:8:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36212:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "36199:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "36199:15:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "36215:2:19", + "statements": [] + }, + "pre": { + "nodeType": "YulBlock", + "src": "36195:3:19", + "statements": [] + }, + "src": "36191:712:19" + } + ] + }, + "name": "checked_exp_helper", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "_power", + "nodeType": "YulTypedName", + "src": "36089:6:19", + "type": "" + }, + { + "name": "_base", + "nodeType": "YulTypedName", + "src": "36097:5:19", + "type": "" + }, + { + "name": "exponent", + "nodeType": "YulTypedName", + "src": "36104:8:19", + "type": "" + }, + { + "name": "max", + "nodeType": "YulTypedName", + "src": "36114:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nodeType": "YulTypedName", + "src": "36122:5:19", + "type": "" + }, + { + "name": "base", + "nodeType": "YulTypedName", + "src": "36129:4:19", + "type": "" + } + ], + "src": "36061:848:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36975:1013:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "37170:20:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37172:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37181:1:19", + "type": "", + "value": "1" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "37172:5:19" + } + ] + }, + { + "nodeType": "YulLeave", + "src": "37183:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "37160:8:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "37153:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "37153:16:19" + }, + "nodeType": "YulIf", + "src": "37150:40:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37215:20:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37217:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37226:1:19", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "37217:5:19" + } + ] + }, + { + "nodeType": "YulLeave", + "src": "37228:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "37209:4:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "37202:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "37202:12:19" + }, + "nodeType": "YulIf", + "src": "37199:36:19" + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "37345:20:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37347:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37356:1:19", + "type": "", + "value": "1" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "37347:5:19" + } + ] + }, + { + "nodeType": "YulLeave", + "src": "37358:5:19" + } + ] + }, + "nodeType": "YulCase", + "src": "37338:27:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37343:1:19", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37389:176:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "37424:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "37426:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "37426:18:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37426:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "37409:8:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37419:3:19", + "type": "", + "value": "255" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "37406:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "37406:17:19" + }, + "nodeType": "YulIf", + "src": "37403:43:19" + }, + { + "nodeType": "YulAssignment", + "src": "37459:25:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37472:1:19", + "type": "", + "value": "2" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "37475:8:19" + } + ], + "functionName": { + "name": "exp", + "nodeType": "YulIdentifier", + "src": "37468:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37468:16:19" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "37459:5:19" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37515:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "37517:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "37517:18:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37517:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "37503:5:19" + }, + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "37510:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "37500:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "37500:14:19" + }, + "nodeType": "YulIf", + "src": "37497:40:19" + }, + { + "nodeType": "YulLeave", + "src": "37550:5:19" + } + ] + }, + "nodeType": "YulCase", + "src": "37374:191:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37379:1:19", + "type": "", + "value": "2" + } + } + ], + "expression": { + "name": "base", + "nodeType": "YulIdentifier", + "src": "37295:4:19" + }, + "nodeType": "YulSwitch", + "src": "37288:277:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37697:123:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37711:28:19", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "37724:4:19" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "37730:8:19" + } + ], + "functionName": { + "name": "exp", + "nodeType": "YulIdentifier", + "src": "37720:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37720:19:19" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "37711:5:19" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37770:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "37772:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "37772:18:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37772:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "37758:5:19" + }, + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "37765:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "37755:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "37755:14:19" + }, + "nodeType": "YulIf", + "src": "37752:40:19" + }, + { + "nodeType": "YulLeave", + "src": "37805:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "37600:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37606:2:19", + "type": "", + "value": "11" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "37597:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "37597:12:19" + }, + { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "37614:8:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37624:2:19", + "type": "", + "value": "78" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "37611:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "37611:16:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "37593:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37593:35:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "37649:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37655:3:19", + "type": "", + "value": "307" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "37646:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "37646:13:19" + }, + { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "37664:8:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37674:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "37661:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "37661:16:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "37642:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37642:36:19" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "37577:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "37577:111:19" + }, + "nodeType": "YulIf", + "src": "37574:246:19" + }, + { + "nodeType": "YulAssignment", + "src": "37830:57:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37864:1:19", + "type": "", + "value": "1" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "37867:4:19" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "37873:8:19" + }, + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "37883:3:19" + } + ], + "functionName": { + "name": "checked_exp_helper", + "nodeType": "YulIdentifier", + "src": "37845:18:19" + }, + "nodeType": "YulFunctionCall", + "src": "37845:42:19" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "37830:5:19" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "37837:4:19" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37926:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "37928:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "37928:18:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37928:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "37903:5:19" + }, + { + "arguments": [ + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "37914:3:19" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "37919:4:19" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "37910:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37910:14:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "37900:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "37900:25:19" + }, + "nodeType": "YulIf", + "src": "37897:51:19" + }, + { + "nodeType": "YulAssignment", + "src": "37957:25:19", + "value": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "37970:5:19" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "37977:4:19" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "37966:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37966:16:19" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "37957:5:19" + } + ] + } + ] + }, + "name": "checked_exp_unsigned", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base", + "nodeType": "YulTypedName", + "src": "36945:4:19", + "type": "" + }, + { + "name": "exponent", + "nodeType": "YulTypedName", + "src": "36951:8:19", + "type": "" + }, + { + "name": "max", + "nodeType": "YulTypedName", + "src": "36961:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nodeType": "YulTypedName", + "src": "36969:5:19", + "type": "" + } + ], + "src": "36915:1073:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38060:219:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "38070:31:19", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "38096:4:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "38078:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "38078:23:19" + }, + "variableNames": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "38070:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "38110:39:19", + "value": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "38140:8:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "38122:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "38122:27:19" + }, + "variableNames": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "38110:8:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "38159:113:19", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "38189:4:19" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "38195:8:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38205:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "checked_exp_unsigned", + "nodeType": "YulIdentifier", + "src": "38168:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "38168:104:19" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "38159:5:19" + } + ] + } + ] + }, + "name": "checked_exp_t_uint256_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base", + "nodeType": "YulTypedName", + "src": "38035:4:19", + "type": "" + }, + { + "name": "exponent", + "nodeType": "YulTypedName", + "src": "38041:8:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nodeType": "YulTypedName", + "src": "38054:5:19", + "type": "" + } + ], + "src": "37994:285:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38391:134:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "38413:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38421:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38409:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38409:14:19" + }, + { + "hexValue": "455243373231456e756d657261626c653a20636f6e7365637574697665207472", + "kind": "string", + "nodeType": "YulLiteral", + "src": "38425:34:19", + "type": "", + "value": "ERC721Enumerable: consecutive tr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38402:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38402:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38402:58:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "38481:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38489:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38477:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38477:15:19" + }, + { + "hexValue": "616e7366657273206e6f7420737570706f72746564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "38494:23:19", + "type": "", + "value": "ansfers not supported" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38470:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38470:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38470:48:19" + } + ] + }, + "name": "store_literal_in_memory_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "38383:6:19", + "type": "" + } + ], + "src": "38285:240:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38677:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "38687:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38753:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38758:2:19", + "type": "", + "value": "53" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "38694:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "38694:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38687:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38859:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314", + "nodeType": "YulIdentifier", + "src": "38770:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "38770:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38770:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "38872:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38883:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38888:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38879:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38879:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "38872:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38665:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "38673:3:19", + "type": "" + } + ], + "src": "38531:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39074:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39084:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39096:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39107:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39092:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39092:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39084:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39131:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39142:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39127:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39127:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39150:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39156:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "39146:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39146:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "39120:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "39120:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39120:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "39176:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39310:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "39184:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "39184:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39176:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "39054:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "39069:4:19", + "type": "" + } + ], + "src": "38903:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39434:45:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "39456:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39464:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39452:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39452:14:19" + }, + { + "hexValue": "63", + "kind": "string", + "nodeType": "YulLiteral", + "src": "39468:3:19", + "type": "", + "value": "c" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "39445:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "39445:27:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39445:27:19" + } + ] + }, + "name": "store_literal_in_memory_0b42b6393c1f53060fe3ddbfcd7aadcca894465a5a438f69c87d790b2299b9b2", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "39426:6:19", + "type": "" + } + ], + "src": "39328:151:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39649:236:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39659:91:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39743:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39748:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "39666:76:19" + }, + "nodeType": "YulFunctionCall", + "src": "39666:84:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39659:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39848:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_0b42b6393c1f53060fe3ddbfcd7aadcca894465a5a438f69c87d790b2299b9b2", + "nodeType": "YulIdentifier", + "src": "39759:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "39759:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39759:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "39861:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39872:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39877:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39868:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39868:11:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "39861:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0b42b6393c1f53060fe3ddbfcd7aadcca894465a5a438f69c87d790b2299b9b2_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "39637:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "39645:3:19", + "type": "" + } + ], + "src": "39485:400:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39935:49:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39945:33:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "39960:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39967:10:19", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "39956:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39956:22:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "39945:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "39917:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "39927:7:19", + "type": "" + } + ], + "src": "39891:93:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40033:53:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "40043:36:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40068:3:19", + "type": "", + "value": "224" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "40073:5:19" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "40064:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40064:15:19" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "40043:8:19" + } + ] + } + ] + }, + "name": "shift_left_224", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "40014:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "40024:8:19", + "type": "" + } + ], + "src": "39990:96:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40138:48:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "40148:32:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "40174:5:19" + } + ], + "functionName": { + "name": "shift_left_224", + "nodeType": "YulIdentifier", + "src": "40159:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "40159:21:19" + }, + "variableNames": [ + { + "name": "aligned", + "nodeType": "YulIdentifier", + "src": "40148:7:19" + } + ] + } + ] + }, + "name": "leftAlign_t_uint32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "40120:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nodeType": "YulTypedName", + "src": "40130:7:19", + "type": "" + } + ], + "src": "40092:94:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40273:72:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40290:3:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "40331:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint32", + "nodeType": "YulIdentifier", + "src": "40314:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "40314:23:19" + } + ], + "functionName": { + "name": "leftAlign_t_uint32", + "nodeType": "YulIdentifier", + "src": "40295:18:19" + }, + "nodeType": "YulFunctionCall", + "src": "40295:43:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "40283:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "40283:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40283:56:19" + } + ] + }, + "name": "abi_encode_t_uint32_to_t_uint32_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "40261:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "40268:3:19", + "type": "" + } + ], + "src": "40192:153:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40457:108:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "40479:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40487:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40475:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40475:14:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40491:66:19", + "type": "", + "value": "0x80600e6000396000f30000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "40468:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "40468:90:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40468:90:19" + } + ] + }, + "name": "store_literal_in_memory_e60bf27c198d7ff49e9b26b4f7eb58903fb9b75165f2451681c67000b3f2895e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40449:6:19", + "type": "" + } + ], + "src": "40351:214:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40735:236:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "40745:91:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40829:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40834:1:19", + "type": "", + "value": "9" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "40752:76:19" + }, + "nodeType": "YulFunctionCall", + "src": "40752:84:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40745:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40934:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_e60bf27c198d7ff49e9b26b4f7eb58903fb9b75165f2451681c67000b3f2895e", + "nodeType": "YulIdentifier", + "src": "40845:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "40845:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40845:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "40947:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40958:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40963:1:19", + "type": "", + "value": "9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40954:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40954:11:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "40947:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e60bf27c198d7ff49e9b26b4f7eb58903fb9b75165f2451681c67000b3f2895e_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "40723:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "40731:3:19", + "type": "" + } + ], + "src": "40571:400:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41339:577:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "41350:155:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41501:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0b42b6393c1f53060fe3ddbfcd7aadcca894465a5a438f69c87d790b2299b9b2_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "41357:142:19" + }, + "nodeType": "YulFunctionCall", + "src": "41357:148:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41350:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "41575:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41584:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint32_to_t_uint32_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "41515:59:19" + }, + "nodeType": "YulFunctionCall", + "src": "41515:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "41515:73:19" + }, + { + "nodeType": "YulAssignment", + "src": "41597:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41608:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41613:1:19", + "type": "", + "value": "4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41604:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41604:11:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41597:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "41625:155:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41776:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e60bf27c198d7ff49e9b26b4f7eb58903fb9b75165f2451681c67000b3f2895e_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "41632:142:19" + }, + "nodeType": "YulFunctionCall", + "src": "41632:148:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41625:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "41790:100:19", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "41877:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41886:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "41797:79:19" + }, + "nodeType": "YulFunctionCall", + "src": "41797:93:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41790:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "41900:10:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41907:3:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "41900:3:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_0b42b6393c1f53060fe3ddbfcd7aadcca894465a5a438f69c87d790b2299b9b2_t_uint32_t_stringliteral_e60bf27c198d7ff49e9b26b4f7eb58903fb9b75165f2451681c67000b3f2895e_t_bytes_memory_ptr__to_t_string_memory_ptr_t_uint32_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "41310:3:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "41316:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "41324:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "41335:3:19", + "type": "" + } + ], + "src": "40977:939:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "42017:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "42034:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "42039:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "42027:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "42027:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42027:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "42055:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "42074:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42079:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42070:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42070:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "42055:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "41989:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "41994:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "42005:11:19", + "type": "" + } + ], + "src": "41922:168:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "42186:270:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "42196:52:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "42242:5:19" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "42210:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "42210:38:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "42200:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "42257:77:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "42322:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "42327:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "42264:57:19" + }, + "nodeType": "YulFunctionCall", + "src": "42264:70:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "42257:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "42369:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42376:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42365:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42365:16:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "42383:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "42388:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "42343:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "42343:52:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42343:52:19" + }, + { + "nodeType": "YulAssignment", + "src": "42404:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "42415:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "42442:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "42420:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "42420:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42411:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42411:39:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "42404:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "42167:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "42174:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "42182:3:19", + "type": "" + } + ], + "src": "42096:360:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "42662:440:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "42672:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42684:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42695:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42680:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42680:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42672:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "42753:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42766:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42777:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42762:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42762:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "42709:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "42709:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42709:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "42834:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42847:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42858:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42843:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42843:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "42790:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "42790:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42790:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "42916:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42929:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42940:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42925:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42925:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "42872:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "42872:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42872:72:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42965:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42976:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42961:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42961:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42985:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42991:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "42981:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42981:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "42954:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "42954:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42954:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "43011:84:19", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "43081:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43090:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "43019:61:19" + }, + "nodeType": "YulFunctionCall", + "src": "43019:76:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43011:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "42610:9:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "42622:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "42630:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "42638:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "42646:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "42657:4:19", + "type": "" + } + ], + "src": "42462:640:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "43170:79:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "43180:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "43195:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "43189:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "43189:13:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "43180:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "43237:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "43211:25:19" + }, + "nodeType": "YulFunctionCall", + "src": "43211:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43211:32:19" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "43148:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "43156:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "43164:5:19", + "type": "" + } + ], + "src": "43108:141:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "43331:273:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "43377:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "43379:77:19" + }, + "nodeType": "YulFunctionCall", + "src": "43379:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43379:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "43352:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43361:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "43348:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43348:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43373:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "43344:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43344:32:19" + }, + "nodeType": "YulIf", + "src": "43341:119:19" + }, + { + "nodeType": "YulBlock", + "src": "43470:127:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "43485:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43499:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "43489:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "43514:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43559:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "43570:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43555:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43555:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "43579:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulIdentifier", + "src": "43524:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "43524:63:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "43514:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "43301:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "43312:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "43324:6:19", + "type": "" + } + ], + "src": "43255:349:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "43764:288:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "43774:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43786:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43797:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43782:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43782:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43774:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "43854:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43867:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43878:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43863:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43863:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "43810:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "43810:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43810:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "43935:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43948:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43959:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43944:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43944:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "43891:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "43891:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43891:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "44017:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44030:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44041:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44026:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44026:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "43973:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "43973:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43973:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "43720:9:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "43732:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "43740:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "43748:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "43759:4:19", + "type": "" + } + ], + "src": "43610:442:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "44086:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44103:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44106:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "44096:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "44096:88:19" + }, + "nodeType": "YulExpressionStatement", + "src": "44096:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44200:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44203:4:19", + "type": "", + "value": "0x31" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "44193:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "44193:15:19" + }, + "nodeType": "YulExpressionStatement", + "src": "44193:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44224:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44227:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "44217:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "44217:15:19" + }, + "nodeType": "YulExpressionStatement", + "src": "44217:15:19" + } + ] + }, + "name": "panic_error_0x31", + "nodeType": "YulFunctionDefinition", + "src": "44058:180:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "44350:76:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "44372:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44380:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44368:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44368:14:19" + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "44384:34:19", + "type": "", + "value": "ERC721: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "44361:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "44361:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "44361:58:19" + } + ] + }, + "name": "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "44342:6:19", + "type": "" + } + ], + "src": "44244:182:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "44578:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "44588:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "44654:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44659:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "44595:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "44595:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "44588:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "44760:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "nodeType": "YulIdentifier", + "src": "44671:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "44671:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "44671:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "44773:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "44784:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44789:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44780:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44780:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "44773:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "44566:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "44574:3:19", + "type": "" + } + ], + "src": "44432:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "44975:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "44985:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44997:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45008:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44993:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44993:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44985:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45032:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45043:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45028:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45028:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45051:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45057:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "45047:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45047:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "45021:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "45021:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "45021:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "45077:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45211:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "45085:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "45085:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45077:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "44955:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "44970:4:19", + "type": "" + } + ], + "src": "44804:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "45335:72:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "45357:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45365:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45353:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45353:14:19" + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "45369:30:19", + "type": "", + "value": "ERC721: token already minted" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "45346:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "45346:54:19" + }, + "nodeType": "YulExpressionStatement", + "src": "45346:54:19" + } + ] + }, + "name": "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "45327:6:19", + "type": "" + } + ], + "src": "45229:178:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "45559:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "45569:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "45635:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45640:2:19", + "type": "", + "value": "28" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "45576:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "45576:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "45569:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "45741:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "nodeType": "YulIdentifier", + "src": "45652:88:19" + }, + "nodeType": "YulFunctionCall", + "src": "45652:93:19" + }, + "nodeType": "YulExpressionStatement", + "src": "45652:93:19" + }, + { + "nodeType": "YulAssignment", + "src": "45754:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "45765:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45770:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45761:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45761:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "45754:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "45547:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45555:3:19", + "type": "" + } + ], + "src": "45413:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "45956:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "45966:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45978:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45989:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45974:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45974:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45966:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46013:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46024:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46009:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46009:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46032:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46038:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "46028:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46028:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "46002:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "46002:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "46002:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "46058:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46192:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "46066:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "46066:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46058:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "45936:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "45951:4:19", + "type": "" + } + ], + "src": "45785:419:19" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\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 tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_array$_t_bool_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_bool_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_bool_to_t_bool(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encodeUpdatedPos_t_bool_to_t_bool(value0, pos) -> updatedPos {\n abi_encode_t_bool_to_t_bool(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_bool_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // bool[] -> bool[]\n function abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_bool_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_bool_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_bool_to_t_bool(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_bool_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes[]\n function abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approval to current owne\")\n\n mstore(add(memPtr, 32), \"r\")\n\n }\n\n function abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve caller is not to\")\n\n mstore(add(memPtr, 32), \"ken owner or approved for all\")\n\n }\n\n function abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 61)\n store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: caller is not token owne\")\n\n mstore(add(memPtr, 32), \"r or approved\")\n\n }\n\n function abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n revert(0, 0)\n }\n\n function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n revert(0, 0)\n }\n\n function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n revert(0, 0)\n }\n\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function store_literal_in_memory_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Enumerable: owner index ou\")\n\n mstore(add(memPtr, 32), \"t of bounds\")\n\n }\n\n function abi_encode_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Enumerable: global index o\")\n\n mstore(add(memPtr, 32), \"ut of bounds\")\n\n }\n\n function abi_encode_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n store_literal_in_memory_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: invalid token ID\")\n\n }\n\n function abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: address zero is not a va\")\n\n mstore(add(memPtr, 32), \"lid owner\")\n\n }\n\n function abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_a694c7d0af81c0139c2d9cf9013fb42115382a7b8abc6fa7e09c0326c0773524(memPtr) {\n\n mstore(add(memPtr, 0), \"invalid tokenId. must be #999\")\n\n }\n\n function abi_encode_t_stringliteral_a694c7d0af81c0139c2d9cf9013fb42115382a7b8abc6fa7e09c0326c0773524_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_a694c7d0af81c0139c2d9cf9013fb42115382a7b8abc6fa7e09c0326c0773524(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_a694c7d0af81c0139c2d9cf9013fb42115382a7b8abc6fa7e09c0326c0773524__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_a694c7d0af81c0139c2d9cf9013fb42115382a7b8abc6fa7e09c0326c0773524_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c6bc4f5b747fbbc581777f92b42c6eac56dbbb4e624c68b8c1a6001ff2001fc5(memPtr) {\n\n mstore(add(memPtr, 0), \"insufficient funds\")\n\n }\n\n function abi_encode_t_stringliteral_c6bc4f5b747fbbc581777f92b42c6eac56dbbb4e624c68b8c1a6001ff2001fc5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_c6bc4f5b747fbbc581777f92b42c6eac56dbbb4e624c68b8c1a6001ff2001fc5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c6bc4f5b747fbbc581777f92b42c6eac56dbbb4e624c68b8c1a6001ff2001fc5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c6bc4f5b747fbbc581777f92b42c6eac56dbbb4e624c68b8c1a6001ff2001fc5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n mstore(add(memPtr, 32), \"ddress\")\n\n }\n\n function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer from incorrect \")\n\n mstore(add(memPtr, 32), \"owner\")\n\n }\n\n function abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n }\n\n function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_bc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a(memPtr) {\n\n mstore(add(memPtr, 0), 0x0000000000000000000000000000000000000000000000000000000000000000)\n\n }\n\n function abi_encode_t_stringliteral_bc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 1)\n store_literal_in_memory_bc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a(pos)\n end := add(pos, 1)\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_bc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_stringliteral_bc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve to caller\")\n\n }\n\n function abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to non ERC721Re\")\n\n mstore(add(memPtr, 32), \"ceiver implementer\")\n\n }\n\n function abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function shift_right_1_unsigned(value) -> newValue {\n newValue :=\n\n shr(1, value)\n\n }\n\n function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n power := _power\n base := _base\n for { } gt(exponent, 1) {}\n {\n // overflow check for base * base\n if gt(base, div(max, base)) { panic_error_0x11() }\n if and(exponent, 1)\n {\n // No checks for power := mul(power, base) needed, because the check\n // for base * base above is sufficient, since:\n // |power| <= base (proof by induction) and thus:\n // |power * base| <= base * base <= max <= |min| (for signed)\n // (this is equally true for signed and unsigned exp)\n power := mul(power, base)\n }\n base := mul(base, base)\n exponent := shift_right_1_unsigned(exponent)\n }\n }\n\n function checked_exp_unsigned(base, exponent, max) -> power {\n // This function currently cannot be inlined because of the\n // \"leave\" statements. We have to improve the optimizer.\n\n // Note that 0**0 == 1\n if iszero(exponent) { power := 1 leave }\n if iszero(base) { power := 0 leave }\n\n // Specializations for small bases\n switch base\n // 0 is handled above\n case 1 { power := 1 leave }\n case 2\n {\n if gt(exponent, 255) { panic_error_0x11() }\n power := exp(2, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n if or(\n and(lt(base, 11), lt(exponent, 78)),\n and(lt(base, 307), lt(exponent, 32))\n )\n {\n power := exp(base, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n\n power, base := checked_exp_helper(1, base, exponent, max)\n\n if gt(power, div(max, base)) { panic_error_0x11() }\n power := mul(power, base)\n }\n\n function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n base := cleanup_t_uint256(base)\n exponent := cleanup_t_uint256(exponent)\n\n power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n }\n\n function store_literal_in_memory_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Enumerable: consecutive tr\")\n\n mstore(add(memPtr, 32), \"ansfers not supported\")\n\n }\n\n function abi_encode_t_stringliteral_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 53)\n store_literal_in_memory_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_0b42b6393c1f53060fe3ddbfcd7aadcca894465a5a438f69c87d790b2299b9b2(memPtr) {\n\n mstore(add(memPtr, 0), \"c\")\n\n }\n\n function abi_encode_t_stringliteral_0b42b6393c1f53060fe3ddbfcd7aadcca894465a5a438f69c87d790b2299b9b2_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 1)\n store_literal_in_memory_0b42b6393c1f53060fe3ddbfcd7aadcca894465a5a438f69c87d790b2299b9b2(pos)\n end := add(pos, 1)\n }\n\n function cleanup_t_uint32(value) -> cleaned {\n cleaned := and(value, 0xffffffff)\n }\n\n function shift_left_224(value) -> newValue {\n newValue :=\n\n shl(224, value)\n\n }\n\n function leftAlign_t_uint32(value) -> aligned {\n aligned := shift_left_224(value)\n }\n\n function abi_encode_t_uint32_to_t_uint32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint32(cleanup_t_uint32(value)))\n }\n\n function store_literal_in_memory_e60bf27c198d7ff49e9b26b4f7eb58903fb9b75165f2451681c67000b3f2895e(memPtr) {\n\n mstore(add(memPtr, 0), 0x80600e6000396000f30000000000000000000000000000000000000000000000)\n\n }\n\n function abi_encode_t_stringliteral_e60bf27c198d7ff49e9b26b4f7eb58903fb9b75165f2451681c67000b3f2895e_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 9)\n store_literal_in_memory_e60bf27c198d7ff49e9b26b4f7eb58903fb9b75165f2451681c67000b3f2895e(pos)\n end := add(pos, 9)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_0b42b6393c1f53060fe3ddbfcd7aadcca894465a5a438f69c87d790b2299b9b2_t_uint32_t_stringliteral_e60bf27c198d7ff49e9b26b4f7eb58903fb9b75165f2451681c67000b3f2895e_t_bytes_memory_ptr__to_t_string_memory_ptr_t_uint32_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_0b42b6393c1f53060fe3ddbfcd7aadcca894465a5a438f69c87d790b2299b9b2_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n abi_encode_t_uint32_to_t_uint32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 4)\n\n pos := abi_encode_t_stringliteral_e60bf27c198d7ff49e9b26b4f7eb58903fb9b75165f2451681c67000b3f2895e_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, tail)\n\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function panic_error_0x31() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: mint to the zero address\")\n\n }\n\n function abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: token already minted\")\n\n }\n\n function abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "321:2992:14:-:0;;;443:4;414:33;;482:10;453:39;;546:50;;;;;;;;;;1390:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1464:5;1456;:13;;;;;;;;;;;;:::i;:::-;;1489:7;1479;:17;;;;;;;;;;;;:::i;:::-;;1390:113;;936:32:0;955:12;:10;;;:12;;:::i;:::-;936:18;;;:32;;:::i;:::-;321:2992:14;;655:96:8;708:7;734:10;727:17;;655:96;:::o;2426:187:0:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;321:2992:14:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:180:19:-;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:320;237:6;274:1;268:4;264:12;254:22;;321:1;315:4;311:12;342:18;332:81;;398:4;390:6;386:17;376:27;;332:81;460:2;452:6;449:14;429:18;426:38;423:84;;479:18;;:::i;:::-;423:84;244:269;193:320;;;:::o;321:2992:14:-;;;;;;;", + "deployedSourceMap": "321:2992:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1005:222:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2471:98:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1061:361:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3935:167:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3468:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1630:111:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1559:323:14;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4612:296:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1888:280:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1306:253:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4974:149:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1813:230:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2190:219:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1929:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1824:101:0;;;;;;;;;;;;;:::i;:::-;;1201:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2633:102:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4169:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5189:276;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2174:612:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4388:162:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;682:281:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2074:198:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1005:222:4;1107:4;1145:35;1130:50;;;:11;:50;;;;:90;;;;1184:36;1208:11;1184:23;:36::i;:::-;1130:90;1123:97;;1005:222;;;:::o;2471:98:1:-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;1061:361:14:-;1125:13;1150:28;1192:24;1209:6;1192:16;:24::i;:::-;1181:36;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1150:67;;1227:6;1244:139;1260:24;1277:6;1260:16;:24::i;:::-;1256:1;:28;1244:139;;;1325:47;1362:6;1370:1;1325:36;:47::i;:::-;1305:14;1320:1;1305:17;;;;;;;;:::i;:::-;;;;;;;:67;;;;;1286:3;;;;;:::i;:::-;;;;1244:139;;;1400:14;1392:23;;;;1061:361;;;:::o;3935:167:1:-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;4071:15;:24;4087:7;4071:24;;;;;;;;;;;;;;;;;;;;;4064:31;;3935:167;;;:::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;3605:11;;:2;:11;;;3597:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3702:5;3686:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;3711:37;3728:5;3735:12;:10;:12::i;:::-;3711:16;:37::i;:::-;3686:62;3665:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;1630:111:4:-;1691:7;1717:10;:17;;;;1710:24;;1630:111;:::o;1559:323:14:-;1610:13;1635:28;1677:10;;1666:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1635:53;;1698:6;1715:130;1731:10;;1727:1;:14;1715:130;;;1766:10;1774:1;1766:7;:10::i;:::-;1762:73;;;1816:4;1796:14;1811:1;1796:17;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;1762:73;1743:3;;;;;:::i;:::-;;;;1715:130;;;1861:14;1854:21;;;;1559:323;:::o;4612:296:1:-;4771:41;4790:12;:10;:12::i;:::-;4804:7;4771:18;:41::i;:::-;4763:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;4873:28;4883:4;4889:2;4893:7;4873:9;:28::i;:::-;4612:296;;;:::o;1888:280:14:-;1094:13:0;:11;:13::i;:::-;1981:9:14::1;1976:186;2000:6;;:13;;1996:1;:17;1976:186;;;2034:6;:15;2041:7;2034:15;;;;;;;;;;;:25;;2065:24;2079:6;;2086:1;2079:9;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;2065:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:24::i;:::-;2034:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2135:6;;2142:1;2135:9;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:16;;2104:6;:15;2111:7;2104:15;;;;;;;;;;;:27;;;:47;;;;;;;:::i;:::-;;;;;;;;2015:3;;;;;:::i;:::-;;;;1976:186;;;;1888:280:::0;;;:::o;1306:253:4:-;1403:7;1438:23;1455:5;1438:16;:23::i;:::-;1430:5;:31;1422:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;1526:12;:19;1539:5;1526:19;;;;;;;;;;;;;;;:26;1546:5;1526:26;;;;;;;;;;;;1519:33;;1306:253;;;;:::o;4974:149:1:-;5077:39;5094:4;5100:2;5104:7;5077:39;;;;;;;;;;;;:16;:39::i;:::-;4974:149;;;:::o;1813:230:4:-;1888:7;1923:30;:28;:30::i;:::-;1915:5;:38;1907:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;2019:10;2030:5;2019:17;;;;;;;;:::i;:::-;;;;;;;;;;2012:24;;1813:230;;;:::o;2190:219:1:-;2262:7;2281:13;2297:17;2306:7;2297:8;:17::i;:::-;2281:33;;2349:1;2332:19;;:5;:19;;;2324:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2397:5;2390:12;;;2190:219;;;:::o;1929:204::-;2001:7;2045:1;2028:19;;:5;:19;;;2020:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2110:9;:16;2120:5;2110:16;;;;;;;;;;;;;;;;2103:23;;1929:204;;;:::o;1824:101:0:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;1201:85::-;1247:7;1273:6;;;;;;;;;;;1266:13;;1201:85;:::o;2633:102:1:-;2689:13;2721:7;2714:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2633:102;:::o;4169:153::-;4263:52;4282:12;:10;:12::i;:::-;4296:8;4306;4263:18;:52::i;:::-;4169:153;;:::o;5189:276::-;5319:41;5338:12;:10;:12::i;:::-;5352:7;5319:18;:41::i;:::-;5311:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;5420:38;5434:4;5440:2;5444:7;5453:4;5420:13;:38::i;:::-;5189:276;;;;:::o;2174:612:14:-;2239:13;2269:16;2277:7;2269;:16::i;:::-;2264:49;;2294:19;;;;;;;;;;;;;;2264:49;2323:16;2352:6;:15;2359:7;2352:15;;;;;;;;;;;:27;;;2342:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2323:57;;2391:15;2412:21;2429:3;2412:16;:21::i;:::-;2390:43;;;2448:9;2443:309;2467:6;:15;2474:7;2467:15;;;;;;;;;;;:25;;:32;;;;2463:1;:36;2443:309;;;2520:17;2540:42;2553:6;:15;2560:7;2553:15;;;;;;;;;;;:25;;2579:1;2553:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2540:12;:42::i;:::-;2520:62;;2597:16;2615:15;2634:22;2651:4;2634:16;:22::i;:::-;2596:60;;;;2670:39;2682:8;2692:7;2701;2670:11;:39::i;:::-;2734:7;2723:18;;;;;:::i;:::-;;;2506:246;;;2501:3;;;;;:::i;:::-;;;;2443:309;;;;2775:3;2761:18;;;;2174:612;;;:::o;4388:162:1:-;4485:4;4508:18;:25;4527:5;4508:25;;;;;;;;;;;;;;;:35;4534:8;4508:35;;;;;;;;;;;;;;;;;;;;;;;;;4501:42;;4388:162;;;;:::o;682:281:14:-;766:10;;753;:23;745:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;841:10;;828:9;:23;;820:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;885:33;895:10;907;885:9;:33::i;:::-;945:10;934:22;;;;;;;;;;682:281;:::o;2074:198:0:-;1094:13;:11;:13::i;:::-;2182:1:::1;2162:22;;:8;:22;;::::0;2154:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1570:300:1:-;1672:4;1722:25;1707:40;;;:11;:40;;;;:104;;;;1778:33;1763:48;;;:11;:48;;;;1707:104;:156;;;;1827:36;1851:11;1827:23;:36::i;:::-;1707:156;1688:175;;1570:300;;;:::o;13240:133::-;13321:16;13329:7;13321;:16::i;:::-;13313:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13240:133;:::o;655:96:8:-;708:7;734:10;727:17;;655:96;:::o;12572:171:1:-;12673:2;12646:15;:24;12662:7;12646:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;12728:7;12724:2;12690:46;;12699:23;12714:7;12699:14;:23::i;:::-;12690:46;;;;;;;;;;;;12572:171;;:::o;7120:126::-;7185:4;7237:1;7208:31;;:17;7217:7;7208:8;:17::i;:::-;:31;;;;7201:38;;7120:126;;;:::o;7404:261::-;7497:4;7513:13;7529:23;7544:7;7529:14;:23::i;:::-;7513:39;;7581:5;7570:16;;:7;:16;;;:52;;;;7590:32;7607:5;7614:7;7590:16;:32::i;:::-;7570:52;:87;;;;7650:7;7626:31;;:20;7638:7;7626:11;:20::i;:::-;:31;;;7570:87;7562:96;;;7404:261;;;;:::o;11257:1203::-;11381:4;11354:31;;:23;11369:7;11354:14;:23::i;:::-;:31;;;11346:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11459:1;11445:16;;:2;:16;;;11437:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11513:42;11534:4;11540:2;11544:7;11553:1;11513:20;:42::i;:::-;11682:4;11655:31;;:23;11670:7;11655:14;:23::i;:::-;:31;;;11647:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11797:15;:24;11813:7;11797:24;;;;;;;;;;;;11790:31;;;;;;;;;;;12284:1;12265:9;:15;12275:4;12265:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;12316:1;12299:9;:13;12309:2;12299:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;12356:2;12337:7;:16;12345:7;12337:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12393:7;12389:2;12374:27;;12383:4;12374:27;;;;;;;;;;;;12412:41;12432:4;12438:2;12442:7;12451:1;12412:19;:41::i;:::-;11257:1203;;;:::o;1359:130:0:-;1433:12;:10;:12::i;:::-;1422:23;;:7;:5;:7::i;:::-;:23;;;1414:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1359:130::o;583:474:18:-;636:15;748:17;768:58;819:5;793:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;768:24;:58::i;:::-;748:78;;942:4;936:11;931:2;925:4;921:13;918:1;911:37;900:48;;1027:1;1008:21;;:7;:21;;;1004:46;;1038:12;;;;;;;;;;;;;;1004:46;653:404;583:474;;;:::o;6702:115:1:-;6768:7;6794;:16;6802:7;6794:16;;;;;;;;;;;;;;;;;;;;;6787:23;;6702:115;;;:::o;2426:187:0:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;12879:277:1:-;12999:8;12990:17;;:5;:17;;;12982:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;13085:8;13047:18;:25;13066:5;13047:25;;;;;;;;;;;;;;;:35;13073:8;13047:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13130:8;13108:41;;13123:5;13108:41;;;13140:8;13108:41;;;;;;:::i;:::-;;;;;;;;12879:277;;;:::o;6326:267::-;6438:28;6448:4;6454:2;6458:7;6438:9;:28::i;:::-;6484:47;6507:4;6513:2;6517:7;6526:4;6484:22;:47::i;:::-;6476:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;6326:267;;;;:::o;4148:266:16:-;4208:12;4222:11;4251:3;:10;4245:16;;4382:2;4323:3;4302:96;4294:104;;4148:266;;;:::o;1315:140:18:-;1370:12;1401:47;1417:8;1427:1;1430:17;1401:15;:47::i;:::-;1394:54;;1315:140;;;:::o;2850:654:16:-;3008:193;344:2;3015:3;:16;3008:193;;3111:3;3105:10;3099:4;3092:24;344:2;3143:17;;;;;:::i;:::-;;;344:2;3174:16;;;;;:::i;:::-;;;344:2;3033:16;;;;;:::i;:::-;;;3008:193;;;3222:1;3215:3;:8;3211:21;3225:7;3211:21;3274:12;3314:1;3307:3;344:2;3295:15;;;;:::i;:::-;3289:3;:22;;;;:::i;:::-;:26;;;;:::i;:::-;3274:41;;3383:4;3379:9;3373:3;3367:10;3363:26;3435:4;3428;3422:11;3418:22;3479:7;3469:8;3466:21;3460:4;3453:35;3334:164;;;2850:654;;;;:::o;7995:108:1:-;8070:26;8080:2;8084:7;8070:26;;;;;;;;;;;;:9;:26::i;:::-;7995:108;;:::o;829:155:10:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;2112:890:4:-;2283:61;2310:4;2316:2;2320:12;2334:9;2283:26;:61::i;:::-;2371:1;2359:9;:13;2355:219;;;2500:63;;;;;;;;;;:::i;:::-;;;;;;;;2355:219;2584:15;2602:12;2584:30;;2645:1;2629:18;;:4;:18;;;2625:183;;2663:40;2695:7;2663:31;:40::i;:::-;2625:183;;;2732:2;2724:10;;:4;:10;;;2720:88;;2750:47;2783:4;2789:7;2750:32;:47::i;:::-;2720:88;2625:183;2835:1;2821:16;;:2;:16;;;2817:179;;2853:45;2890:7;2853:36;:45::i;:::-;2817:179;;;2925:4;2919:10;;:2;:10;;;2915:81;;2945:40;2973:2;2977:7;2945:27;:40::i;:::-;2915:81;2817:179;2273:729;2112:890;;;;:::o;16294:115:1:-;;;;;:::o;378:700:17:-;446:12;1002:5;:12;1062:5;956:117;;;;;;;;;:::i;:::-;;;;;;;;;;;;;949:124;;378:700;;;:::o;13925:831:1:-;14074:4;14094:15;:2;:13;;;:15::i;:::-;14090:660;;;14145:2;14129:36;;;14166:12;:10;:12::i;:::-;14180:4;14186:7;14195:4;14129:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14125:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14384:1;14367:6;:13;:18;14363:321;;14409:60;;;;;;;;;;:::i;:::-;;;;;;;;14363:321;14636:6;14630:13;14621:6;14617:2;14613:15;14606:38;14125:573;14260:41;;;14250:51;;;:6;:51;;;;14243:58;;;;;14090:660;14735:4;14728:11;;13925:831;;;;;;;:::o;1793:946:17:-;1877:18;1903:13;1919:15;1928:5;1919:8;:15::i;:::-;1903:31;;1953:1;1944:5;:10;1940:32;;1963:9;;;;;;;;;;;;1956:16;;;;;1940:32;1992:5;1983:6;:14;1979:36;;;2006:9;;;;;;;;;;;;1999:16;;;;;1979:36;2032:6;2025:4;:13;2021:65;;;2066:5;2073:6;2081:4;2047:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;2021:65;2112:15;2137:6;2130:4;:13;2112:31;;2151:15;2177:6;2169:5;:14;2151:32;;2192:12;2217:7;2207;:17;:37;;2237:7;2207:37;;;2227:7;2207:37;2192:52;;2413:4;2407:11;2398:20;;2533:4;2529:9;2522:4;2515;2509;2505:15;2501:26;2497:42;2490:5;2486:54;2480:4;2473:68;2598:4;2591:5;2584:19;2716:4;2708:6;2701:4;2694:5;2690:16;2683:5;2671:50;2262:467;;;1897:842;1793:946;;;;;;:::o;8324:279:1:-;8418:18;8424:2;8428:7;8418:5;:18::i;:::-;8467:53;8498:1;8502:2;8506:7;8515:4;8467:22;:53::i;:::-;8446:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;8324:279;;;:::o;15472:116::-;;;;;:::o;3708:161:4:-;3811:10;:17;;;;3784:15;:24;3800:7;3784:24;;;;;;;;;;;:44;;;;3838:10;3854:7;3838:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3708:161;:::o;4486:970::-;4748:22;4798:1;4773:22;4790:4;4773:16;:22::i;:::-;:26;;;;:::i;:::-;4748:51;;4809:18;4830:17;:26;4848:7;4830:26;;;;;;;;;;;;4809:47;;4974:14;4960:10;:28;4956:323;;5004:19;5026:12;:18;5039:4;5026:18;;;;;;;;;;;;;;;:34;5045:14;5026:34;;;;;;;;;;;;5004:56;;5108:11;5075:12;:18;5088:4;5075:18;;;;;;;;;;;;;;;:30;5094:10;5075:30;;;;;;;;;;;:44;;;;5224:10;5191:17;:30;5209:11;5191:30;;;;;;;;;;;:43;;;;4990:289;4956:323;5372:17;:26;5390:7;5372:26;;;;;;;;;;;5365:33;;;5415:12;:18;5428:4;5415:18;;;;;;;;;;;;;;;:34;5434:14;5415:34;;;;;;;;;;;5408:41;;;4567:889;;4486:970;;:::o;5744:1061::-;5993:22;6038:1;6018:10;:17;;;;:21;;;;:::i;:::-;5993:46;;6049:18;6070:15;:24;6086:7;6070:24;;;;;;;;;;;;6049:45;;6416:19;6438:10;6449:14;6438:26;;;;;;;;:::i;:::-;;;;;;;;;;6416:48;;6500:11;6475:10;6486;6475:22;;;;;;;;:::i;:::-;;;;;;;;;:36;;;;6610:10;6579:15;:28;6595:11;6579:28;;;;;;;;;;;:41;;;;6748:15;:24;6764:7;6748:24;;;;;;;;;;;6741:31;;;6782:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5815:990;;;5744:1061;:::o;3296:217::-;3380:14;3397:20;3414:2;3397:16;:20::i;:::-;3380:37;;3454:7;3427:12;:16;3440:2;3427:16;;;;;;;;;;;;;;;:24;3444:6;3427:24;;;;;;;;;;;:34;;;;3500:6;3471:17;:26;3489:7;3471:26;;;;;;;;;;;:35;;;;3370:143;3296:217;;:::o;1412:320:7:-;1472:4;1724:1;1702:7;:19;;;:23;1695:30;;1412:320;;;:::o;1261:119:17:-;1317:12;1368:5;1356:18;1348:26;;1261:119;;;:::o;8925:920:1:-;9018:1;9004:16;;:2;:16;;;8996:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9076:16;9084:7;9076;:16::i;:::-;9075:17;9067:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9136:48;9165:1;9169:2;9173:7;9182:1;9136:20;:48::i;:::-;9280:16;9288:7;9280;:16::i;:::-;9279:17;9271:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9688:1;9671:9;:13;9681:2;9671:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9729:2;9710:7;:16;9718:7;9710:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9772:7;9768:2;9747:33;;9764:1;9747:33;;;;;;;;;;;;9791:47;9819:1;9823:2;9827:7;9836:1;9791:19;:47::i;:::-;8925:920;;:::o;7:75:19:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:307::-;1866:1;1876:113;1890:6;1887:1;1884:13;1876:113;;;1975:1;1970:3;1966:11;1960:18;1956:1;1951:3;1947:11;1940:39;1912:2;1909:1;1905:10;1900:15;;1876:113;;;2007:6;2004:1;2001:13;1998:101;;;2087:1;2078:6;2073:3;2069:16;2062:27;1998:101;1847:258;1798:307;;;:::o;2111:102::-;2152:6;2203:2;2199:7;2194:2;2187:5;2183:14;2179:28;2169:38;;2111:102;;;:::o;2219:364::-;2307:3;2335:39;2368:5;2335:39;:::i;:::-;2390:71;2454:6;2449:3;2390:71;:::i;:::-;2383:78;;2470:52;2515:6;2510:3;2503:4;2496:5;2492:16;2470:52;:::i;:::-;2547:29;2569:6;2547:29;:::i;:::-;2542:3;2538:39;2531:46;;2311:272;2219:364;;;;:::o;2589:313::-;2702:4;2740:2;2729:9;2725:18;2717:26;;2789:9;2783:4;2779:20;2775:1;2764:9;2760:17;2753:47;2817:78;2890:4;2881:6;2817:78;:::i;:::-;2809:86;;2589:313;;;;:::o;2908:126::-;2945:7;2985:42;2978:5;2974:54;2963:65;;2908:126;;;:::o;3040:96::-;3077:7;3106:24;3124:5;3106:24;:::i;:::-;3095:35;;3040:96;;;:::o;3142:122::-;3215:24;3233:5;3215:24;:::i;:::-;3208:5;3205:35;3195:63;;3254:1;3251;3244:12;3195:63;3142:122;:::o;3270:139::-;3316:5;3354:6;3341:20;3332:29;;3370:33;3397:5;3370:33;:::i;:::-;3270:139;;;;:::o;3415:329::-;3474:6;3523:2;3511:9;3502:7;3498:23;3494:32;3491:119;;;3529:79;;:::i;:::-;3491:119;3649:1;3674:53;3719:7;3710:6;3699:9;3695:22;3674:53;:::i;:::-;3664:63;;3620:117;3415:329;;;;:::o;3750:114::-;3817:6;3851:5;3845:12;3835:22;;3750:114;;;:::o;3870:184::-;3969:11;4003:6;3998:3;3991:19;4043:4;4038:3;4034:14;4019:29;;3870:184;;;;:::o;4060:132::-;4127:4;4150:3;4142:11;;4180:4;4175:3;4171:14;4163:22;;4060:132;;;:::o;4198:77::-;4235:7;4264:5;4253:16;;4198:77;;;:::o;4281:108::-;4358:24;4376:5;4358:24;:::i;:::-;4353:3;4346:37;4281:108;;:::o;4395:179::-;4464:10;4485:46;4527:3;4519:6;4485:46;:::i;:::-;4563:4;4558:3;4554:14;4540:28;;4395:179;;;;:::o;4580:113::-;4650:4;4682;4677:3;4673:14;4665:22;;4580:113;;;:::o;4729:732::-;4848:3;4877:54;4925:5;4877:54;:::i;:::-;4947:86;5026:6;5021:3;4947:86;:::i;:::-;4940:93;;5057:56;5107:5;5057:56;:::i;:::-;5136:7;5167:1;5152:284;5177:6;5174:1;5171:13;5152:284;;;5253:6;5247:13;5280:63;5339:3;5324:13;5280:63;:::i;:::-;5273:70;;5366:60;5419:6;5366:60;:::i;:::-;5356:70;;5212:224;5199:1;5196;5192:9;5187:14;;5152:284;;;5156:14;5452:3;5445:10;;4853:608;;;4729:732;;;;:::o;5467:373::-;5610:4;5648:2;5637:9;5633:18;5625:26;;5697:9;5691:4;5687:20;5683:1;5672:9;5668:17;5661:47;5725:108;5828:4;5819:6;5725:108;:::i;:::-;5717:116;;5467:373;;;;:::o;5846:122::-;5919:24;5937:5;5919:24;:::i;:::-;5912:5;5909:35;5899:63;;5958:1;5955;5948:12;5899:63;5846:122;:::o;5974:139::-;6020:5;6058:6;6045:20;6036:29;;6074:33;6101:5;6074:33;:::i;:::-;5974:139;;;;:::o;6119:329::-;6178:6;6227:2;6215:9;6206:7;6202:23;6198:32;6195:119;;;6233:79;;:::i;:::-;6195:119;6353:1;6378:53;6423:7;6414:6;6403:9;6399:22;6378:53;:::i;:::-;6368:63;;6324:117;6119:329;;;;:::o;6454:118::-;6541:24;6559:5;6541:24;:::i;:::-;6536:3;6529:37;6454:118;;:::o;6578:222::-;6671:4;6709:2;6698:9;6694:18;6686:26;;6722:71;6790:1;6779:9;6775:17;6766:6;6722:71;:::i;:::-;6578:222;;;;:::o;6806:474::-;6874:6;6882;6931:2;6919:9;6910:7;6906:23;6902:32;6899:119;;;6937:79;;:::i;:::-;6899:119;7057:1;7082:53;7127:7;7118:6;7107:9;7103:22;7082:53;:::i;:::-;7072:63;;7028:117;7184:2;7210:53;7255:7;7246:6;7235:9;7231:22;7210:53;:::i;:::-;7200:63;;7155:118;6806:474;;;;;:::o;7286:118::-;7373:24;7391:5;7373:24;:::i;:::-;7368:3;7361:37;7286:118;;:::o;7410:222::-;7503:4;7541:2;7530:9;7526:18;7518:26;;7554:71;7622:1;7611:9;7607:17;7598:6;7554:71;:::i;:::-;7410:222;;;;:::o;7638:111::-;7702:6;7736:5;7730:12;7720:22;;7638:111;;;:::o;7755:181::-;7851:11;7885:6;7880:3;7873:19;7925:4;7920:3;7916:14;7901:29;;7755:181;;;;:::o;7942:129::-;8006:4;8029:3;8021:11;;8059:4;8054:3;8050:14;8042:22;;7942:129;;;:::o;8077:99::-;8148:21;8163:5;8148:21;:::i;:::-;8143:3;8136:34;8077:99;;:::o;8182:167::-;8245:10;8266:40;8302:3;8294:6;8266:40;:::i;:::-;8338:4;8333:3;8329:14;8315:28;;8182:167;;;;:::o;8355:110::-;8422:4;8454;8449:3;8445:14;8437:22;;8355:110;;;:::o;8495:708::-;8608:3;8637:51;8682:5;8637:51;:::i;:::-;8704:83;8780:6;8775:3;8704:83;:::i;:::-;8697:90;;8811:53;8858:5;8811:53;:::i;:::-;8887:7;8918:1;8903:275;8928:6;8925:1;8922:13;8903:275;;;9004:6;8998:13;9031:57;9084:3;9069:13;9031:57;:::i;:::-;9024:64;;9111:57;9161:6;9111:57;:::i;:::-;9101:67;;8963:215;8950:1;8947;8943:9;8938:14;;8903:275;;;8907:14;9194:3;9187:10;;8613:590;;;8495:708;;;;:::o;9209:361::-;9346:4;9384:2;9373:9;9369:18;9361:26;;9433:9;9427:4;9423:20;9419:1;9408:9;9404:17;9397:47;9461:102;9558:4;9549:6;9461:102;:::i;:::-;9453:110;;9209:361;;;;:::o;9576:619::-;9653:6;9661;9669;9718:2;9706:9;9697:7;9693:23;9689:32;9686:119;;;9724:79;;:::i;:::-;9686:119;9844:1;9869:53;9914:7;9905:6;9894:9;9890:22;9869:53;:::i;:::-;9859:63;;9815:117;9971:2;9997:53;10042:7;10033:6;10022:9;10018:22;9997:53;:::i;:::-;9987:63;;9942:118;10099:2;10125:53;10170:7;10161:6;10150:9;10146:22;10125:53;:::i;:::-;10115:63;;10070:118;9576:619;;;;;:::o;10201:117::-;10310:1;10307;10300:12;10324:117;10433:1;10430;10423:12;10447:117;10556:1;10553;10546:12;10585:579;10669:8;10679:6;10729:3;10722:4;10714:6;10710:17;10706:27;10696:122;;10737:79;;:::i;:::-;10696:122;10850:6;10837:20;10827:30;;10880:18;10872:6;10869:30;10866:117;;;10902:79;;:::i;:::-;10866:117;11016:4;11008:6;11004:17;10992:29;;11070:3;11062:4;11054:6;11050:17;11040:8;11036:32;11033:41;11030:128;;;11077:79;;:::i;:::-;11030:128;10585:579;;;;;:::o;11170:726::-;11276:6;11284;11292;11341:2;11329:9;11320:7;11316:23;11312:32;11309:119;;;11347:79;;:::i;:::-;11309:119;11467:1;11492:53;11537:7;11528:6;11517:9;11513:22;11492:53;:::i;:::-;11482:63;;11438:117;11622:2;11611:9;11607:18;11594:32;11653:18;11645:6;11642:30;11639:117;;;11675:79;;:::i;:::-;11639:117;11788:91;11871:7;11862:6;11851:9;11847:22;11788:91;:::i;:::-;11770:109;;;;11565:324;11170:726;;;;;:::o;11902:116::-;11972:21;11987:5;11972:21;:::i;:::-;11965:5;11962:32;11952:60;;12008:1;12005;11998:12;11952:60;11902:116;:::o;12024:133::-;12067:5;12105:6;12092:20;12083:29;;12121:30;12145:5;12121:30;:::i;:::-;12024:133;;;;:::o;12163:468::-;12228:6;12236;12285:2;12273:9;12264:7;12260:23;12256:32;12253:119;;;12291:79;;:::i;:::-;12253:119;12411:1;12436:53;12481:7;12472:6;12461:9;12457:22;12436:53;:::i;:::-;12426:63;;12382:117;12538:2;12564:50;12606:7;12597:6;12586:9;12582:22;12564:50;:::i;:::-;12554:60;;12509:115;12163:468;;;;;:::o;12637:117::-;12746:1;12743;12736:12;12760:180;12808:77;12805:1;12798:88;12905:4;12902:1;12895:15;12929:4;12926:1;12919:15;12946:281;13029:27;13051:4;13029:27;:::i;:::-;13021:6;13017:40;13159:6;13147:10;13144:22;13123:18;13111:10;13108:34;13105:62;13102:88;;;13170:18;;:::i;:::-;13102:88;13210:10;13206:2;13199:22;12989:238;12946:281;;:::o;13233:129::-;13267:6;13294:20;;:::i;:::-;13284:30;;13323:33;13351:4;13343:6;13323:33;:::i;:::-;13233:129;;;:::o;13368:307::-;13429:4;13519:18;13511:6;13508:30;13505:56;;;13541:18;;:::i;:::-;13505:56;13579:29;13601:6;13579:29;:::i;:::-;13571:37;;13663:4;13657;13653:15;13645:23;;13368:307;;;:::o;13681:154::-;13765:6;13760:3;13755;13742:30;13827:1;13818:6;13813:3;13809:16;13802:27;13681:154;;;:::o;13841:410::-;13918:5;13943:65;13959:48;14000:6;13959:48;:::i;:::-;13943:65;:::i;:::-;13934:74;;14031:6;14024:5;14017:21;14069:4;14062:5;14058:16;14107:3;14098:6;14093:3;14089:16;14086:25;14083:112;;;14114:79;;:::i;:::-;14083:112;14204:41;14238:6;14233:3;14228;14204:41;:::i;:::-;13924:327;13841:410;;;;;:::o;14270:338::-;14325:5;14374:3;14367:4;14359:6;14355:17;14351:27;14341:122;;14382:79;;:::i;:::-;14341:122;14499:6;14486:20;14524:78;14598:3;14590:6;14583:4;14575:6;14571:17;14524:78;:::i;:::-;14515:87;;14331:277;14270:338;;;;:::o;14614:943::-;14709:6;14717;14725;14733;14782:3;14770:9;14761:7;14757:23;14753:33;14750:120;;;14789:79;;:::i;:::-;14750:120;14909:1;14934:53;14979:7;14970:6;14959:9;14955:22;14934:53;:::i;:::-;14924:63;;14880:117;15036:2;15062:53;15107:7;15098:6;15087:9;15083:22;15062:53;:::i;:::-;15052:63;;15007:118;15164:2;15190:53;15235:7;15226:6;15215:9;15211:22;15190:53;:::i;:::-;15180:63;;15135:118;15320:2;15309:9;15305:18;15292:32;15351:18;15343:6;15340:30;15337:117;;;15373:79;;:::i;:::-;15337:117;15478:62;15532:7;15523:6;15512:9;15508:22;15478:62;:::i;:::-;15468:72;;15263:287;14614:943;;;;;;;:::o;15563:474::-;15631:6;15639;15688:2;15676:9;15667:7;15663:23;15659:32;15656:119;;;15694:79;;:::i;:::-;15656:119;15814:1;15839:53;15884:7;15875:6;15864:9;15860:22;15839:53;:::i;:::-;15829:63;;15785:117;15941:2;15967:53;16012:7;16003:6;15992:9;15988:22;15967:53;:::i;:::-;15957:63;;15912:118;15563:474;;;;;:::o;16043:180::-;16091:77;16088:1;16081:88;16188:4;16185:1;16178:15;16212:4;16209:1;16202:15;16229:320;16273:6;16310:1;16304:4;16300:12;16290:22;;16357:1;16351:4;16347:12;16378:18;16368:81;;16434:4;16426:6;16422:17;16412:27;;16368:81;16496:2;16488:6;16485:14;16465:18;16462:38;16459:84;;16515:18;;:::i;:::-;16459:84;16280:269;16229:320;;;:::o;16555:180::-;16603:77;16600:1;16593:88;16700:4;16697:1;16690:15;16724:4;16721:1;16714:15;16741:180;16789:77;16786:1;16779:88;16886:4;16883:1;16876:15;16910:4;16907:1;16900:15;16927:233;16966:3;16989:24;17007:5;16989:24;:::i;:::-;16980:33;;17035:66;17028:5;17025:77;17022:103;;17105:18;;:::i;:::-;17022:103;17152:1;17145:5;17141:13;17134:20;;16927:233;;;:::o;17166:220::-;17306:34;17302:1;17294:6;17290:14;17283:58;17375:3;17370:2;17362:6;17358:15;17351:28;17166:220;:::o;17392:366::-;17534:3;17555:67;17619:2;17614:3;17555:67;:::i;:::-;17548:74;;17631:93;17720:3;17631:93;:::i;:::-;17749:2;17744:3;17740:12;17733:19;;17392:366;;;:::o;17764:419::-;17930:4;17968:2;17957:9;17953:18;17945:26;;18017:9;18011:4;18007:20;18003:1;17992:9;17988:17;17981:47;18045:131;18171:4;18045:131;:::i;:::-;18037:139;;17764:419;;;:::o;18189:248::-;18329:34;18325:1;18317:6;18313:14;18306:58;18398:31;18393:2;18385:6;18381:15;18374:56;18189:248;:::o;18443:366::-;18585:3;18606:67;18670:2;18665:3;18606:67;:::i;:::-;18599:74;;18682:93;18771:3;18682:93;:::i;:::-;18800:2;18795:3;18791:12;18784:19;;18443:366;;;:::o;18815:419::-;18981:4;19019:2;19008:9;19004:18;18996:26;;19068:9;19062:4;19058:20;19054:1;19043:9;19039:17;19032:47;19096:131;19222:4;19096:131;:::i;:::-;19088:139;;18815:419;;;:::o;19240:232::-;19380:34;19376:1;19368:6;19364:14;19357:58;19449:15;19444:2;19436:6;19432:15;19425:40;19240:232;:::o;19478:366::-;19620:3;19641:67;19705:2;19700:3;19641:67;:::i;:::-;19634:74;;19717:93;19806:3;19717:93;:::i;:::-;19835:2;19830:3;19826:12;19819:19;;19478:366;;;:::o;19850:419::-;20016:4;20054:2;20043:9;20039:18;20031:26;;20103:9;20097:4;20093:20;20089:1;20078:9;20074:17;20067:47;20131:131;20257:4;20131:131;:::i;:::-;20123:139;;19850:419;;;:::o;20275:117::-;20384:1;20381;20374:12;20398:117;20507:1;20504;20497:12;20521:117;20630:1;20627;20620:12;20644:724;20721:4;20727:6;20783:11;20770:25;20883:1;20877:4;20873:12;20862:8;20846:14;20842:29;20838:48;20818:18;20814:73;20804:168;;20891:79;;:::i;:::-;20804:168;21003:18;20993:8;20989:33;20981:41;;21055:4;21042:18;21032:28;;21083:18;21075:6;21072:30;21069:117;;;21105:79;;:::i;:::-;21069:117;21213:2;21207:4;21203:13;21195:21;;21270:4;21262:6;21258:17;21242:14;21238:38;21232:4;21228:49;21225:136;;;21280:79;;:::i;:::-;21225:136;20734:634;20644:724;;;;;:::o;21374:305::-;21414:3;21433:20;21451:1;21433:20;:::i;:::-;21428:25;;21467:20;21485:1;21467:20;:::i;:::-;21462:25;;21621:1;21553:66;21549:74;21546:1;21543:81;21540:107;;;21627:18;;:::i;:::-;21540:107;21671:1;21668;21664:9;21657:16;;21374:305;;;;:::o;21685:230::-;21825:34;21821:1;21813:6;21809:14;21802:58;21894:13;21889:2;21881:6;21877:15;21870:38;21685:230;:::o;21921:366::-;22063:3;22084:67;22148:2;22143:3;22084:67;:::i;:::-;22077:74;;22160:93;22249:3;22160:93;:::i;:::-;22278:2;22273:3;22269:12;22262:19;;21921:366;;;:::o;22293:419::-;22459:4;22497:2;22486:9;22482:18;22474:26;;22546:9;22540:4;22536:20;22532:1;22521:9;22517:17;22510:47;22574:131;22700:4;22574:131;:::i;:::-;22566:139;;22293:419;;;:::o;22718:231::-;22858:34;22854:1;22846:6;22842:14;22835:58;22927:14;22922:2;22914:6;22910:15;22903:39;22718:231;:::o;22955:366::-;23097:3;23118:67;23182:2;23177:3;23118:67;:::i;:::-;23111:74;;23194:93;23283:3;23194:93;:::i;:::-;23312:2;23307:3;23303:12;23296:19;;22955:366;;;:::o;23327:419::-;23493:4;23531:2;23520:9;23516:18;23508:26;;23580:9;23574:4;23570:20;23566:1;23555:9;23551:17;23544:47;23608:131;23734:4;23608:131;:::i;:::-;23600:139;;23327:419;;;:::o;23752:174::-;23892:26;23888:1;23880:6;23876:14;23869:50;23752:174;:::o;23932:366::-;24074:3;24095:67;24159:2;24154:3;24095:67;:::i;:::-;24088:74;;24171:93;24260:3;24171:93;:::i;:::-;24289:2;24284:3;24280:12;24273:19;;23932:366;;;:::o;24304:419::-;24470:4;24508:2;24497:9;24493:18;24485:26;;24557:9;24551:4;24547:20;24543:1;24532:9;24528:17;24521:47;24585:131;24711:4;24585:131;:::i;:::-;24577:139;;24304:419;;;:::o;24729:228::-;24869:34;24865:1;24857:6;24853:14;24846:58;24938:11;24933:2;24925:6;24921:15;24914:36;24729:228;:::o;24963:366::-;25105:3;25126:67;25190:2;25185:3;25126:67;:::i;:::-;25119:74;;25202:93;25291:3;25202:93;:::i;:::-;25320:2;25315:3;25311:12;25304:19;;24963:366;;;:::o;25335:419::-;25501:4;25539:2;25528:9;25524:18;25516:26;;25588:9;25582:4;25578:20;25574:1;25563:9;25559:17;25552:47;25616:131;25742:4;25616:131;:::i;:::-;25608:139;;25335:419;;;:::o;25760:179::-;25900:31;25896:1;25888:6;25884:14;25877:55;25760:179;:::o;25945:366::-;26087:3;26108:67;26172:2;26167:3;26108:67;:::i;:::-;26101:74;;26184:93;26273:3;26184:93;:::i;:::-;26302:2;26297:3;26293:12;26286:19;;25945:366;;;:::o;26317:419::-;26483:4;26521:2;26510:9;26506:18;26498:26;;26570:9;26564:4;26560:20;26556:1;26545:9;26541:17;26534:47;26598:131;26724:4;26598:131;:::i;:::-;26590:139;;26317:419;;;:::o;26742:168::-;26882:20;26878:1;26870:6;26866:14;26859:44;26742:168;:::o;26916:366::-;27058:3;27079:67;27143:2;27138:3;27079:67;:::i;:::-;27072:74;;27155:93;27244:3;27155:93;:::i;:::-;27273:2;27268:3;27264:12;27257:19;;26916:366;;;:::o;27288:419::-;27454:4;27492:2;27481:9;27477:18;27469:26;;27541:9;27535:4;27531:20;27527:1;27516:9;27512:17;27505:47;27569:131;27695:4;27569:131;:::i;:::-;27561:139;;27288:419;;;:::o;27713:225::-;27853:34;27849:1;27841:6;27837:14;27830:58;27922:8;27917:2;27909:6;27905:15;27898:33;27713:225;:::o;27944:366::-;28086:3;28107:67;28171:2;28166:3;28107:67;:::i;:::-;28100:74;;28183:93;28272:3;28183:93;:::i;:::-;28301:2;28296:3;28292:12;28285:19;;27944:366;;;:::o;28316:419::-;28482:4;28520:2;28509:9;28505:18;28497:26;;28569:9;28563:4;28559:20;28555:1;28544:9;28540:17;28533:47;28597:131;28723:4;28597:131;:::i;:::-;28589:139;;28316:419;;;:::o;28741:224::-;28881:34;28877:1;28869:6;28865:14;28858:58;28950:7;28945:2;28937:6;28933:15;28926:32;28741:224;:::o;28971:366::-;29113:3;29134:67;29198:2;29193:3;29134:67;:::i;:::-;29127:74;;29210:93;29299:3;29210:93;:::i;:::-;29328:2;29323:3;29319:12;29312:19;;28971:366;;;:::o;29343:419::-;29509:4;29547:2;29536:9;29532:18;29524:26;;29596:9;29590:4;29586:20;29582:1;29571:9;29567:17;29560:47;29624:131;29750:4;29624:131;:::i;:::-;29616:139;;29343:419;;;:::o;29768:223::-;29908:34;29904:1;29896:6;29892:14;29885:58;29977:6;29972:2;29964:6;29960:15;29953:31;29768:223;:::o;29997:366::-;30139:3;30160:67;30224:2;30219:3;30160:67;:::i;:::-;30153:74;;30236:93;30325:3;30236:93;:::i;:::-;30354:2;30349:3;30345:12;30338:19;;29997:366;;;:::o;30369:419::-;30535:4;30573:2;30562:9;30558:18;30550:26;;30622:9;30616:4;30612:20;30608:1;30597:9;30593:17;30586:47;30650:131;30776:4;30650:131;:::i;:::-;30642:139;;30369:419;;;:::o;30794:182::-;30934:34;30930:1;30922:6;30918:14;30911:58;30794:182;:::o;30982:366::-;31124:3;31145:67;31209:2;31204:3;31145:67;:::i;:::-;31138:74;;31221:93;31310:3;31221:93;:::i;:::-;31339:2;31334:3;31330:12;31323:19;;30982:366;;;:::o;31354:419::-;31520:4;31558:2;31547:9;31543:18;31535:26;;31607:9;31601:4;31597:20;31593:1;31582:9;31578:17;31571:47;31635:131;31761:4;31635:131;:::i;:::-;31627:139;;31354:419;;;:::o;31779:148::-;31881:11;31918:3;31903:18;;31779:148;;;;:::o;31933:214::-;32073:66;32069:1;32061:6;32057:14;32050:90;31933:214;:::o;32153:400::-;32313:3;32334:84;32416:1;32411:3;32334:84;:::i;:::-;32327:91;;32427:93;32516:3;32427:93;:::i;:::-;32545:1;32540:3;32536:11;32529:18;;32153:400;;;:::o;32559:98::-;32610:6;32644:5;32638:12;32628:22;;32559:98;;;:::o;32663:147::-;32764:11;32801:3;32786:18;;32663:147;;;;:::o;32816:373::-;32920:3;32948:38;32980:5;32948:38;:::i;:::-;33002:88;33083:6;33078:3;33002:88;:::i;:::-;32995:95;;33099:52;33144:6;33139:3;33132:4;33125:5;33121:16;33099:52;:::i;:::-;33176:6;33171:3;33167:16;33160:23;;32924:265;32816:373;;;;:::o;33195:537::-;33426:3;33448:148;33592:3;33448:148;:::i;:::-;33441:155;;33613:93;33702:3;33693:6;33613:93;:::i;:::-;33606:100;;33723:3;33716:10;;33195:537;;;;:::o;33738:175::-;33878:27;33874:1;33866:6;33862:14;33855:51;33738:175;:::o;33919:366::-;34061:3;34082:67;34146:2;34141:3;34082:67;:::i;:::-;34075:74;;34158:93;34247:3;34158:93;:::i;:::-;34276:2;34271:3;34267:12;34260:19;;33919:366;;;:::o;34291:419::-;34457:4;34495:2;34484:9;34480:18;34472:26;;34544:9;34538:4;34534:20;34530:1;34519:9;34515:17;34508:47;34572:131;34698:4;34572:131;:::i;:::-;34564:139;;34291:419;;;:::o;34716:237::-;34856:34;34852:1;34844:6;34840:14;34833:58;34925:20;34920:2;34912:6;34908:15;34901:45;34716:237;:::o;34959:366::-;35101:3;35122:67;35186:2;35181:3;35122:67;:::i;:::-;35115:74;;35198:93;35287:3;35198:93;:::i;:::-;35316:2;35311:3;35307:12;35300:19;;34959:366;;;:::o;35331:419::-;35497:4;35535:2;35524:9;35520:18;35512:26;;35584:9;35578:4;35574:20;35570:1;35559:9;35555:17;35548:47;35612:131;35738:4;35612:131;:::i;:::-;35604:139;;35331:419;;;:::o;35756:191::-;35796:4;35816:20;35834:1;35816:20;:::i;:::-;35811:25;;35850:20;35868:1;35850:20;:::i;:::-;35845:25;;35889:1;35886;35883:8;35880:34;;;35894:18;;:::i;:::-;35880:34;35939:1;35936;35932:9;35924:17;;35756:191;;;;:::o;35953:102::-;35995:8;36042:5;36039:1;36035:13;36014:34;;35953:102;;;:::o;36061:848::-;36122:5;36129:4;36153:6;36144:15;;36177:5;36168:14;;36191:712;36212:1;36202:8;36199:15;36191:712;;;36307:4;36302:3;36298:14;36292:4;36289:24;36286:50;;;36316:18;;:::i;:::-;36286:50;36366:1;36356:8;36352:16;36349:451;;;36781:4;36774:5;36770:16;36761:25;;36349:451;36831:4;36825;36821:15;36813:23;;36861:32;36884:8;36861:32;:::i;:::-;36849:44;;36191:712;;;36061:848;;;;;;;:::o;36915:1073::-;36969:5;37160:8;37150:40;;37181:1;37172:10;;37183:5;;37150:40;37209:4;37199:36;;37226:1;37217:10;;37228:5;;37199:36;37295:4;37343:1;37338:27;;;;37379:1;37374:191;;;;37288:277;;37338:27;37356:1;37347:10;;37358:5;;;37374:191;37419:3;37409:8;37406:17;37403:43;;;37426:18;;:::i;:::-;37403:43;37475:8;37472:1;37468:16;37459:25;;37510:3;37503:5;37500:14;37497:40;;;37517:18;;:::i;:::-;37497:40;37550:5;;;37288:277;;37674:2;37664:8;37661:16;37655:3;37649:4;37646:13;37642:36;37624:2;37614:8;37611:16;37606:2;37600:4;37597:12;37593:35;37577:111;37574:246;;;37730:8;37724:4;37720:19;37711:28;;37765:3;37758:5;37755:14;37752:40;;;37772:18;;:::i;:::-;37752:40;37805:5;;37574:246;37845:42;37883:3;37873:8;37867:4;37864:1;37845:42;:::i;:::-;37830:57;;;;37919:4;37914:3;37910:14;37903:5;37900:25;37897:51;;;37928:18;;:::i;:::-;37897:51;37977:4;37970:5;37966:16;37957:25;;36915:1073;;;;;;:::o;37994:285::-;38054:5;38078:23;38096:4;38078:23;:::i;:::-;38070:31;;38122:27;38140:8;38122:27;:::i;:::-;38110:39;;38168:104;38205:66;38195:8;38189:4;38168:104;:::i;:::-;38159:113;;37994:285;;;;:::o;38285:240::-;38425:34;38421:1;38413:6;38409:14;38402:58;38494:23;38489:2;38481:6;38477:15;38470:48;38285:240;:::o;38531:366::-;38673:3;38694:67;38758:2;38753:3;38694:67;:::i;:::-;38687:74;;38770:93;38859:3;38770:93;:::i;:::-;38888:2;38883:3;38879:12;38872:19;;38531:366;;;:::o;38903:419::-;39069:4;39107:2;39096:9;39092:18;39084:26;;39156:9;39150:4;39146:20;39142:1;39131:9;39127:17;39120:47;39184:131;39310:4;39184:131;:::i;:::-;39176:139;;38903:419;;;:::o;39328:151::-;39468:3;39464:1;39456:6;39452:14;39445:27;39328:151;:::o;39485:400::-;39645:3;39666:84;39748:1;39743:3;39666:84;:::i;:::-;39659:91;;39759:93;39848:3;39759:93;:::i;:::-;39877:1;39872:3;39868:11;39861:18;;39485:400;;;:::o;39891:93::-;39927:7;39967:10;39960:5;39956:22;39945:33;;39891:93;;;:::o;39990:96::-;40024:8;40073:5;40068:3;40064:15;40043:36;;39990:96;;;:::o;40092:94::-;40130:7;40159:21;40174:5;40159:21;:::i;:::-;40148:32;;40092:94;;;:::o;40192:153::-;40295:43;40314:23;40331:5;40314:23;:::i;:::-;40295:43;:::i;:::-;40290:3;40283:56;40192:153;;:::o;40351:214::-;40491:66;40487:1;40479:6;40475:14;40468:90;40351:214;:::o;40571:400::-;40731:3;40752:84;40834:1;40829:3;40752:84;:::i;:::-;40745:91;;40845:93;40934:3;40845:93;:::i;:::-;40963:1;40958:3;40954:11;40947:18;;40571:400;;;:::o;40977:939::-;41335:3;41357:148;41501:3;41357:148;:::i;:::-;41350:155;;41515:73;41584:3;41575:6;41515:73;:::i;:::-;41613:1;41608:3;41604:11;41597:18;;41632:148;41776:3;41632:148;:::i;:::-;41625:155;;41797:93;41886:3;41877:6;41797:93;:::i;:::-;41790:100;;41907:3;41900:10;;40977:939;;;;;:::o;41922:168::-;42005:11;42039:6;42034:3;42027:19;42079:4;42074:3;42070:14;42055:29;;41922:168;;;;:::o;42096:360::-;42182:3;42210:38;42242:5;42210:38;:::i;:::-;42264:70;42327:6;42322:3;42264:70;:::i;:::-;42257:77;;42343:52;42388:6;42383:3;42376:4;42369:5;42365:16;42343:52;:::i;:::-;42420:29;42442:6;42420:29;:::i;:::-;42415:3;42411:39;42404:46;;42186:270;42096:360;;;;:::o;42462:640::-;42657:4;42695:3;42684:9;42680:19;42672:27;;42709:71;42777:1;42766:9;42762:17;42753:6;42709:71;:::i;:::-;42790:72;42858:2;42847:9;42843:18;42834:6;42790:72;:::i;:::-;42872;42940:2;42929:9;42925:18;42916:6;42872:72;:::i;:::-;42991:9;42985:4;42981:20;42976:2;42965:9;42961:18;42954:48;43019:76;43090:4;43081:6;43019:76;:::i;:::-;43011:84;;42462:640;;;;;;;:::o;43108:141::-;43164:5;43195:6;43189:13;43180:22;;43211:32;43237:5;43211:32;:::i;:::-;43108:141;;;;:::o;43255:349::-;43324:6;43373:2;43361:9;43352:7;43348:23;43344:32;43341:119;;;43379:79;;:::i;:::-;43341:119;43499:1;43524:63;43579:7;43570:6;43559:9;43555:22;43524:63;:::i;:::-;43514:73;;43470:127;43255:349;;;;:::o;43610:442::-;43759:4;43797:2;43786:9;43782:18;43774:26;;43810:71;43878:1;43867:9;43863:17;43854:6;43810:71;:::i;:::-;43891:72;43959:2;43948:9;43944:18;43935:6;43891:72;:::i;:::-;43973;44041:2;44030:9;44026:18;44017:6;43973:72;:::i;:::-;43610:442;;;;;;:::o;44058:180::-;44106:77;44103:1;44096:88;44203:4;44200:1;44193:15;44227:4;44224:1;44217:15;44244:182;44384:34;44380:1;44372:6;44368:14;44361:58;44244:182;:::o;44432:366::-;44574:3;44595:67;44659:2;44654:3;44595:67;:::i;:::-;44588:74;;44671:93;44760:3;44671:93;:::i;:::-;44789:2;44784:3;44780:12;44773:19;;44432:366;;;:::o;44804:419::-;44970:4;45008:2;44997:9;44993:18;44985:26;;45057:9;45051:4;45047:20;45043:1;45032:9;45028:17;45021:47;45085:131;45211:4;45085:131;:::i;:::-;45077:139;;44804:419;;;:::o;45229:178::-;45369:30;45365:1;45357:6;45353:14;45346:54;45229:178;:::o;45413:366::-;45555:3;45576:67;45640:2;45635:3;45576:67;:::i;:::-;45569:74;;45652:93;45741:3;45652:93;:::i;:::-;45770:2;45765:3;45761:12;45754:19;;45413:366;;;:::o;45785:419::-;45951:4;45989:2;45978:9;45974:18;45966:26;;46038:9;46032:4;46028:20;46024:1;46013:9;46009:17;46002:47;46066:131;46192:4;46066:131;:::i;:::-;46058:139;;45785:419;;;:::o", + "source": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"./lib/sstore2/SSTORE2.sol\";\nimport \"./lib/Memory.sol\";\n\nstruct Token {\n uint256 bytesLength;\n address[] addresses;\n}\n\ncontract FlutterBirdSkins is ERC721Enumerable, Ownable {\n using Strings for uint256;\n\n uint256 private _maxSupply = 1000;\n uint256 private _mintPrice = 0.01 ether;\n\n mapping(uint256 => Token) private tokens;\n\n constructor() ERC721(\"FlutterBirdSkins\", \"FBS\") {}\n\n event SkinMinted(uint256 indexed tokenId);\n\n error TokenDoesNotExist();\n\n function mintSkin(uint256 newTokenId) public payable {\n require(newTokenId < _maxSupply, \"invalid tokenId. must be #999\");\n require(msg.value >= _mintPrice, \"insufficient funds\");\n\n _safeMint(msg.sender, newTokenId);\n\n emit SkinMinted(newTokenId);\n }\n\n /**\n * @notice returns a list of tokenIds that are owned by the given address\n */\n function getTokensForOwner(address _owner) public view returns (uint[] memory) {\n uint[] memory _tokensOfOwner = new uint[](ERC721.balanceOf(_owner));\n uint i;\n\n for (i = 0; i < ERC721.balanceOf(_owner); i++) {\n _tokensOfOwner[i] = ERC721Enumerable.tokenOfOwnerByIndex(_owner, i);\n }\n return (_tokensOfOwner);\n }\n\n /**\n * @notice returns a list of boolean values indicating whether the skin with that index has been minted already.\n */\n function getMintedTokenList() public view returns (bool[] memory) {\n bool[] memory _unmintedTokes = new bool[](_maxSupply);\n uint i;\n\n for (i = 0; i < _maxSupply; i++) {\n if (_exists(i)) {\n _unmintedTokes[i] = true;\n }\n }\n return _unmintedTokes;\n }\n\n function appendUri(uint256 tokenId, bytes[] calldata values) public onlyOwner {\n for (uint256 i = 0; i < values.length; i++) {\n tokens[tokenId].addresses.push(SSTORE2.write(values[i]));\n tokens[tokenId].bytesLength += values[i].length;\n }\n }\n\n function tokenURI(uint256 tokenId) public view override returns (string memory) {\n if (!_exists(tokenId)) revert TokenDoesNotExist();\n bytes memory uri = new bytes(tokens[tokenId].bytesLength);\n (uint256 uriAddr, ) = Memory.fromBytes(uri);\n for (uint256 i = 0; i < tokens[tokenId].addresses.length; i++) {\n bytes memory data = SSTORE2.read(tokens[tokenId].addresses[i]);\n (uint256 dataAddr, uint256 dataLen) = Memory.fromBytes(data);\n Memory.copy(dataAddr, uriAddr, dataLen);\n uriAddr += dataLen;\n }\n return string(uri);\n }\n\n // function setTokenUri(uint256 tokenId, string memory _tokenURI) public {\n // require(\n // _isApprovedOrOwner(_msgSender(), tokenId),\n // \"ERC721: transfer caller is not owner nor approved\"\n // );\n // _setTokenURI(tokenId, _tokenURI);\n // }\n\n // function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n // require(_exists(tokenId), \"ERC721URIStorage: URI set of nonexistent token\");\n // _tokenURIs[tokenId] = _tokenURI;\n // }\n}\n", + "sourcePath": "/app/flutter_bird_skins/contracts/FlutterBirdSkins.sol", + "ast": { + "absolutePath": "project:/contracts/FlutterBirdSkins.sol", + "exportedSymbols": { + "Address": [ + 1915 + ], + "Bytecode": [ + 3893 + ], + "Context": [ + 1945 + ], + "ERC165": [ + 2198 + ], + "ERC721": [ + 1039 + ], + "ERC721Enumerable": [ + 1527 + ], + "FlutterBirdSkins": [ + 3494 + ], + "IERC165": [ + 2210 + ], + "IERC721": [ + 1155 + ], + "IERC721Enumerable": [ + 1558 + ], + "IERC721Metadata": [ + 1585 + ], + "IERC721Receiver": [ + 1173 + ], + "Math": [ + 3076 + ], + "Memory": [ + 3781 + ], + "Ownable": [ + 112 + ], + "SSTORE2": [ + 3999 + ], + "SignedMath": [ + 3181 + ], + "Strings": [ + 2174 + ], + "Token": [ + 3193 + ] + }, + "id": 3495, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3183, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "32:23:14" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol", + "file": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol", + "id": 3184, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3495, + "sourceUnit": 1528, + "src": "57:78:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 3185, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3495, + "sourceUnit": 113, + "src": "136:52:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "project:/contracts/lib/sstore2/SSTORE2.sol", + "file": "./lib/sstore2/SSTORE2.sol", + "id": 3186, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3495, + "sourceUnit": 4000, + "src": "189:35:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "project:/contracts/lib/Memory.sol", + "file": "./lib/Memory.sol", + "id": 3187, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3495, + "sourceUnit": 3782, + "src": "225:26:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "canonicalName": "Token", + "id": 3193, + "members": [ + { + "constant": false, + "id": 3189, + "mutability": "mutable", + "name": "bytesLength", + "nameLocation": "280:11:14", + "nodeType": "VariableDeclaration", + "scope": 3193, + "src": "272:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "272:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3192, + "mutability": "mutable", + "name": "addresses", + "nameLocation": "307:9:14", + "nodeType": "VariableDeclaration", + "scope": 3193, + "src": "297:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "297:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3191, + "nodeType": "ArrayTypeName", + "src": "297:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "name": "Token", + "nameLocation": "260:5:14", + "nodeType": "StructDefinition", + "scope": 3495, + "src": "253:66:14", + "visibility": "public" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3194, + "name": "ERC721Enumerable", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1527, + "src": "350:16:14" + }, + "id": 3195, + "nodeType": "InheritanceSpecifier", + "src": "350:16:14" + }, + { + "baseName": { + "id": 3196, + "name": "Ownable", + "nodeType": "IdentifierPath", + "referencedDeclaration": 112, + "src": "368:7:14" + }, + "id": 3197, + "nodeType": "InheritanceSpecifier", + "src": "368:7:14" + } + ], + "canonicalName": "FlutterBirdSkins", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 3494, + "linearizedBaseContracts": [ + 3494, + 112, + 1527, + 1558, + 1039, + 1585, + 1155, + 2198, + 2210, + 1945 + ], + "name": "FlutterBirdSkins", + "nameLocation": "330:16:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 3200, + "libraryName": { + "id": 3198, + "name": "Strings", + "nodeType": "IdentifierPath", + "referencedDeclaration": 2174, + "src": "388:7:14" + }, + "nodeType": "UsingForDirective", + "src": "382:26:14", + "typeName": { + "id": 3199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "400:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3203, + "mutability": "mutable", + "name": "_maxSupply", + "nameLocation": "430:10:14", + "nodeType": "VariableDeclaration", + "scope": 3494, + "src": "414:33:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "414:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31303030", + "id": 3202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "443:4:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 3206, + "mutability": "mutable", + "name": "_mintPrice", + "nameLocation": "469:10:14", + "nodeType": "VariableDeclaration", + "scope": 3494, + "src": "453:39:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3204, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "453:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "302e3031", + "id": 3205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "482:10:14", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "value": "0.01" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 3211, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "533:6:14", + "nodeType": "VariableDeclaration", + "scope": 3494, + "src": "499:40:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$3193_storage_$", + "typeString": "mapping(uint256 => struct Token)" + }, + "typeName": { + "id": 3210, + "keyType": { + "id": 3207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "507:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "499:25:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$3193_storage_$", + "typeString": "mapping(uint256 => struct Token)" + }, + "valueType": { + "id": 3209, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3208, + "name": "Token", + "nodeType": "IdentifierPath", + "referencedDeclaration": 3193, + "src": "518:5:14" + }, + "referencedDeclaration": 3193, + "src": "518:5:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Token_$3193_storage_ptr", + "typeString": "struct Token" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 3218, + "nodeType": "Block", + "src": "594:2:14", + "statements": [] + }, + "id": 3219, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "466c757474657242697264536b696e73", + "id": 3214, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "567:18:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ba2c2f1ba442486612e05e03e9fb6475caf4217513c0743bd3c4612282a469e0", + "typeString": "literal_string \"FlutterBirdSkins\"" + }, + "value": "FlutterBirdSkins" + }, + { + "hexValue": "464253", + "id": 3215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "587:5:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d21348567a3dab91169e2391c5019f6bd62e203ef0492f2f93b5806dcb7243e6", + "typeString": "literal_string \"FBS\"" + }, + "value": "FBS" + } + ], + "id": 3216, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 3213, + "name": "ERC721", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1039, + "src": "560:6:14" + }, + "nodeType": "ModifierInvocation", + "src": "560:33:14" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3212, + "nodeType": "ParameterList", + "parameters": [], + "src": "557:2:14" + }, + "returnParameters": { + "id": 3217, + "nodeType": "ParameterList", + "parameters": [], + "src": "594:0:14" + }, + "scope": 3494, + "src": "546:50:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "anonymous": false, + "eventSelector": "f8a1d8b71931385fc2643b62738ac48b2b5dfed67d40bebe158bca04f9995e95", + "id": 3223, + "name": "SkinMinted", + "nameLocation": "608:10:14", + "nodeType": "EventDefinition", + "parameters": { + "id": 3222, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3221, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "635:7:14", + "nodeType": "VariableDeclaration", + "scope": 3223, + "src": "619:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3220, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "619:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "618:25:14" + }, + "src": "602:42:14" + }, + { + "errorSelector": "ceea21b6", + "id": 3225, + "name": "TokenDoesNotExist", + "nameLocation": "656:17:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3224, + "nodeType": "ParameterList", + "parameters": [], + "src": "673:2:14" + }, + "src": "650:26:14" + }, + { + "body": { + "id": 3255, + "nodeType": "Block", + "src": "735:228:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3231, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3227, + "src": "753:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3232, + "name": "_maxSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "766:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "753:23:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "696e76616c696420746f6b656e49642e206d7573742062652023393939", + "id": 3234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "778:31:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a694c7d0af81c0139c2d9cf9013fb42115382a7b8abc6fa7e09c0326c0773524", + "typeString": "literal_string \"invalid tokenId. must be #999\"" + }, + "value": "invalid tokenId. must be #999" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a694c7d0af81c0139c2d9cf9013fb42115382a7b8abc6fa7e09c0326c0773524", + "typeString": "literal_string \"invalid tokenId. must be #999\"" + } + ], + "id": 3230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "745:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "745:65:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3236, + "nodeType": "ExpressionStatement", + "src": "745:65:14" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3238, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "828:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "828:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 3240, + "name": "_mintPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3206, + "src": "841:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "828:23:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "696e73756666696369656e742066756e6473", + "id": 3242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "853:20:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c6bc4f5b747fbbc581777f92b42c6eac56dbbb4e624c68b8c1a6001ff2001fc5", + "typeString": "literal_string \"insufficient funds\"" + }, + "value": "insufficient funds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c6bc4f5b747fbbc581777f92b42c6eac56dbbb4e624c68b8c1a6001ff2001fc5", + "typeString": "literal_string \"insufficient funds\"" + } + ], + "id": 3237, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "820:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "820:54:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3244, + "nodeType": "ExpressionStatement", + "src": "820:54:14" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3246, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "895:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "895:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3248, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3227, + "src": "907:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3245, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 607, + 636 + ], + "referencedDeclaration": 607, + "src": "885:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "885:33:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3250, + "nodeType": "ExpressionStatement", + "src": "885:33:14" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3252, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3227, + "src": "945:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3251, + "name": "SkinMinted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3223, + "src": "934:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 3253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "934:22:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3254, + "nodeType": "EmitStatement", + "src": "929:27:14" + } + ] + }, + "functionSelector": "f0352651", + "id": 3256, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mintSkin", + "nameLocation": "691:8:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3227, + "mutability": "mutable", + "name": "newTokenId", + "nameLocation": "708:10:14", + "nodeType": "VariableDeclaration", + "scope": 3256, + "src": "700:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3226, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "700:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "699:20:14" + }, + "returnParameters": { + "id": 3229, + "nodeType": "ParameterList", + "parameters": [], + "src": "735:0:14" + }, + "scope": 3494, + "src": "682:281:14", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3310, + "nodeType": "Block", + "src": "1140:282:14", + "statements": [ + { + "assignments": [ + 3269 + ], + "declarations": [ + { + "constant": false, + "id": 3269, + "mutability": "mutable", + "name": "_tokensOfOwner", + "nameLocation": "1164:14:14", + "nodeType": "VariableDeclaration", + "scope": 3310, + "src": "1150:28:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3267, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1150:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3268, + "nodeType": "ArrayTypeName", + "src": "1150:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 3278, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 3275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3259, + "src": "1209:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3273, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1039, + "src": "1192:6:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$1039_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 230, + "src": "1192:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 3276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1192:24:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1181:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 3270, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1185:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3271, + "nodeType": "ArrayTypeName", + "src": "1185:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 3277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1181:36:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1150:67:14" + }, + { + "assignments": [ + 3280 + ], + "declarations": [ + { + "constant": false, + "id": 3280, + "mutability": "mutable", + "name": "i", + "nameLocation": "1232:1:14", + "nodeType": "VariableDeclaration", + "scope": 3310, + "src": "1227:6:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3279, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1227:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3281, + "nodeType": "VariableDeclarationStatement", + "src": "1227:6:14" + }, + { + "body": { + "id": 3305, + "nodeType": "Block", + "src": "1291:92:14", + "statements": [ + { + "expression": { + "id": 3303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3295, + "name": "_tokensOfOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "1305:14:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3297, + "indexExpression": { + "id": 3296, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3280, + "src": "1320:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1305:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 3300, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3259, + "src": "1362:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3301, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3280, + "src": "1370:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3298, + "name": "ERC721Enumerable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1527, + "src": "1325:16:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Enumerable_$1527_$", + "typeString": "type(contract ERC721Enumerable)" + } + }, + "id": 3299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenOfOwnerByIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 1251, + "src": "1325:36:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 3302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1325:47:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1305:67:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3304, + "nodeType": "ExpressionStatement", + "src": "1305:67:14" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3286, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3280, + "src": "1256:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "arguments": [ + { + "id": 3289, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3259, + "src": "1277:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3287, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1039, + "src": "1260:6:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$1039_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 230, + "src": "1260:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 3290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1260:24:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1256:28:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3306, + "initializationExpression": { + "expression": { + "id": 3284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3282, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3280, + "src": "1249:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 3283, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1253:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1249:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3285, + "nodeType": "ExpressionStatement", + "src": "1249:5:14" + }, + "loopExpression": { + "expression": { + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1286:3:14", + "subExpression": { + "id": 3292, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3280, + "src": "1286:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3294, + "nodeType": "ExpressionStatement", + "src": "1286:3:14" + }, + "nodeType": "ForStatement", + "src": "1244:139:14" + }, + { + "expression": { + "components": [ + { + "id": 3307, + "name": "_tokensOfOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "1400:14:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "id": 3308, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1399:16:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 3264, + "id": 3309, + "nodeType": "Return", + "src": "1392:23:14" + } + ] + }, + "documentation": { + "id": 3257, + "nodeType": "StructuredDocumentation", + "src": "969:87:14", + "text": " @notice returns a list of tokenIds that are owned by the given address" + }, + "functionSelector": "0725e898", + "id": 3311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokensForOwner", + "nameLocation": "1070:17:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3260, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3259, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "1096:6:14", + "nodeType": "VariableDeclaration", + "scope": 3311, + "src": "1088:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3258, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1088:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1087:16:14" + }, + "returnParameters": { + "id": 3264, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3263, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3311, + "src": "1125:13:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3261, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1125:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3262, + "nodeType": "ArrayTypeName", + "src": "1125:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "1124:15:14" + }, + "scope": 3494, + "src": "1061:361:14", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3357, + "nodeType": "Block", + "src": "1625:257:14", + "statements": [ + { + "assignments": [ + 3322 + ], + "declarations": [ + { + "constant": false, + "id": 3322, + "mutability": "mutable", + "name": "_unmintedTokes", + "nameLocation": "1649:14:14", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1635:28:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" + }, + "typeName": { + "baseType": { + "id": 3320, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1635:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3321, + "nodeType": "ArrayTypeName", + "src": "1635:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + }, + "visibility": "internal" + } + ], + "id": 3328, + "initialValue": { + "arguments": [ + { + "id": 3326, + "name": "_maxSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "1677:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1666:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (bool[] memory)" + }, + "typeName": { + "baseType": { + "id": 3323, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1670:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3324, + "nodeType": "ArrayTypeName", + "src": "1670:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1666:22:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1635:53:14" + }, + { + "assignments": [ + 3330 + ], + "declarations": [ + { + "constant": false, + "id": 3330, + "mutability": "mutable", + "name": "i", + "nameLocation": "1703:1:14", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1698:6:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3329, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1698:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3331, + "nodeType": "VariableDeclarationStatement", + "src": "1698:6:14" + }, + { + "body": { + "id": 3353, + "nodeType": "Block", + "src": "1748:97:14", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 3343, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3330, + "src": "1774:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3342, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "1766:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1766:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3352, + "nodeType": "IfStatement", + "src": "1762:73:14", + "trueBody": { + "id": 3351, + "nodeType": "Block", + "src": "1778:57:14", + "statements": [ + { + "expression": { + "id": 3349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3345, + "name": "_unmintedTokes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3322, + "src": "1796:14:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 3347, + "indexExpression": { + "id": 3346, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3330, + "src": "1811:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1796:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1816:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1796:24:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3350, + "nodeType": "ExpressionStatement", + "src": "1796:24:14" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3336, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3330, + "src": "1727:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3337, + "name": "_maxSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "1731:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1727:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3354, + "initializationExpression": { + "expression": { + "id": 3334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3332, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3330, + "src": "1720:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1724:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1720:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3335, + "nodeType": "ExpressionStatement", + "src": "1720:5:14" + }, + "loopExpression": { + "expression": { + "id": 3340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1743:3:14", + "subExpression": { + "id": 3339, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3330, + "src": "1743:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3341, + "nodeType": "ExpressionStatement", + "src": "1743:3:14" + }, + "nodeType": "ForStatement", + "src": "1715:130:14" + }, + { + "expression": { + "id": 3355, + "name": "_unmintedTokes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3322, + "src": "1861:14:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "functionReturnParameters": 3317, + "id": 3356, + "nodeType": "Return", + "src": "1854:21:14" + } + ] + }, + "documentation": { + "id": 3312, + "nodeType": "StructuredDocumentation", + "src": "1428:126:14", + "text": " @notice returns a list of boolean values indicating whether the skin with that index has been minted already." + }, + "functionSelector": "19a0b41b", + "id": 3358, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMintedTokenList", + "nameLocation": "1568:18:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3313, + "nodeType": "ParameterList", + "parameters": [], + "src": "1586:2:14" + }, + "returnParameters": { + "id": 3317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3316, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3358, + "src": "1610:13:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" + }, + "typeName": { + "baseType": { + "id": 3314, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1610:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3315, + "nodeType": "ArrayTypeName", + "src": "1610:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + }, + "visibility": "internal" + } + ], + "src": "1609:15:14" + }, + "scope": 3494, + "src": "1559:323:14", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3404, + "nodeType": "Block", + "src": "1966:202:14", + "statements": [ + { + "body": { + "id": 3402, + "nodeType": "Block", + "src": "2020:142:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "baseExpression": { + "id": 3386, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3363, + "src": "2079:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 3388, + "indexExpression": { + "id": 3387, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3369, + "src": "2086:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2079:9:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "id": 3384, + "name": "SSTORE2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3999, + "src": "2065:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SSTORE2_$3999_$", + "typeString": "type(library SSTORE2)" + } + }, + "id": 3385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "write", + "nodeType": "MemberAccess", + "referencedDeclaration": 3930, + "src": "2065:13:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes memory) returns (address)" + } + }, + "id": 3389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2065:24:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "baseExpression": { + "id": 3379, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3211, + "src": "2034:6:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$3193_storage_$", + "typeString": "mapping(uint256 => struct Token storage ref)" + } + }, + "id": 3381, + "indexExpression": { + "id": 3380, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3360, + "src": "2041:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2034:15:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Token_$3193_storage", + "typeString": "struct Token storage ref" + } + }, + "id": 3382, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "addresses", + "nodeType": "MemberAccess", + "referencedDeclaration": 3192, + "src": "2034:25:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "2034:30:14", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$", + "typeString": "function (address[] storage pointer,address)" + } + }, + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2034:56:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "2034:56:14" + }, + { + "expression": { + "id": 3400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 3392, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3211, + "src": "2104:6:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$3193_storage_$", + "typeString": "mapping(uint256 => struct Token storage ref)" + } + }, + "id": 3394, + "indexExpression": { + "id": 3393, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3360, + "src": "2111:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2104:15:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Token_$3193_storage", + "typeString": "struct Token storage ref" + } + }, + "id": 3395, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "bytesLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 3189, + "src": "2104:27:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 3396, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3363, + "src": "2135:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 3398, + "indexExpression": { + "id": 3397, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3369, + "src": "2142:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2135:9:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 3399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2135:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2104:47:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3401, + "nodeType": "ExpressionStatement", + "src": "2104:47:14" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3372, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3369, + "src": "1996:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 3373, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3363, + "src": "2000:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 3374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2000:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1996:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3403, + "initializationExpression": { + "assignments": [ + 3369 + ], + "declarations": [ + { + "constant": false, + "id": 3369, + "mutability": "mutable", + "name": "i", + "nameLocation": "1989:1:14", + "nodeType": "VariableDeclaration", + "scope": 3403, + "src": "1981:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3368, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1981:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3371, + "initialValue": { + "hexValue": "30", + "id": 3370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1993:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1981:13:14" + }, + "loopExpression": { + "expression": { + "id": 3377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2015:3:14", + "subExpression": { + "id": 3376, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3369, + "src": "2015:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3378, + "nodeType": "ExpressionStatement", + "src": "2015:3:14" + }, + "nodeType": "ForStatement", + "src": "1976:186:14" + } + ] + }, + "functionSelector": "2f0fe447", + "id": 3405, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3366, + "kind": "modifierInvocation", + "modifierName": { + "id": 3365, + "name": "onlyOwner", + "nodeType": "IdentifierPath", + "referencedDeclaration": 31, + "src": "1956:9:14" + }, + "nodeType": "ModifierInvocation", + "src": "1956:9:14" + } + ], + "name": "appendUri", + "nameLocation": "1897:9:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3364, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3360, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1915:7:14", + "nodeType": "VariableDeclaration", + "scope": 3405, + "src": "1907:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3359, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1907:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3363, + "mutability": "mutable", + "name": "values", + "nameLocation": "1941:6:14", + "nodeType": "VariableDeclaration", + "scope": 3405, + "src": "1924:23:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 3361, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1924:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 3362, + "nodeType": "ArrayTypeName", + "src": "1924:7:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "1906:42:14" + }, + "returnParameters": { + "id": 3367, + "nodeType": "ParameterList", + "parameters": [], + "src": "1966:0:14" + }, + "scope": 3494, + "src": "1888:280:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 317 + ], + "body": { + "id": 3492, + "nodeType": "Block", + "src": "2254:532:14", + "statements": [ + { + "condition": { + "id": 3416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2268:17:14", + "subExpression": { + "arguments": [ + { + "id": 3414, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "2277:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3413, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "2269:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2269:16:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3420, + "nodeType": "IfStatement", + "src": "2264:49:14", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3417, + "name": "TokenDoesNotExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3225, + "src": "2294:17:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2294:19:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3419, + "nodeType": "RevertStatement", + "src": "2287:26:14" + } + }, + { + "assignments": [ + 3422 + ], + "declarations": [ + { + "constant": false, + "id": 3422, + "mutability": "mutable", + "name": "uri", + "nameLocation": "2336:3:14", + "nodeType": "VariableDeclaration", + "scope": 3492, + "src": "2323:16:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3421, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2323:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3430, + "initialValue": { + "arguments": [ + { + "expression": { + "baseExpression": { + "id": 3425, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3211, + "src": "2352:6:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$3193_storage_$", + "typeString": "mapping(uint256 => struct Token storage ref)" + } + }, + "id": 3427, + "indexExpression": { + "id": 3426, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "2359:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2352:15:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Token_$3193_storage", + "typeString": "struct Token storage ref" + } + }, + "id": 3428, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bytesLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 3189, + "src": "2352:27:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2342:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 3423, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2346:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2342:38:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2323:57:14" + }, + { + "assignments": [ + 3432, + null + ], + "declarations": [ + { + "constant": false, + "id": 3432, + "mutability": "mutable", + "name": "uriAddr", + "nameLocation": "2399:7:14", + "nodeType": "VariableDeclaration", + "scope": 3492, + "src": "2391:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3431, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2391:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 3437, + "initialValue": { + "arguments": [ + { + "id": 3435, + "name": "uri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3422, + "src": "2429:3:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3433, + "name": "Memory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3781, + "src": "2412:6:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Memory_$3781_$", + "typeString": "type(library Memory)" + } + }, + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fromBytes", + "nodeType": "MemberAccess", + "referencedDeclaration": 3735, + "src": "2412:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (bytes memory) pure returns (uint256,uint256)" + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2412:21:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2390:43:14" + }, + { + "body": { + "id": 3485, + "nodeType": "Block", + "src": "2506:246:14", + "statements": [ + { + "assignments": [ + 3453 + ], + "declarations": [ + { + "constant": false, + "id": 3453, + "mutability": "mutable", + "name": "data", + "nameLocation": "2533:4:14", + "nodeType": "VariableDeclaration", + "scope": 3485, + "src": "2520:17:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3452, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2520:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3463, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 3456, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3211, + "src": "2553:6:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$3193_storage_$", + "typeString": "mapping(uint256 => struct Token storage ref)" + } + }, + "id": 3458, + "indexExpression": { + "id": 3457, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "2560:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2553:15:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Token_$3193_storage", + "typeString": "struct Token storage ref" + } + }, + "id": 3459, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "addresses", + "nodeType": "MemberAccess", + "referencedDeclaration": 3192, + "src": "2553:25:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3461, + "indexExpression": { + "id": 3460, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "2579:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2553:28:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3454, + "name": "SSTORE2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3999, + "src": "2540:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SSTORE2_$3999_$", + "typeString": "type(library SSTORE2)" + } + }, + "id": 3455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "read", + "nodeType": "MemberAccess", + "referencedDeclaration": 3950, + "src": "2540:12:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address) view returns (bytes memory)" + } + }, + "id": 3462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2540:42:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2520:62:14" + }, + { + "assignments": [ + 3465, + 3467 + ], + "declarations": [ + { + "constant": false, + "id": 3465, + "mutability": "mutable", + "name": "dataAddr", + "nameLocation": "2605:8:14", + "nodeType": "VariableDeclaration", + "scope": 3485, + "src": "2597:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2597:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "dataLen", + "nameLocation": "2623:7:14", + "nodeType": "VariableDeclaration", + "scope": 3485, + "src": "2615:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2615:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3472, + "initialValue": { + "arguments": [ + { + "id": 3470, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3453, + "src": "2651:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3468, + "name": "Memory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3781, + "src": "2634:6:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Memory_$3781_$", + "typeString": "type(library Memory)" + } + }, + "id": 3469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fromBytes", + "nodeType": "MemberAccess", + "referencedDeclaration": 3735, + "src": "2634:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (bytes memory) pure returns (uint256,uint256)" + } + }, + "id": 3471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2634:22:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2596:60:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3476, + "name": "dataAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "2682:8:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3477, + "name": "uriAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3432, + "src": "2692:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3478, + "name": "dataLen", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "2701:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3473, + "name": "Memory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3781, + "src": "2670:6:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Memory_$3781_$", + "typeString": "type(library Memory)" + } + }, + "id": 3475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "copy", + "nodeType": "MemberAccess", + "referencedDeclaration": 3701, + "src": "2670:11:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256) pure" + } + }, + "id": 3479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2670:39:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3480, + "nodeType": "ExpressionStatement", + "src": "2670:39:14" + }, + { + "expression": { + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3481, + "name": "uriAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3432, + "src": "2723:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 3482, + "name": "dataLen", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "2734:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2723:18:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3484, + "nodeType": "ExpressionStatement", + "src": "2723:18:14" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3442, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "2463:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "expression": { + "baseExpression": { + "id": 3443, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3211, + "src": "2467:6:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$3193_storage_$", + "typeString": "mapping(uint256 => struct Token storage ref)" + } + }, + "id": 3445, + "indexExpression": { + "id": 3444, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "2474:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2467:15:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Token_$3193_storage", + "typeString": "struct Token storage ref" + } + }, + "id": 3446, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "addresses", + "nodeType": "MemberAccess", + "referencedDeclaration": 3192, + "src": "2467:25:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2467:32:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2463:36:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3486, + "initializationExpression": { + "assignments": [ + 3439 + ], + "declarations": [ + { + "constant": false, + "id": 3439, + "mutability": "mutable", + "name": "i", + "nameLocation": "2456:1:14", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "2448:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2448:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3441, + "initialValue": { + "hexValue": "30", + "id": 3440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2460:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2448:13:14" + }, + "loopExpression": { + "expression": { + "id": 3450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2501:3:14", + "subExpression": { + "id": 3449, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "2501:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3451, + "nodeType": "ExpressionStatement", + "src": "2501:3:14" + }, + "nodeType": "ForStatement", + "src": "2443:309:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3489, + "name": "uri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3422, + "src": "2775:3:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2768:6:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 3487, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2768:6:14", + "typeDescriptions": {} + } + }, + "id": 3490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2768:11:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 3412, + "id": 3491, + "nodeType": "Return", + "src": "2761:18:14" + } + ] + }, + "functionSelector": "c87b56dd", + "id": 3493, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "2183:8:14", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3409, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2221:8:14" + }, + "parameters": { + "id": 3408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3407, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2200:7:14", + "nodeType": "VariableDeclaration", + "scope": 3493, + "src": "2192:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3406, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2192:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2191:17:14" + }, + "returnParameters": { + "id": 3412, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3493, + "src": "2239:13:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3410, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2239:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2238:15:14" + }, + "scope": 3494, + "src": "2174:612:14", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 3495, + "src": "321:2992:14", + "usedErrors": [ + 3225, + 3791, + 3899 + ] + } + ], + "src": "32:3282:14" + }, + "compiler": { + "name": "solc", + "version": "0.8.14+commit.80d49f37.Emscripten.clang" + }, + "networks": { + "1001": { + "events": { + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + "0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + "0xf8a1d8b71931385fc2643b62738ac48b2b5dfed67d40bebe158bca04f9995e95": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "SkinMinted", + "type": "event" + }, + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + } + }, + "links": {}, + "address": "0xde8056279F21F43725cE2226457E98F1cDFef1f3", + "transactionHash": "0x963c3ad59b3849334025bb289297acc1fe3dfdd8dfc7ba7a5f9f67ce7a3e24b7" + }, + "5777": { + "events": { + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + "0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + "0xf8a1d8b71931385fc2643b62738ac48b2b5dfed67d40bebe158bca04f9995e95": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "SkinMinted", + "type": "event" + }, + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + } + }, + "links": {}, + "address": "0xa5A0f85CE806205436618BcfD382BA45c8B9C476", + "transactionHash": "0x3b52a52af00fa48207edcc034b62e514b57115e61de92541d6cc3039a771bd03" + } + }, + "schemaVersion": "3.4.16", + "updatedAt": "2024-07-19T02:04:43.792Z", + "networkType": "ethereum", + "devdoc": { + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "See {IERC721-approve}." + }, + "balanceOf(address)": { + "details": "See {IERC721-balanceOf}." + }, + "getApproved(uint256)": { + "details": "See {IERC721-getApproved}." + }, + "isApprovedForAll(address,address)": { + "details": "See {IERC721-isApprovedForAll}." + }, + "name()": { + "details": "See {IERC721Metadata-name}." + }, + "owner()": { + "details": "Returns the address of the current owner." + }, + "ownerOf(uint256)": { + "details": "See {IERC721-ownerOf}." + }, + "renounceOwnership()": { + "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "setApprovalForAll(address,bool)": { + "details": "See {IERC721-setApprovalForAll}." + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + }, + "symbol()": { + "details": "See {IERC721Metadata-symbol}." + }, + "tokenByIndex(uint256)": { + "details": "See {IERC721Enumerable-tokenByIndex}." + }, + "tokenOfOwnerByIndex(address,uint256)": { + "details": "See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "tokenURI(uint256)": { + "details": "See {IERC721Metadata-tokenURI}." + }, + "totalSupply()": { + "details": "See {IERC721Enumerable-totalSupply}." + }, + "transferFrom(address,address,uint256)": { + "details": "See {IERC721-transferFrom}." + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "getMintedTokenList()": { + "notice": "returns a list of boolean values indicating whether the skin with that index has been minted already." + }, + "getTokensForOwner(address)": { + "notice": "returns a list of tokenIds that are owned by the given address" + } + }, + "version": 1 + } +} \ No newline at end of file diff --git a/flutter_bird_app/assets/flutterbirds.abi.json b/flutter_bird_app/assets/flutterbirds.abi.json deleted file mode 100644 index 48ee820..0000000 --- a/flutter_bird_app/assets/flutterbirds.abi.json +++ /dev/null @@ -1,497 +0,0 @@ -[ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "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": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "SkinMinted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "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", - "constant": true - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "tokenByIndex", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "tokenOfOwnerByIndex", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newTokenId", - "type": "uint256" - } - ], - "name": "mintSkin", - "outputs": [], - "stateMutability": "payable", - "type": "function", - "payable": true - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - } - ], - "name": "getTokensForOwner", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [], - "name": "getMintedTokenList", - "outputs": [ - { - "internalType": "bool[]", - "name": "", - "type": "bool[]" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "string", - "name": "_tokenURI", - "type": "string" - } - ], - "name": "setTokenUri", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] \ No newline at end of file diff --git a/flutter_bird_app/lib/config.dart b/flutter_bird_app/lib/config.dart index 249dec3..bd3d939 100644 --- a/flutter_bird_app/lib/config.dart +++ b/flutter_bird_app/lib/config.dart @@ -1,5 +1,5 @@ const chainId = 1001; // Klaytn Testnet baobab -const flutterBirdSkinsContractAddress = '0xAca84dc56A05bbC7a335a74d9e13C91dfA2Ea16D'; +const flutterBirdSkinsContractAddress = '0xde8056279F21F43725cE2226457E98F1cDFef1f3'; const ipfsGatewayUrl = 'https://nftstorage.link/ipfs/'; //FIXME: const alchemyNodeProviderUrl = 'https://eth-goerli.g.alchemy.com/v2/'; const walletConnectBridge = 'https://bridge.walletconnect.org'; diff --git a/flutter_bird_app/lib/controller/authentication_service.dart b/flutter_bird_app/lib/controller/authentication_service.dart index 31790c2..de7effd 100644 --- a/flutter_bird_app/lib/controller/authentication_service.dart +++ b/flutter_bird_app/lib/controller/authentication_service.dart @@ -145,7 +145,7 @@ class AuthenticationServiceImpl implements AuthenticationService { requiredNamespaces: { 'eip155': RequiredNamespace( chains: ['eip155:$operatingChain'], - methods: ['personal_sign'], + methods: ['personal_sign', 'eth_sendTransaction'], events: [], ), }, @@ -199,6 +199,33 @@ class AuthenticationServiceImpl implements AuthenticationService { } } + Future sendTransaction({ + required String topic, + required int chainId, + required Map txParams, + }) async { + try { + final dynamic txHash = await _connector!.request( + topic: topic, + chainId: 'eip155:$chainId', + request: SessionRequestParams( + method: 'eth_sendTransaction', + params: [txParams], + ), + ); + + if (txHash is String) { + return txHash; + } else { + print('Unexpected response type: ${txHash.runtimeType}'); + return null; + } + } catch (e) { + print('Error sending transaction: $e'); + return null; + } + } + Future _updateConnectionStatus() async { final sessions = _connector?.sessions.getAll(); } diff --git a/flutter_bird_app/lib/controller/authorization_service.dart b/flutter_bird_app/lib/controller/authorization_service.dart index 2bc3823..3af7fa1 100644 --- a/flutter_bird_app/lib/controller/authorization_service.dart +++ b/flutter_bird_app/lib/controller/authorization_service.dart @@ -55,8 +55,8 @@ class AuthorizationServiceImpl implements AuthorizationService { futures.add(contract.tokenURI(tokenId).then((tokenUri) async { // Replace placeholder with actual skin - Skin? skin = await getSkin(tokenUri, tokenId.toInt()); - if (skin == null) { + Skin? skin = await Skin(tokenId: tokenId.toInt(), name: skinName, imageLocation: tokenUri); + if (tokenUri.isEmpty) { skins?.remove(tokenId.toInt()); } else { skins?[tokenId.toInt()] = skin; @@ -68,26 +68,4 @@ class AuthorizationServiceImpl implements AuthorizationService { await Future.value(futures); } - /// Uses the token URI to fetch the image file from IPFS - /// @return the Skin Object with the correct image data - Future getSkin(String tokenUri, int tokenId) async { - Uri metadataUrl = Uri.parse(_ipfsUriToGateway(tokenUri)); - - try { - Response? metadataResponse = await http.get(metadataUrl); - Map metadata = jsonDecode(metadataResponse.body); - - String skinName = metadata['name']; - String imageIpfsUri = metadata['image']; - String imageUrl = _ipfsUriToGateway(imageIpfsUri); - - return Skin(tokenId: tokenId, name: skinName, imageLocation: imageUrl); - } on Exception catch (e) { - log('Failed to load metadata for tokenURI $tokenUri'); - log(e.toString()); - } - return null; - } - - String _ipfsUriToGateway(String ipfsUri) => ipfsGatewayUrl + ipfsUri.substring(7); } diff --git a/flutter_bird_app/lib/controller/flutter_bird_controller.dart b/flutter_bird_app/lib/controller/flutter_bird_controller.dart index 7580c9a..e626270 100644 --- a/flutter_bird_app/lib/controller/flutter_bird_controller.dart +++ b/flutter_bird_app/lib/controller/flutter_bird_controller.dart @@ -1,7 +1,10 @@ import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; import 'package:flutter_bird/controller/authentication_service.dart'; import 'package:flutter_bird/controller/authorization_service.dart'; +import 'package:flutter_bird/controller/mint_nft_service.dart'; import 'package:flutter_bird/config.dart'; +import 'package:flutter/services.dart'; import '../model/account.dart'; import '../model/skin.dart'; @@ -10,6 +13,7 @@ import '../model/wallet_provider.dart'; class FlutterBirdController extends ChangeNotifier { late final AuthenticationService _authenticationService; late final AuthorizationService _authorizationService; + late final NFTMinterService _nftMinterService; // Authentication state List get availableWallets => _authenticationService.availableWallets; @@ -24,6 +28,8 @@ class FlutterBirdController extends ChangeNotifier { bool get isConnected => _authenticationService.isConnected; + NFTMinterService get nftMinterService => _nftMinterService; + WalletProvider? get lastUsedWallet => (_authenticationService as AuthenticationServiceImpl).lastUsedWallet; String? get currentAddressShort => @@ -57,6 +63,9 @@ class FlutterBirdController extends ChangeNotifier { await (_authenticationService as AuthenticationServiceImpl).initialize(isInLiff); _authorizationService = AuthorizationServiceImpl(contractAddress: skinContractAddress, rpcUrl: rpcUrl); + + final String abiJsonString = await rootBundle.loadString('assets/FlutterBirdSkins.json'); + _nftMinterService = NFTMinterService(rpcUrl, flutterBirdSkinsContractAddress, abiJsonString, _authenticationService as AuthenticationServiceImpl); } catch (e) { lastError = 'Initialization error: $e'; @@ -65,6 +74,10 @@ class FlutterBirdController extends ChangeNotifier { } } + Future mintNft() async { + await _nftMinterService.mintRandomSkin(); + } + Future verifySignature() async { try { bool result = await (_authenticationService as AuthenticationServiceImpl).verifySignature(); diff --git a/flutter_bird_app/lib/controller/mint_nft_service.dart b/flutter_bird_app/lib/controller/mint_nft_service.dart new file mode 100644 index 0000000..33b4a91 --- /dev/null +++ b/flutter_bird_app/lib/controller/mint_nft_service.dart @@ -0,0 +1,239 @@ +import 'dart:convert'; +import 'dart:typed_data'; +import 'dart:math'; +import 'package:flutter/services.dart'; +import 'package:web3dart/web3dart.dart'; +import 'package:http/http.dart' as http; +import './authentication_service.dart'; +import 'package:web3dart/crypto.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; + +class NFTMinterService { + final Web3Client _client; + final EthereumAddress _contractAddress; + final DeployedContract _contract; + final AuthenticationServiceImpl _authService; + + String key = dotenv.env['PRIVATE_KEY'] ?? ''; + + NFTMinterService(String rpcUrl, String contractAddress, String abiJsonString, AuthenticationServiceImpl _authService) + : _client = Web3Client(rpcUrl, http.Client()), + _authService = _authService, + _contractAddress = EthereumAddress.fromHex(contractAddress), + _contract = _createContract(contractAddress, abiJsonString); + + static DeployedContract _createContract(String contractAddress, String abiJsonString) { + try { + final abiJson = jsonDecode(abiJsonString); + final abiList = abiJson['abi'] as List; + return DeployedContract( + ContractAbi.fromJson(jsonEncode(abiList), 'FlutterBirdSkins'), + EthereumAddress.fromHex(contractAddress), + ); + } catch (e) { + throw Exception('Failed to create contract: $e\nABI JSON: $abiJsonString'); + } + } + + Future mintRandomSkin() async { + if (!_authService.isAuthenticated || !_authService.isOnOperatingChain) { + throw Exception('Wallet not connected or on wrong chain'); + } + + final session = _authService.currentSession; + if (session == null) { + throw Exception('No active WalletConnect session'); + } + + try { + // Get minted status list + final mintedStatusList = await _client.call( + contract: _contract, + function: _contract.function('getMintedTokenList'), + params: [], + ); + + final unmintedTokenId = _getUnmintedTokenId(mintedStatusList[0]); + + if (unmintedTokenId == null) { + throw Exception("No unminted token available. All tokenIds have been minted."); + } + + // Create and upload URI + await _createAndUploadUri(unmintedTokenId); + + // Prepare transaction data + final function = _contract.function('mintSkin'); + final data = function.encodeCall([BigInt.from(unmintedTokenId)]); + + final sender = EthereumAddress.fromHex(_authService.authenticatedAccount!.address); + final gasEstimate = (await _client.estimateGas( + sender: sender, + to: _contractAddress, + data: data, + value: EtherAmount.fromInt(EtherUnit.ether, 1), + ) * BigInt.from(110)) ~/ BigInt.from(100); + + final gasPrice = await _client.getGasPrice(); + final nonce = await _client.getTransactionCount(sender); + + final chainId = _authService.operatingChain; + + final totalCost = gasEstimate * gasPrice.getInWei + BigInt.from(10).pow(18); + + final balance = await _client.getBalance(sender); + if (balance.getInWei < totalCost) { + throw Exception('Insufficient balance. Required: ${totalCost}, Available: ${balance.getInWei}'); + } + + final gasLimit = gasEstimate * BigInt.from(2); + final txParams = { + 'from': sender.hexEip55, + 'to': _contractAddress.hexEip55, + 'data': '0x${bytesToHex(data)}', + 'value': '0x${BigInt.from(10).pow(18).toRadixString(16)}', // 1 ETH + 'gasPrice': '0x${gasPrice.getInWei.toRadixString(16)}', + 'gasLimit': '0x${gasLimit.toRadixString(16)}', + 'nonce': '0x${nonce.toRadixString(16)}', + }; + + + final txHash = await _authService.sendTransaction( + topic: session.topic, + chainId: chainId, + txParams: txParams, + ); + + if (txHash == null) { + throw Exception('Failed to send transaction'); + } + + return unmintedTokenId; + + } catch (e) { + print('Error minting NFT: $e'); + rethrow; + } + } + + Future _createAndUploadUri(int tokenId) async { + print('Create And Upload uri NFT # $tokenId'); + final String imageUrl = 'https://flutter-bird-image-server.vercel.app'; + final String name = 'Flutter Bird - $tokenId'; + final String description = 'NFT Flutter Bird'; + + try { + final uri = await _createUri( + name: name, + description: description, + imageServerUrl: imageUrl, + tokenId: tokenId, + ); + + await _uploadUri( + BigInt.from(tokenId), + uri, + ); + + return uri; + } catch (e) { + print('Error: $e'); + rethrow; + } + } + + + Future _createUri({ + required String name, + required String description, + required String imageServerUrl, + required int tokenId, + }) async { + try { + final response = await http.get( + Uri.parse('$imageServerUrl/api/image/$tokenId'), + headers: { + 'Access-Control-Allow-Origin': '*', + }, + ); + + if (response.statusCode != 200) { + throw Exception('Failed to load image: ${response.statusCode}'); + } + + final Map responseData = jsonDecode(response.body); + + final String imageDataUrl = responseData['imageDataUrl']; + + final json = jsonEncode({ + 'name': name, + 'description': description, + 'image': imageDataUrl, + }).trim(); + + return 'data:application/json,${Uri.encodeFull(json)}'; + } catch (e) { + print('Error creating URI: $e'); + rethrow; + } + } + + Future _uploadUri(BigInt tokenId, String uri) async { + final data = Uint8List.fromList(utf8.encode(uri)); + final function = _contract.function('appendUri'); + + Uint8List encodedCall = function.encodeCall([tokenId, [data]]); + + try { + final privateKey = EthPrivateKey.fromHex(key); + final sender = await privateKey.address; + + final gasEstimate = await _client.estimateGas( + sender: sender, + to: _contractAddress, + data: encodedCall, + ); + + final gasPrice = await _client.getGasPrice(); + final nonce = await _client.getTransactionCount(sender); + final chainId = _authService.operatingChain; + + final tx = Transaction( + to: _contractAddress, + from: sender, + nonce: nonce, + gasPrice: gasPrice, + maxGas: gasEstimate.toInt(), + data: encodedCall, + ); + + final signedTx = await _client.signTransaction(privateKey, tx, chainId: chainId); + final txResult = await _client.sendRawTransaction(signedTx); + + print('Transaction hash: $txResult'); + } catch (e) { + print('Error sending transaction: $e'); + rethrow; + } + + } + + int? _getUnmintedTokenId(List mintedStatusList) { + final unmintedTokenIds = List.generate( + mintedStatusList.length, + (i) => i, + ).where((i) => !mintedStatusList[i]).toList(); + + if (unmintedTokenIds.isEmpty) return null; + + return unmintedTokenIds[Random().nextInt(unmintedTokenIds.length)]; + } + + String _bytesToHex(Uint8List bytes) { + return '0x' + bytes.map((byte) => byte.toRadixString(16).padLeft(2, '0')).join(); + } + + void dispose() { + _client.dispose(); + } +} diff --git a/flutter_bird_app/lib/view/main_menu_view.dart b/flutter_bird_app/lib/view/main_menu_view.dart index 10e6778..234d068 100644 --- a/flutter_bird_app/lib/view/main_menu_view.dart +++ b/flutter_bird_app/lib/view/main_menu_view.dart @@ -8,6 +8,9 @@ import 'package:provider/provider.dart'; import '../controller/flutter_bird_controller.dart'; import '../controller/persistence/persistence_service.dart'; +import '../controller/authentication_service.dart'; +import '../controller/mint_nft_service.dart'; +import '../config.dart'; import '../extensions.dart'; import 'game_view.dart'; import 'widgets/background.dart'; @@ -26,6 +29,7 @@ class MainMenuView extends StatefulWidget { class _MainMenuViewState extends State with AutomaticKeepAliveClientMixin { bool playing = false; + bool _isOverlayVisible = false; int lastScore = 0; int? highScore; @@ -101,12 +105,14 @@ class _MainMenuViewState extends State with AutomaticKeepAliveClie const Background(), _buildBirdSelector(web3Service), _buildMenu(web3Service), + _buildAuthenticationView(web3Service), + if (_isOverlayVisible) _buildOverlayMenu(web3Service), ]), ), ); }), ); - } catch(e, stackTrace) { + } catch (e, stackTrace) { print("Error in MainMenuView: $e"); print("StackTrace: $stackTrace"); return Scaffold( @@ -115,7 +121,6 @@ class _MainMenuViewState extends State with AutomaticKeepAliveClie ), ); } - } Widget _buildMenu(FlutterBirdController web3Service) => Column( @@ -156,7 +161,7 @@ class _MainMenuViewState extends State with AutomaticKeepAliveClie )), Expanded( flex: 1, - child: _buildAuthenticationView(web3Service), + child: SizedBox(), ) ], ); @@ -263,68 +268,110 @@ class _MainMenuViewState extends State with AutomaticKeepAliveClie ], ); - _buildAuthenticationView(FlutterBirdController web3Service) { - String statusText = 'No Wallet\nConnected'; - if (web3Service.isAuthenticated) { - statusText = web3Service.isOnOperatingChain ? 'Wallet Connected' : 'Wallet on wrong chain'; - } + Widget _buildAuthenticationView(FlutterBirdController web3Service) { + return Positioned( + bottom: 20, + right: 32, + child: GestureDetector( + onTap: _toggleOverlay, + child: Container( + height: 64, + width: 64, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + color: Colors.white, + boxShadow: const [ + BoxShadow( + color: Colors.black26, + blurRadius: 4, + offset: Offset(2, 2), + ) + ], + ), + child: const Icon(Icons.menu, color: Colors.black), + ), + ), + ); + } - return SafeArea( + void _toggleOverlay() { + setState(() { + _isOverlayVisible = !_isOverlayVisible; + }); + } + + Widget _buildOverlayMenu(FlutterBirdController web3Service) { + if (!_isOverlayVisible) return const SizedBox.shrink(); + + return Positioned.fill( child: GestureDetector( - onTap: _showAuthenticationPopUp, - child: Stack( - clipBehavior: Clip.none, - children: [ - Positioned( - bottom: 20, - left: 32, - child: Row( + onTap: _toggleOverlay, + child: Container( + color: Colors.black54, + child: Center( + child: Container( + width: 300, + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + ), + child: Column( + mainAxisSize: MainAxisSize.min, children: [ - Container( - height: 64, - width: 64, - decoration: - BoxDecoration(borderRadius: BorderRadius.circular(8), color: Colors.white, boxShadow: const [ - BoxShadow( - color: Colors.black26, - blurRadius: 4, - offset: Offset(2, 2), - ) - ]), - child: Center( - child: - kIsWeb ? Image.network('images/walletconnect.png') : Image.asset('images/walletconnect.png'), - ), - ), - const SizedBox( - width: 12, - ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - statusText, - style: Theme.of(context) - .textTheme - .titleMedium - ?.copyWith(color: Colors.white, fontWeight: FontWeight.bold), - ), - if (web3Service.isAuthenticated) - Text( - web3Service.currentAddressShort ?? '', - style: Theme.of(context).textTheme.bodyMedium?.copyWith(color: Colors.white), - ) - ], - ) + _buildWalletConnectButton(web3Service), + const SizedBox(height: 16), + _buildMintButton(web3Service), ], ), ), - ], + ), ), ), ); } + Widget _buildWalletConnectButton(FlutterBirdController web3Service) { + String statusText = web3Service.isAuthenticated + ? (web3Service.isOnOperatingChain ? 'Wallet Connected' : 'Wrong Chain') + : 'Connect Wallet'; + + return ElevatedButton( + onPressed: _showAuthenticationPopUp, + child: Text(statusText), + ); + } + + Widget _buildMintButton(FlutterBirdController web3Service) { + return ElevatedButton( + onPressed: web3Service.isAuthenticated && web3Service.isOnOperatingChain + ? () => _mintNFT(web3Service) + : null, + child: const Text('Mint Bird'), + ); + } + + Future _mintNFT(FlutterBirdController web3Service) async { + try { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Minting process started. Please check your wallet for confirmation.')), + ); + + int newTokenId = await web3Service.nftMinterService.mintRandomSkin(); + + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('NFT #$newTokenId minted successfully!')), + ); + + await web3Service.authorizeUser(forceReload: true); + + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error minting NFT: $e')), + ); + } + } + _showAuthenticationPopUp() { Navigator.of(context).push(PageRouteBuilder( opaque: false, diff --git a/flutter_bird_app/lib/view/widgets/bird.dart b/flutter_bird_app/lib/view/widgets/bird.dart index 6ba0c43..1496716 100644 --- a/flutter_bird_app/lib/view/widgets/bird.dart +++ b/flutter_bird_app/lib/view/widgets/bird.dart @@ -1,5 +1,6 @@ +import 'dart:convert'; +import 'dart:typed_data'; import 'package:flutter/material.dart'; - import '../../model/skin.dart'; class Bird extends StatelessWidget { @@ -24,17 +25,53 @@ class Bird extends StatelessWidget { return _buildLoadingIndicator(context, 0.3); } - return Image.network( - skin!.imageLocation!, - loadingBuilder: (context, child, loadingProgress) { - if (loadingProgress == null) return child; - return _buildLoadingIndicator( - context, loadingProgress.cumulativeBytesLoaded / (loadingProgress.expectedTotalBytes ?? 1000)); - }, + try { + final imageDataUrl = _extractImageDataUrl(skin!.imageLocation!); + return Image.memory( + _dataUrlToBytes(imageDataUrl), + errorBuilder: (context, error, stackTrace) { + print('Error loading image: $error'); + return _buildErrorWidget(context); + }, + ); + } catch (e) { + print('Error processing image data: $e'); + return _buildErrorWidget(context); + } + } + + Uint8List _dataUrlToBytes(String dataUrl) { + final base64Str = dataUrl.split(',').last; + return base64Decode(base64Str); + } + + String _extractImageDataUrl(String tokenUri) { + try { + final jsonStr = tokenUri.replaceFirst('data:application/json,', ''); + String decodedStr = Uri.decodeFull(jsonStr); + Map jsonData = jsonDecode(decodedStr); + if (jsonData.containsKey('image')) { + return jsonData['image'] as String; + } else { + throw FormatException('Invalid JSON structure or missing image field'); + } + } catch (e) { + print('Error extracting image data URL: $e'); + print("tokenUri: ${tokenUri}, ${e}"); + rethrow; + } + } + + Widget _buildErrorWidget(BuildContext context) { + return Container( + color: Colors.grey[300], + child: Center( + child: Icon(Icons.error, color: Colors.red), + ), ); } - _buildLoadingIndicator(BuildContext context, double? value) => Column( + Widget _buildLoadingIndicator(BuildContext context, double? value) => Column( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ CircularProgressIndicator(