{
  "contractName": "Airdrop",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_tokenAddress",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_merkleRoot",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Claim",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "airdropClaimed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "tokenAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getMerkleRoot",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_newMerkleRoot",
          "type": "bytes32"
        }
      ],
      "name": "setMerkleRoot",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes32[]",
          "name": "proof",
          "type": "bytes32[]"
        }
      ],
      "name": "claim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.11+commit.d7f03943\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_merkleRoot\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"airdropClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMerkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newMerkleRoot\",\"type\":\"bytes32\"}],\"name\":\"setMerkleRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Claim(address,uint256)\":{\"params\":{\"amount\":\"of tokens claimed\",\"to\":\"recipient of claim\"}}},\"kind\":\"dev\",\"methods\":{\"claim(uint256,bytes32[])\":{\"params\":{\"amount\":\"of tokens owed to claimee\",\"proof\":\"merkle proof to prove address and amount are in tree\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,uint256)\":{\"notice\":\"Emitted after a successful token claim\"}},\"kind\":\"user\",\"methods\":{\"claim(uint256,bytes32[])\":{\"notice\":\"Allows claiming tokens if address is part of merkle tree\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/airdrop/Airdrop.sol\":\"Airdrop\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x24e0364e503a9bbde94c715d26573a76f14cd2a202d45f96f52134ab806b67b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12cbaa7378fd9b62280e4e1d164bedcb4399ce238f5f98fc0eefb7e50577981\",\"dweb:/ipfs/QmXRoFGUgfsaRkoPT5bxNMtSayKTQ8GZATLPXf69HcRA51\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xbbc8ac883ac3c0078ce5ad3e288fbb3ffcc8a30c3a98c0fda0114d64fc44fca2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87a7a5d2f6f63f84598af02b8c50ca2df2631cb8ba2453e8d95fcb17e4be9824\",\"dweb:/ipfs/QmR76hqtAcRqoFj33tmNjcWTLrgNsAaakYwnKZ8zoJtKei\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xea64fbaccbf9d8c235cf6838240ddcebb97f9fc383660289e9dff32e4fb85f7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e8a1dd0eac2fa865dc9a052bee01eec31677d7bc01b5b5aa825d820f3f1b343\",\"dweb:/ipfs/QmR8WuNeoAvJhnL7msQfQwaZEkwVnNyNDUNBL3Y616ohYa\"]},\"project:/contracts/airdrop/Airdrop.sol\":{\"keccak256\":\"0x21bb2e3710c5cac25dd8e5daf9283e83297a130bebb17c84e40cb7a0dd0ab1b0\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://3a485559d76b0fccc9196c67fb64fa736baecf6e23f72fb0542d53dae1f949b1\",\"dweb:/ipfs/QmUmwSAEAAh7GUSQRByYHegfVuRs1mZ1ieYF1DLP6DLoLj\"]},\"project:/contracts/token/interfaces/IERC20Custom.sol\":{\"keccak256\":\"0x6f50952568dc5b577661f6d1730b39cfa7628a39390103c89190afdfc565d1f4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://480386fcd5b5e3456e80150bf5444f1b2b067746be0245f287b78fc03e81133a\",\"dweb:/ipfs/QmWBfMsjQPEKj7jav96428j8Ss4AUVtkj69nsVsPZb8E1S\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b506040516108f73803806108f783398101604081905261002f916100b5565b61003833610065565b60018055600280546001600160a01b0319166001600160a01b0393909316929092179091556003556100ef565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080604083850312156100c857600080fd5b82516001600160a01b03811681146100df57600080fd5b6020939093015192949293505050565b6107f9806100fe6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146100d85780639d76ea58146100fd578063d1b6dd3014610110578063f2fde38b1461014357600080fd5b80632f52ebb71461008d57806349590657146100a2578063715018a6146100bd5780637cb64759146100c5575b600080fd5b6100a061009b366004610687565b610156565b005b6100aa61040f565b6040519081526020015b60405180910390f35b6100a0610441565b6100a06100d3366004610706565b610477565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100b4565b6002546100e5906001600160a01b031681565b61013361011e36600461071f565b60046020526000908152604090205460ff1681565b60405190151581526020016100b4565b6100a061015136600461071f565b610512565b600260015414156101ae5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600155826102005760405162461bcd60e51b815260206004820152601c60248201527f41697264726f703a20416d6f756e742063616e6e6f742062652030210000000060448201526064016101a5565b3360009081526004602052604090205460ff161561026b5760405162461bcd60e51b815260206004820152602260248201527f41697264726f703a2041697264726f7020686173206265656e20636c61696d65604482015261642160f01b60648201526084016101a5565b6040516bffffffffffffffffffffffff193360601b1660208201526034810184905260009060540160405160208183030381529060405280519060200120905060006102ee8484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060035491508590506105ad565b90508061034c5760405162461bcd60e51b815260206004820152602660248201527f41697264726f703a204164647265737320686173206e6f2041697264726f7020604482015265636c61696d2160d01b60648201526084016101a5565b33600081815260046020819052604091829020805460ff1916600117905560025491516340c10f1960e01b815290810192909252602482018790526001600160a01b03169081906340c10f1990604401600060405180830381600087803b1580156103b657600080fd5b505af11580156103ca573d6000803e3d6000fd5b50506040518881523392507f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4915060200160405180910390a250506001805550505050565b600080546001600160a01b0316331461043a5760405162461bcd60e51b81526004016101a59061074f565b5060035490565b6000546001600160a01b0316331461046b5760405162461bcd60e51b81526004016101a59061074f565b61047560006105c3565b565b6000546001600160a01b031633146104a15760405162461bcd60e51b81526004016101a59061074f565b801515806104b157506003548114155b61050d5760405162461bcd60e51b815260206004820152602760248201527f41697264726f703a20496e76616c6964206e6577206d65726b6c6520726f6f746044820152662076616c75652160c81b60648201526084016101a5565b600355565b6000546001600160a01b0316331461053c5760405162461bcd60e51b81526004016101a59061074f565b6001600160a01b0381166105a15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101a5565b6105aa816105c3565b50565b6000826105ba8584610613565b14949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081815b845181101561067f57600085828151811061063557610635610784565b6020026020010151905080831161065b576000838152602082905260409020925061066c565b600081815260208490526040902092505b50806106778161079a565b915050610618565b509392505050565b60008060006040848603121561069c57600080fd5b83359250602084013567ffffffffffffffff808211156106bb57600080fd5b818601915086601f8301126106cf57600080fd5b8135818111156106de57600080fd5b8760208260051b85010111156106f357600080fd5b6020830194508093505050509250925092565b60006020828403121561071857600080fd5b5035919050565b60006020828403121561073157600080fd5b81356001600160a01b038116811461074857600080fd5b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006000198214156107bc57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212204644f2714cdeaeddb92a5f30fd442d2a1f95ce28de78e59b4ac93103652a02c964736f6c634300080b0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146100d85780639d76ea58146100fd578063d1b6dd3014610110578063f2fde38b1461014357600080fd5b80632f52ebb71461008d57806349590657146100a2578063715018a6146100bd5780637cb64759146100c5575b600080fd5b6100a061009b366004610687565b610156565b005b6100aa61040f565b6040519081526020015b60405180910390f35b6100a0610441565b6100a06100d3366004610706565b610477565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100b4565b6002546100e5906001600160a01b031681565b61013361011e36600461071f565b60046020526000908152604090205460ff1681565b60405190151581526020016100b4565b6100a061015136600461071f565b610512565b600260015414156101ae5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600155826102005760405162461bcd60e51b815260206004820152601c60248201527f41697264726f703a20416d6f756e742063616e6e6f742062652030210000000060448201526064016101a5565b3360009081526004602052604090205460ff161561026b5760405162461bcd60e51b815260206004820152602260248201527f41697264726f703a2041697264726f7020686173206265656e20636c61696d65604482015261642160f01b60648201526084016101a5565b6040516bffffffffffffffffffffffff193360601b1660208201526034810184905260009060540160405160208183030381529060405280519060200120905060006102ee8484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060035491508590506105ad565b90508061034c5760405162461bcd60e51b815260206004820152602660248201527f41697264726f703a204164647265737320686173206e6f2041697264726f7020604482015265636c61696d2160d01b60648201526084016101a5565b33600081815260046020819052604091829020805460ff1916600117905560025491516340c10f1960e01b815290810192909252602482018790526001600160a01b03169081906340c10f1990604401600060405180830381600087803b1580156103b657600080fd5b505af11580156103ca573d6000803e3d6000fd5b50506040518881523392507f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4915060200160405180910390a250506001805550505050565b600080546001600160a01b0316331461043a5760405162461bcd60e51b81526004016101a59061074f565b5060035490565b6000546001600160a01b0316331461046b5760405162461bcd60e51b81526004016101a59061074f565b61047560006105c3565b565b6000546001600160a01b031633146104a15760405162461bcd60e51b81526004016101a59061074f565b801515806104b157506003548114155b61050d5760405162461bcd60e51b815260206004820152602760248201527f41697264726f703a20496e76616c6964206e6577206d65726b6c6520726f6f746044820152662076616c75652160c81b60648201526084016101a5565b600355565b6000546001600160a01b0316331461053c5760405162461bcd60e51b81526004016101a59061074f565b6001600160a01b0381166105a15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101a5565b6105aa816105c3565b50565b6000826105ba8584610613565b14949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081815b845181101561067f57600085828151811061063557610635610784565b6020026020010151905080831161065b576000838152602082905260409020925061066c565b600081815260208490526040902092505b50806106778161079a565b915050610618565b509392505050565b60008060006040848603121561069c57600080fd5b83359250602084013567ffffffffffffffff808211156106bb57600080fd5b818601915086601f8301126106cf57600080fd5b8135818111156106de57600080fd5b8760208260051b85010111156106f357600080fd5b6020830194508093505050509250925092565b60006020828403121561071857600080fd5b5035919050565b60006020828403121561073157600080fd5b81356001600160a01b038116811461074857600080fd5b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006000198214156107bc57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212204644f2714cdeaeddb92a5f30fd442d2a1f95ce28de78e59b4ac93103652a02c964736f6c634300080b0033",
  "immutableReferences": {},
  "generatedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:367:56",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:56",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "112:253:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "158:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "167:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "170:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "160:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "160:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "160:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "133:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "142:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "129:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "129:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "154:2:56",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "125:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "125:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "122:52:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "183:29:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "202:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "196:5:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "196:16:56"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "187:5:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "275:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "284:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "287:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "277:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "277:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "277:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "234:5:56"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "245:5:56"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "260:3:56",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "265:1:56",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "256:3:56"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "256:11:56"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "269:1:56",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "252:3:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "252:19:56"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "241:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "241:31:56"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "231:2:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "231:42:56"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "224:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "224:50:56"
                  },
                  "nodeType": "YulIf",
                  "src": "221:70:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "300:15:56",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "310:5:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "300:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "324:35:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "344:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "355:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "340:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "340:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "334:5:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "334:25:56"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "324:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_bytes32_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "70:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "81:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "93:6:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "101:6:56",
                "type": ""
              }
            ],
            "src": "14:351:56"
          }
        ]
      },
      "contents": "{\n    { }\n    function abi_decode_tuple_t_addresst_bytes32_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n        value1 := mload(add(headStart, 32))\n    }\n}",
      "id": 56,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:5589:56",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:56",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "136:561:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "182:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "191:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "194:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "184:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "184:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "184:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "157:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "166:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "153:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "153:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "178:2:56",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "149:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "149:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "146:52:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "207:33:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "230:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "217:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "217:23:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "207:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "249:46:56",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "280:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "291:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "276:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "276:18:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "263:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "263:32:56"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "253:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "304:28:56",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "314:18:56",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "308:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "359:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "368:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "371:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "361:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "361:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "361:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "347:6:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "355:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "344:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "344:14:56"
                  },
                  "nodeType": "YulIf",
                  "src": "341:34:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "384:32:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "398:9:56"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "409:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "394:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "394:22:56"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "388:2:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "464:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "473:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "476:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "466:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "466:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "466:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "443:2:56"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "447:4:56",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "439:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "439:13:56"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "454:7:56"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "435:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "435:27:56"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "428:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "428:35:56"
                  },
                  "nodeType": "YulIf",
                  "src": "425:55:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "489:30:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "516:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "503:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "503:16:56"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "493:6:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "546:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "555:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "558:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "548:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "548:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "548:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "534:6:56"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "542:2:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "531:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "531:14:56"
                  },
                  "nodeType": "YulIf",
                  "src": "528:34:56"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "620:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "629:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "632:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "622:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "622:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "622:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "585:2:56"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "593:1:56",
                                    "type": "",
                                    "value": "5"
                                  },
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "596:6:56"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "589:3:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "589:14:56"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "581:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "581:23:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "606:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "577:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "577:32:56"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "611:7:56"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "574:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "574:45:56"
                  },
                  "nodeType": "YulIf",
                  "src": "571:65:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "645:21:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "659:2:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "663:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "655:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "655:11:56"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "645:6:56"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "675:16:56",
                  "value": {
                    "name": "length",
                    "nodeType": "YulIdentifier",
                    "src": "685:6:56"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "675:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_array$_t_bytes32_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "86:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "97:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "109:6:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "117:6:56",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "125:6:56",
                "type": ""
              }
            ],
            "src": "14:683:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "803:76:56",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "813:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "825:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "836:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "821:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "821:18:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "813:4:56"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "855:9:56"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "866:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "848:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "848:25:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "848:25:56"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "772:9:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "783:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "794:4:56",
                "type": ""
              }
            ],
            "src": "702:177:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "954:110:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1000:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1009:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1012:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1002:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1002:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1002:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "975:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "984:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "971:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "971:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "996:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "967:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "967:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "964:52:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1025:33:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1048:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1035:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1035:23:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1025:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes32",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "920:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "931:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "943:6:56",
                "type": ""
              }
            ],
            "src": "884:180:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1170:102:56",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1180:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1192:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1203:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1188:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1188:18:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1180:4:56"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1222:9:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "1237:6:56"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1253:3:56",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1258:1:56",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "1249:3:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1249:11:56"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "1262:1:56",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "1245:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1245:19:56"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "1233:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1233:32:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1215:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1215:51:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1215:51:56"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1139:9:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1150:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1161:4:56",
                "type": ""
              }
            ],
            "src": "1069:203:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1347:216:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1393:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1402:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1405:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1395:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1395:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1395:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1368:7:56"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1377:9:56"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "1364:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1364:23:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1389:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "1360:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1360:32:56"
                  },
                  "nodeType": "YulIf",
                  "src": "1357:52:56"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1418:36:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1444:9:56"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1431:12:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1431:23:56"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "1422:5:56",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1517:16:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1526:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1529:1:56",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1519:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1519:12:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1519:12:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "1476:5:56"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "1487:5:56"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "1502:3:56",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "1507:1:56",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "1498:3:56"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "1498:11:56"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1511:1:56",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "1494:3:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1494:19:56"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "1483:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1483:31:56"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "1473:2:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1473:42:56"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "1466:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1466:50:56"
                  },
                  "nodeType": "YulIf",
                  "src": "1463:70:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1542:15:56",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1552:5:56"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1542:6:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1313:9:56",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "1324:7:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1336:6:56",
                "type": ""
              }
            ],
            "src": "1277:286:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1663:92:56",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1673:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1685:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1696:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1681:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1681:18:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1673:4:56"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1715:9:56"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "1740:6:56"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "1733:6:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1733:14:56"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "1726:6:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1726:22:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1708:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1708:41:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1708:41:56"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1632:9:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1643:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1654:4:56",
                "type": ""
              }
            ],
            "src": "1568:187:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1934:181:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1951:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1962:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1944:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1944:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1944:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1985:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1996:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1981:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1981:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2001:2:56",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1974:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1974:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1974:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2024:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2035:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2020:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2020:18:56"
                      },
                      {
                        "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "2040:33:56",
                        "type": "",
                        "value": "ReentrancyGuard: reentrant call"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2013:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2013:61:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2013:61:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2083:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2095:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2106:2:56",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2091:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2091:18:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "2083:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1911:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1925:4:56",
                "type": ""
              }
            ],
            "src": "1760:355:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2294:178:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2311:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2322:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2304:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2304:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2304:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2345:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2356:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2341:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2341:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2361:2:56",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2334:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2334:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2334:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2384:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2395:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2380:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2380:18:56"
                      },
                      {
                        "hexValue": "41697264726f703a20416d6f756e742063616e6e6f74206265203021",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "2400:30:56",
                        "type": "",
                        "value": "Airdrop: Amount cannot be 0!"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2373:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2373:58:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2373:58:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2440:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2452:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2463:2:56",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2448:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2448:18:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "2440:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_5f77736111e14b39e62a194d9af1a088cd08483c99b072c1125ca8f694e72e90__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2271:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "2285:4:56",
                "type": ""
              }
            ],
            "src": "2120:352:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2651:224:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2668:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2679:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2661:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2661:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2661:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2702:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2713:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2698:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2698:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2718:2:56",
                        "type": "",
                        "value": "34"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2691:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2691:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2691:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2741:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2752:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2737:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2737:18:56"
                      },
                      {
                        "hexValue": "41697264726f703a2041697264726f7020686173206265656e20636c61696d65",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "2757:34:56",
                        "type": "",
                        "value": "Airdrop: Airdrop has been claime"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2730:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2730:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2730:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2812:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2823:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2808:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2808:18:56"
                      },
                      {
                        "hexValue": "6421",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "2828:4:56",
                        "type": "",
                        "value": "d!"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2801:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2801:32:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2801:32:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2842:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2854:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2865:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2850:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2850:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "2842:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_67bdd9c95b5b95879a0b4dc64f3cec32edca24738a5ef1ffd2174b553edffdf7__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2628:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "2642:4:56",
                "type": ""
              }
            ],
            "src": "2477:398:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3027:147:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "3044:3:56"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3057:2:56",
                                "type": "",
                                "value": "96"
                              },
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "3061:6:56"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "3053:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3053:15:56"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3074:26:56",
                                "type": "",
                                "value": "0xffffffffffffffffffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "3070:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3070:31:56"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "3049:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3049:53:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3037:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3037:66:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3037:66:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "3123:3:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3128:2:56",
                            "type": "",
                            "value": "20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3119:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3119:12:56"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "3133:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3112:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3112:28:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3112:28:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3149:19:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "3160:3:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3165:2:56",
                        "type": "",
                        "value": "52"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3156:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3156:12:56"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "3149:3:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_address_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "2995:3:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "3000:6:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3008:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "3019:3:56",
                "type": ""
              }
            ],
            "src": "2880:294:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3353:228:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3370:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3381:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3363:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3363:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3363:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3404:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3415:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3400:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3400:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3420:2:56",
                        "type": "",
                        "value": "38"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3393:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3393:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3393:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3443:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3454:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3439:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3439:18:56"
                      },
                      {
                        "hexValue": "41697264726f703a204164647265737320686173206e6f2041697264726f7020",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "3459:34:56",
                        "type": "",
                        "value": "Airdrop: Address has no Airdrop "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3432:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3432:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3432:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3514:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3525:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3510:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3510:18:56"
                      },
                      {
                        "hexValue": "636c61696d21",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "3530:8:56",
                        "type": "",
                        "value": "claim!"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3503:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3503:36:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3503:36:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3548:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3560:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3571:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3556:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3556:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "3548:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_1a5665c2b6721dd48131124d9c1c1126d5652825e26e73b028b7569d4b4b6c66__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3330:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "3344:4:56",
                "type": ""
              }
            ],
            "src": "3179:402:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3715:145:56",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "3725:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3737:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3748:2:56",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3733:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3733:18:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "3725:4:56"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3767:9:56"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "3782:6:56"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "3798:3:56",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "3803:1:56",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "3794:3:56"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3794:11:56"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3807:1:56",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "3790:3:56"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3790:19:56"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "3778:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3778:32:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3760:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3760:51:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3760:51:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3831:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3842:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3827:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3827:18:56"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "3847:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3820:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3820:34:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3820:34:56"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3676:9:56",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "3687:6:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3695:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "3706:4:56",
                "type": ""
              }
            ],
            "src": "3586:274:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3966:76:56",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "3976:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3988:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3999:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3984:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3984:18:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "3976:4:56"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4018:9:56"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "4029:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4011:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4011:25:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4011:25:56"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3935:9:56",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3946:6:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "3957:4:56",
                "type": ""
              }
            ],
            "src": "3865:177:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4221:182:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4238:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4249:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4231:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4231:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4231:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4272:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4283:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4268:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4268:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4288:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4261:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4261:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4261:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4311:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4322:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4307:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4307:18:56"
                      },
                      {
                        "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "4327:34:56",
                        "type": "",
                        "value": "Ownable: caller is not the owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4300:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4300:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4300:62:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4371:26:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4383:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4394:2:56",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4379:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4379:18:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "4371:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4198:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "4212:4:56",
                "type": ""
              }
            ],
            "src": "4047:356:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4582:229:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4599:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4610:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4592:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4592:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4592:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4633:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4644:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4629:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4629:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4649:2:56",
                        "type": "",
                        "value": "39"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4622:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4622:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4622:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4672:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4683:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4668:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4668:18:56"
                      },
                      {
                        "hexValue": "41697264726f703a20496e76616c6964206e6577206d65726b6c6520726f6f74",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "4688:34:56",
                        "type": "",
                        "value": "Airdrop: Invalid new merkle root"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4661:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4661:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4661:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4743:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4754:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4739:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4739:18:56"
                      },
                      {
                        "hexValue": "2076616c756521",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "4759:9:56",
                        "type": "",
                        "value": " value!"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4732:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4732:37:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4732:37:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4778:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4790:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4801:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4786:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4786:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "4778:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_3148c05d9c24e5d95cc28a2fcd3ad70f2cc7e2ec39a50ecb5d20f279bcd9984e__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4559:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "4573:4:56",
                "type": ""
              }
            ],
            "src": "4408:403:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4990:228:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5007:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5018:2:56",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5000:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5000:21:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5000:21:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5041:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5052:2:56",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5037:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5037:18:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5057:2:56",
                        "type": "",
                        "value": "38"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5030:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5030:30:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5030:30:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5080:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5091:2:56",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5076:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5076:18:56"
                      },
                      {
                        "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "5096:34:56",
                        "type": "",
                        "value": "Ownable: new owner is the zero a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5069:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5069:62:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5069:62:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5151:9:56"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5162:2:56",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5147:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5147:18:56"
                      },
                      {
                        "hexValue": "646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "5167:8:56",
                        "type": "",
                        "value": "ddress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5140:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5140:36:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5140:36:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5185:27:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5197:9:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5208:3:56",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5193:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5193:19:56"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "5185:4:56"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4967:9:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "4981:4:56",
                "type": ""
              }
            ],
            "src": "4816:402:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5255:95:56",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5272:1:56",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5279:3:56",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5284:10:56",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "5275:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5275:20:56"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5265:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5265:31:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5265:31:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5312:1:56",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5315:4:56",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5305:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5305:15:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5305:15:56"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5336:1:56",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5339:4:56",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "5329:6:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5329:15:56"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5329:15:56"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nodeType": "YulFunctionDefinition",
            "src": "5223:127:56"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5402:185:56",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5441:111:56",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5462:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5469:3:56",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5474:10:56",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "5465:3:56"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5465:20:56"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "5455:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5455:31:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5455:31:56"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5506:1:56",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5509:4:56",
                              "type": "",
                              "value": "0x11"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "5499:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5499:15:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5499:15:56"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5534:1:56",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5537:4:56",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5527:6:56"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5527:15:56"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5527:15:56"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "5418:5:56"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5429:1:56",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "5425:3:56"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5425:6:56"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "5415:2:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5415:17:56"
                  },
                  "nodeType": "YulIf",
                  "src": "5412:140:56"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5561:20:56",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "5572:5:56"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5579:1:56",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5568:3:56"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5568:13:56"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "5561:3:56"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "5384:5:56",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "5394:3:56",
                "type": ""
              }
            ],
            "src": "5355:232:56"
          }
        ]
      },
      "contents": "{\n    { }\n    function abi_decode_tuple_t_uint256t_array$_t_bytes32_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(0, 0) }\n        if gt(add(add(_2, shl(5, length)), 32), dataEnd) { revert(0, 0) }\n        value1 := add(_2, 32)\n        value2 := length\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_5f77736111e14b39e62a194d9af1a088cd08483c99b072c1125ca8f694e72e90__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"Airdrop: Amount cannot be 0!\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_67bdd9c95b5b95879a0b4dc64f3cec32edca24738a5ef1ffd2174b553edffdf7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"Airdrop: Airdrop has been claime\")\n        mstore(add(headStart, 96), \"d!\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_address_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n        mstore(add(pos, 20), value1)\n        end := add(pos, 52)\n    }\n    function abi_encode_tuple_t_stringliteral_1a5665c2b6721dd48131124d9c1c1126d5652825e26e73b028b7569d4b4b6c66__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Airdrop: Address has no Airdrop \")\n        mstore(add(headStart, 96), \"claim!\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_3148c05d9c24e5d95cc28a2fcd3ad70f2cc7e2ec39a50ecb5d20f279bcd9984e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Airdrop: Invalid new merkle root\")\n        mstore(add(headStart, 96), \" value!\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n        ret := add(value, 1)\n    }\n}",
      "id": 56,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "297:1983:42:-:0;;;665:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;921:32:3;719:10:27;921:18:3;:32::i;:::-;1701:1:6;1806:22;;731:12:42;:28;;-1:-1:-1;;;;;;731:28:42;-1:-1:-1;;;;;731:28:42;;;;;;;;;;;769:10;:24;297:1983;;2270:187:3;2343:16;2362:6;;-1:-1:-1;;;;;2378:17:3;;;-1:-1:-1;;;;;;2378:17:3;;;;;;2410:40;;2362:6;;;;;;;2410:40;;2343:16;2410:40;2333:124;2270:187;:::o;14:351:56:-;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:56;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:56:o;:::-;297:1983:42;;;;;;",
  "deployedSourceMap": "297:1983:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1385:893;;;;;;:::i;:::-;;:::i;:::-;;806:99;;;:::i;:::-;;;848:25:56;;;836:2;821:18;806:99:42;;;;;;;;1668:101:3;;;:::i;911:260:42:-;;;;;;:::i;:::-;;:::i;1036:85:3:-;1082:7;1108:6;-1:-1:-1;;;;;1108:6:3;1036:85;;;-1:-1:-1;;;;;1233:32:56;;;1215:51;;1203:2;1188:18;1036:85:3;1069:203:56;348:27:42;;;;;-1:-1:-1;;;;;348:27:42;;;413:46;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1733:14:56;;1726:22;1708:41;;1696:2;1681:18;413:46:42;1568:187:56;1918:198:3;;;;;;:::i;:::-;;:::i;1385:893:42:-;1744:1:6;2325:7;;:19;;2317:63;;;;-1:-1:-1;;;2317:63:6;;1962:2:56;2317:63:6;;;1944:21:56;2001:2;1981:18;;;1974:30;2040:33;2020:18;;;2013:61;2091:18;;2317:63:6;;;;;;;;;1744:1;2455:7;:18;1502:10:42;1494:51:::1;;;::::0;-1:-1:-1;;;1494:51:42;;2322:2:56;1494:51:42::1;::::0;::::1;2304:21:56::0;2361:2;2341:18;;;2334:30;2400;2380:18;;;2373:58;2448:18;;1494:51:42::1;2120:352:56::0;1494:51:42::1;1647:10;1632:26;::::0;;;:14:::1;:26;::::0;;;;;::::1;;1631:27;1610:108;;;::::0;-1:-1:-1;;;1610:108:42;;2679:2:56;1610:108:42::1;::::0;::::1;2661:21:56::0;2718:2;2698:18;;;2691:30;2757:34;2737:18;;;2730:62;-1:-1:-1;;;2808:18:56;;;2801:32;2850:19;;1610:108:42::1;2477:398:56::0;1610:108:42::1;1811:36;::::0;-1:-1:-1;;1828:10:42::1;3057:2:56::0;3053:15;3049:53;1811:36:42::1;::::0;::::1;3037:66:56::0;3119:12;;;3112:28;;;1786:12:42::1;::::0;3156::56;;1811:36:42::1;;;;;;;;;;;;1801:47;;;;;;1786:62;;1858:16;1877:43;1896:5;;1877:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;1903:10:42::1;::::0;;-1:-1:-1;1915:4:42;;-1:-1:-1;1877:18:42::1;:43::i;:::-;1858:62;;1938:11;1930:62;;;::::0;-1:-1:-1;;;1930:62:42;;3381:2:56;1930:62:42::1;::::0;::::1;3363:21:56::0;3420:2;3400:18;;;3393:30;3459:34;3439:18;;;3432:62;-1:-1:-1;;;3510:18:56;;;3503:36;3556:19;;1930:62:42::1;3179:402:56::0;1930:62:42::1;2052:10;2037:26;::::0;;;:14:::1;:26;::::0;;;;;;;;:33;;-1:-1:-1;;2037:33:42::1;2066:4;2037:33;::::0;;2149:12:::1;::::0;2172:30;;-1:-1:-1;;;2172:30:42;;;;::::1;3760:51:56::0;;;;3827:18;;;3820:34;;;-1:-1:-1;;;;;2149:12:42::1;::::0;;;2172:10:::1;::::0;3733:18:56;;2172:30:42::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;2246:25:42::1;::::0;848::56;;;2252:10:42::1;::::0;-1:-1:-1;2246:25:42::1;::::0;-1:-1:-1;836:2:56;821:18;2246:25:42::1;;;;;;;-1:-1:-1::0;;1701:1:6;2628:22;;-1:-1:-1;;;;1385:893:42:o;806:99::-;862:7;1108:6:3;;-1:-1:-1;;;;;1108:6:3;719:10:27;1248:23:3;1240:68;;;;-1:-1:-1;;;1240:68:3;;;;;;;:::i;:::-;-1:-1:-1;888:10:42::1;::::0;806:99;:::o;1668:101:3:-;1082:7;1108:6;-1:-1:-1;;;;;1108:6:3;719:10:27;1248:23:3;1240:68;;;;-1:-1:-1;;;1240:68:3;;;;;;;:::i;:::-;1732:30:::1;1759:1;1732:18;:30::i;:::-;1668:101::o:0;911:260:42:-;1082:7:3;1108:6;-1:-1:-1;;;;;1108:6:3;719:10:27;1248:23:3;1240:68;;;;-1:-1:-1;;;1240:68:3;;;;;;;:::i;:::-;1008:22:42;;::::1;::::0;:54:::1;;;1052:10;;1034:14;:28;;1008:54;987:140;;;::::0;-1:-1:-1;;;987:140:42;;4610:2:56;987:140:42::1;::::0;::::1;4592:21:56::0;4649:2;4629:18;;;4622:30;4688:34;4668:18;;;4661:62;-1:-1:-1;;;4739:18:56;;;4732:37;4786:19;;987:140:42::1;4408:403:56::0;987:140:42::1;1137:10;:27:::0;911:260::o;1918:198:3:-;1082:7;1108:6;-1:-1:-1;;;;;1108:6:3;719:10:27;1248:23:3;1240:68;;;;-1:-1:-1;;;1240:68:3;;;;;;;:::i;:::-;-1:-1:-1;;;;;2006:22:3;::::1;1998:73;;;::::0;-1:-1:-1;;;1998:73:3;;5018:2:56;1998:73:3::1;::::0;::::1;5000:21:56::0;5057:2;5037:18;;;5030:30;5096:34;5076:18;;;5069:62;-1:-1:-1;;;5147:18:56;;;5140:36;5193:19;;1998:73:3::1;4816:402:56::0;1998:73:3::1;2081:28;2100:8;2081:18;:28::i;:::-;1918:198:::0;:::o;862:184:31:-;983:4;1035;1006:25;1019:5;1026:4;1006:12;:25::i;:::-;:33;;862:184;-1:-1:-1;;;;862:184:31:o;2270:187:3:-;2343:16;2362:6;;-1:-1:-1;;;;;2378:17:3;;;-1:-1:-1;;;;;;2378:17:3;;;;;;2410:40;;2362:6;;;;;;;2410:40;;2343:16;2410:40;2333:124;2270:187;:::o;1398:662:31:-;1481:7;1523:4;1481:7;1537:488;1561:5;:12;1557:1;:16;1537:488;;;1594:20;1617:5;1623:1;1617:8;;;;;;;;:::i;:::-;;;;;;;1594:31;;1659:12;1643;:28;1639:376;;2134:13;2182:15;;;2217:4;2210:15;;;2263:4;2247:21;;1769:57;;1639:376;;;2134:13;2182:15;;;2217:4;2210:15;;;2263:4;2247:21;;1943:57;;1639:376;-1:-1:-1;1575:3:31;;;;:::i;:::-;;;;1537:488;;;-1:-1:-1;2041:12:31;1398:662;-1:-1:-1;;;1398:662:31:o;14:683:56:-;109:6;117;125;178:2;166:9;157:7;153:23;149:32;146:52;;;194:1;191;184:12;146:52;230:9;217:23;207:33;;291:2;280:9;276:18;263:32;314:18;355:2;347:6;344:14;341:34;;;371:1;368;361:12;341:34;409:6;398:9;394:22;384:32;;454:7;447:4;443:2;439:13;435:27;425:55;;476:1;473;466:12;425:55;516:2;503:16;542:2;534:6;531:14;528:34;;;558:1;555;548:12;528:34;611:7;606:2;596:6;593:1;589:14;585:2;581:23;577:32;574:45;571:65;;;632:1;629;622:12;571:65;663:2;659;655:11;645:21;;685:6;675:16;;;;;14:683;;;;;:::o;884:180::-;943:6;996:2;984:9;975:7;971:23;967:32;964:52;;;1012:1;1009;1002:12;964:52;-1:-1:-1;1035:23:56;;884:180;-1:-1:-1;884:180:56:o;1277:286::-;1336:6;1389:2;1377:9;1368:7;1364:23;1360:32;1357:52;;;1405:1;1402;1395:12;1357:52;1431:23;;-1:-1:-1;;;;;1483:31:56;;1473:42;;1463:70;;1529:1;1526;1519:12;1463:70;1552:5;1277:286;-1:-1:-1;;;1277:286:56:o;4047:356::-;4249:2;4231:21;;;4268:18;;;4261:30;4327:34;4322:2;4307:18;;4300:62;4394:2;4379:18;;4047:356::o;5223:127::-;5284:10;5279:3;5275:20;5272:1;5265:31;5315:4;5312:1;5305:15;5339:4;5336:1;5329:15;5355:232;5394:3;-1:-1:-1;;5415:17:56;;5412:140;;;5474:10;5469:3;5465:20;5462:1;5455:31;5509:4;5506:1;5499:15;5537:4;5534:1;5527:15;5412:140;-1:-1:-1;5579:1:56;5568:13;;5355:232::o",
  "source": "// SPDX-License-Identifier: AGPL-3.0\n\npragma solidity ^0.8.11;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\";\nimport \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport \"../token/interfaces/IERC20Custom.sol\";\n\ncontract Airdrop is Ownable, ReentrancyGuard {\n    address public tokenAddress;\n    bytes32 private merkleRoot;\n    mapping(address => bool) public airdropClaimed;\n\n    /**\n     * @notice Emitted after a successful token claim\n     * @param to recipient of claim\n     * @param amount of tokens claimed\n     */\n    event Claim(address indexed to, uint256 amount);\n\n    constructor(address _tokenAddress, bytes32 _merkleRoot) {\n        tokenAddress = _tokenAddress;\n        merkleRoot = _merkleRoot;\n    }\n\n    function getMerkleRoot() public view onlyOwner returns (bytes32) {\n        return merkleRoot;\n    }\n\n    function setMerkleRoot(bytes32 _newMerkleRoot) external onlyOwner {\n        require(\n            _newMerkleRoot != 0x00 || _newMerkleRoot != merkleRoot,\n            \"Airdrop: Invalid new merkle root value!\"\n        );\n        merkleRoot = _newMerkleRoot;\n    }\n\n    /**\n     * @notice Allows claiming tokens if address is part of merkle tree\n     * @param amount of tokens owed to claimee\n     * @param proof merkle proof to prove address and amount are in tree\n     */\n    function claim(uint256 amount, bytes32[] calldata proof)\n        external\n        nonReentrant\n    {\n        require(amount > 0, \"Airdrop: Amount cannot be 0!\");\n        // Throw if address has already claimed tokens\n        require(\n            !airdropClaimed[msg.sender],\n            \"Airdrop: Airdrop has been claimed!\"\n        );\n\n        // Verify merkle proof, or revert if not in tree\n        bytes32 leaf = keccak256(abi.encodePacked(msg.sender, amount));\n        bool isValidLeaf = MerkleProof.verify(proof, merkleRoot, leaf);\n        require(isValidLeaf, \"Airdrop: Address has no Airdrop claim!\");\n\n        // Set address to claimed\n        airdropClaimed[msg.sender] = true;\n\n        // Mint tokens to address\n        IERC20Custom token = IERC20Custom(tokenAddress);\n        token.mint(msg.sender, amount);\n\n        // Emit claim event\n        emit Claim(msg.sender, amount);\n    }\n}\n",
  "sourcePath": "/Users/yosephks/Documents/GitHub/alpsfinance-smart-contracts/contracts/airdrop/Airdrop.sol",
  "ast": {
    "absolutePath": "project:/contracts/airdrop/Airdrop.sol",
    "exportedSymbols": {
      "Airdrop": [
        7473
      ],
      "Context": [
        5297
      ],
      "IERC20": [
        2884
      ],
      "IERC20Custom": [
        9652
      ],
      "MerkleProof": [
        6074
      ],
      "Ownable": [
        532
      ],
      "ReentrancyGuard": [
        742
      ]
    },
    "id": 7474,
    "license": "AGPL-3.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 7319,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".11"
        ],
        "nodeType": "PragmaDirective",
        "src": "38:24:42"
      },
      {
        "absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
        "file": "@openzeppelin/contracts/access/Ownable.sol",
        "id": 7320,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 7474,
        "sourceUnit": 533,
        "src": "64:52:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol",
        "file": "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol",
        "id": 7321,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 7474,
        "sourceUnit": 6075,
        "src": "117:68:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/security/ReentrancyGuard.sol",
        "file": "@openzeppelin/contracts/security/ReentrancyGuard.sol",
        "id": 7322,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 7474,
        "sourceUnit": 743,
        "src": "186:62:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/token/interfaces/IERC20Custom.sol",
        "file": "../token/interfaces/IERC20Custom.sol",
        "id": 7323,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 7474,
        "sourceUnit": 9653,
        "src": "249:46:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 7324,
              "name": "Ownable",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 532,
              "src": "317:7:42"
            },
            "id": 7325,
            "nodeType": "InheritanceSpecifier",
            "src": "317:7:42"
          },
          {
            "baseName": {
              "id": 7326,
              "name": "ReentrancyGuard",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 742,
              "src": "326:15:42"
            },
            "id": 7327,
            "nodeType": "InheritanceSpecifier",
            "src": "326:15:42"
          }
        ],
        "canonicalName": "Airdrop",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 7473,
        "linearizedBaseContracts": [
          7473,
          742,
          532,
          5297
        ],
        "name": "Airdrop",
        "nameLocation": "306:7:42",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "functionSelector": "9d76ea58",
            "id": 7329,
            "mutability": "mutable",
            "name": "tokenAddress",
            "nameLocation": "363:12:42",
            "nodeType": "VariableDeclaration",
            "scope": 7473,
            "src": "348:27:42",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 7328,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "348:7:42",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 7331,
            "mutability": "mutable",
            "name": "merkleRoot",
            "nameLocation": "397:10:42",
            "nodeType": "VariableDeclaration",
            "scope": 7473,
            "src": "381:26:42",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 7330,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "381:7:42",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "functionSelector": "d1b6dd30",
            "id": 7335,
            "mutability": "mutable",
            "name": "airdropClaimed",
            "nameLocation": "445:14:42",
            "nodeType": "VariableDeclaration",
            "scope": 7473,
            "src": "413:46:42",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
              "typeString": "mapping(address => bool)"
            },
            "typeName": {
              "id": 7334,
              "keyType": {
                "id": 7332,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "421:7:42",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "413:24:42",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                "typeString": "mapping(address => bool)"
              },
              "valueType": {
                "id": 7333,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "432:4:42",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": {
              "id": 7336,
              "nodeType": "StructuredDocumentation",
              "src": "466:140:42",
              "text": " @notice Emitted after a successful token claim\n @param to recipient of claim\n @param amount of tokens claimed"
            },
            "id": 7342,
            "name": "Claim",
            "nameLocation": "617:5:42",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 7341,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7338,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "639:2:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 7342,
                  "src": "623:18:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7337,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "623:7:42",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7340,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "651:6:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 7342,
                  "src": "643:14:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7339,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "643:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "622:36:42"
            },
            "src": "611:48:42"
          },
          {
            "body": {
              "id": 7357,
              "nodeType": "Block",
              "src": "721:79:42",
              "statements": [
                {
                  "expression": {
                    "id": 7351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 7349,
                      "name": "tokenAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7329,
                      "src": "731:12:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 7350,
                      "name": "_tokenAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7344,
                      "src": "746:13:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "731:28:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 7352,
                  "nodeType": "ExpressionStatement",
                  "src": "731:28:42"
                },
                {
                  "expression": {
                    "id": 7355,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 7353,
                      "name": "merkleRoot",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7331,
                      "src": "769:10:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 7354,
                      "name": "_merkleRoot",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "782:11:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "769:24:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 7356,
                  "nodeType": "ExpressionStatement",
                  "src": "769:24:42"
                }
              ]
            },
            "id": 7358,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7347,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7344,
                  "mutability": "mutable",
                  "name": "_tokenAddress",
                  "nameLocation": "685:13:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 7358,
                  "src": "677:21:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7343,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "677:7:42",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7346,
                  "mutability": "mutable",
                  "name": "_merkleRoot",
                  "nameLocation": "708:11:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 7358,
                  "src": "700:19:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7345,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "700:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "676:44:42"
            },
            "returnParameters": {
              "id": 7348,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "721:0:42"
            },
            "scope": 7473,
            "src": "665:135:42",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7367,
              "nodeType": "Block",
              "src": "871:34:42",
              "statements": [
                {
                  "expression": {
                    "id": 7365,
                    "name": "merkleRoot",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 7331,
                    "src": "888:10:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 7364,
                  "id": 7366,
                  "nodeType": "Return",
                  "src": "881:17:42"
                }
              ]
            },
            "functionSelector": "49590657",
            "id": 7368,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7361,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7360,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 474,
                  "src": "843:9:42"
                },
                "nodeType": "ModifierInvocation",
                "src": "843:9:42"
              }
            ],
            "name": "getMerkleRoot",
            "nameLocation": "815:13:42",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7359,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "828:2:42"
            },
            "returnParameters": {
              "id": 7364,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7363,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7368,
                  "src": "862:7:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7362,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "862:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "861:9:42"
            },
            "scope": 7473,
            "src": "806:99:42",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7390,
              "nodeType": "Block",
              "src": "977:194:42",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7382,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 7378,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7376,
                            "name": "_newMerkleRoot",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7370,
                            "src": "1008:14:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "hexValue": "30783030",
                            "id": 7377,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1026:4:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x00"
                          },
                          "src": "1008:22:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 7381,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7379,
                            "name": "_newMerkleRoot",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7370,
                            "src": "1034:14:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "id": 7380,
                            "name": "merkleRoot",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7331,
                            "src": "1052:10:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "1034:28:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1008:54:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "41697264726f703a20496e76616c6964206e6577206d65726b6c6520726f6f742076616c756521",
                        "id": 7383,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1076:41:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3148c05d9c24e5d95cc28a2fcd3ad70f2cc7e2ec39a50ecb5d20f279bcd9984e",
                          "typeString": "literal_string \"Airdrop: Invalid new merkle root value!\""
                        },
                        "value": "Airdrop: Invalid new merkle root value!"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3148c05d9c24e5d95cc28a2fcd3ad70f2cc7e2ec39a50ecb5d20f279bcd9984e",
                          "typeString": "literal_string \"Airdrop: Invalid new merkle root value!\""
                        }
                      ],
                      "id": 7375,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "987:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7384,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "987:140:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7385,
                  "nodeType": "ExpressionStatement",
                  "src": "987:140:42"
                },
                {
                  "expression": {
                    "id": 7388,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 7386,
                      "name": "merkleRoot",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7331,
                      "src": "1137:10:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 7387,
                      "name": "_newMerkleRoot",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7370,
                      "src": "1150:14:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1137:27:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 7389,
                  "nodeType": "ExpressionStatement",
                  "src": "1137:27:42"
                }
              ]
            },
            "functionSelector": "7cb64759",
            "id": 7391,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7373,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7372,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 474,
                  "src": "967:9:42"
                },
                "nodeType": "ModifierInvocation",
                "src": "967:9:42"
              }
            ],
            "name": "setMerkleRoot",
            "nameLocation": "920:13:42",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7371,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7370,
                  "mutability": "mutable",
                  "name": "_newMerkleRoot",
                  "nameLocation": "942:14:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 7391,
                  "src": "934:22:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7369,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "934:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "933:24:42"
            },
            "returnParameters": {
              "id": 7374,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "977:0:42"
            },
            "scope": 7473,
            "src": "911:260:42",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7471,
              "nodeType": "Block",
              "src": "1484:794:42",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7405,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7403,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7394,
                          "src": "1502:6:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 7404,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1511:1:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1502:10:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "41697264726f703a20416d6f756e742063616e6e6f74206265203021",
                        "id": 7406,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1514:30:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5f77736111e14b39e62a194d9af1a088cd08483c99b072c1125ca8f694e72e90",
                          "typeString": "literal_string \"Airdrop: Amount cannot be 0!\""
                        },
                        "value": "Airdrop: Amount cannot be 0!"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5f77736111e14b39e62a194d9af1a088cd08483c99b072c1125ca8f694e72e90",
                          "typeString": "literal_string \"Airdrop: Amount cannot be 0!\""
                        }
                      ],
                      "id": 7402,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1494:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7407,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1494:51:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7408,
                  "nodeType": "ExpressionStatement",
                  "src": "1494:51:42"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7414,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1631:27:42",
                        "subExpression": {
                          "baseExpression": {
                            "id": 7410,
                            "name": "airdropClaimed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7335,
                            "src": "1632:14:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                              "typeString": "mapping(address => bool)"
                            }
                          },
                          "id": 7413,
                          "indexExpression": {
                            "expression": {
                              "id": 7411,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "1647:3:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 7412,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "1647:10:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1632:26:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "41697264726f703a2041697264726f7020686173206265656e20636c61696d656421",
                        "id": 7415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1672:36:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_67bdd9c95b5b95879a0b4dc64f3cec32edca24738a5ef1ffd2174b553edffdf7",
                          "typeString": "literal_string \"Airdrop: Airdrop has been claimed!\""
                        },
                        "value": "Airdrop: Airdrop has been claimed!"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_67bdd9c95b5b95879a0b4dc64f3cec32edca24738a5ef1ffd2174b553edffdf7",
                          "typeString": "literal_string \"Airdrop: Airdrop has been claimed!\""
                        }
                      ],
                      "id": 7409,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1610:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7416,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1610:108:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7417,
                  "nodeType": "ExpressionStatement",
                  "src": "1610:108:42"
                },
                {
                  "assignments": [
                    7419
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7419,
                      "mutability": "mutable",
                      "name": "leaf",
                      "nameLocation": "1794:4:42",
                      "nodeType": "VariableDeclaration",
                      "scope": 7471,
                      "src": "1786:12:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 7418,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1786:7:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7428,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 7423,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "1828:3:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 7424,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "1828:10:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 7425,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7394,
                            "src": "1840:6:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 7421,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "1811:3:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 7422,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "1811:16:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 7426,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1811:36:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 7420,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "1801:9:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 7427,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1801:47:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1786:62:42"
                },
                {
                  "assignments": [
                    7430
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7430,
                      "mutability": "mutable",
                      "name": "isValidLeaf",
                      "nameLocation": "1863:11:42",
                      "nodeType": "VariableDeclaration",
                      "scope": 7471,
                      "src": "1858:16:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 7429,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "1858:4:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7437,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 7433,
                        "name": "proof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7397,
                        "src": "1896:5:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      {
                        "id": 7434,
                        "name": "merkleRoot",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7331,
                        "src": "1903:10:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 7435,
                        "name": "leaf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7419,
                        "src": "1915:4:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 7431,
                        "name": "MerkleProof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6074,
                        "src": "1877:11:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_MerkleProof_$6074_$",
                          "typeString": "type(library MerkleProof)"
                        }
                      },
                      "id": 7432,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "verify",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6005,
                      "src": "1877:18:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (bytes32[] memory,bytes32,bytes32) pure returns (bool)"
                      }
                    },
                    "id": 7436,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1877:43:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1858:62:42"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7439,
                        "name": "isValidLeaf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7430,
                        "src": "1938:11:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "41697264726f703a204164647265737320686173206e6f2041697264726f7020636c61696d21",
                        "id": 7440,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1951:40:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1a5665c2b6721dd48131124d9c1c1126d5652825e26e73b028b7569d4b4b6c66",
                          "typeString": "literal_string \"Airdrop: Address has no Airdrop claim!\""
                        },
                        "value": "Airdrop: Address has no Airdrop claim!"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1a5665c2b6721dd48131124d9c1c1126d5652825e26e73b028b7569d4b4b6c66",
                          "typeString": "literal_string \"Airdrop: Address has no Airdrop claim!\""
                        }
                      ],
                      "id": 7438,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1930:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7441,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1930:62:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7442,
                  "nodeType": "ExpressionStatement",
                  "src": "1930:62:42"
                },
                {
                  "expression": {
                    "id": 7448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 7443,
                        "name": "airdropClaimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7335,
                        "src": "2037:14:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                          "typeString": "mapping(address => bool)"
                        }
                      },
                      "id": 7446,
                      "indexExpression": {
                        "expression": {
                          "id": 7444,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "2052:3:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 7445,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "2052:10:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2037:26:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "74727565",
                      "id": 7447,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2066:4:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "2037:33:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7449,
                  "nodeType": "ExpressionStatement",
                  "src": "2037:33:42"
                },
                {
                  "assignments": [
                    7452
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7452,
                      "mutability": "mutable",
                      "name": "token",
                      "nameLocation": "2128:5:42",
                      "nodeType": "VariableDeclaration",
                      "scope": 7471,
                      "src": "2115:18:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC20Custom_$9652",
                        "typeString": "contract IERC20Custom"
                      },
                      "typeName": {
                        "id": 7451,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 7450,
                          "name": "IERC20Custom",
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 9652,
                          "src": "2115:12:42"
                        },
                        "referencedDeclaration": 9652,
                        "src": "2115:12:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20Custom_$9652",
                          "typeString": "contract IERC20Custom"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7456,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 7454,
                        "name": "tokenAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7329,
                        "src": "2149:12:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 7453,
                      "name": "IERC20Custom",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9652,
                      "src": "2136:12:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_IERC20Custom_$9652_$",
                        "typeString": "type(contract IERC20Custom)"
                      }
                    },
                    "id": 7455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2136:26:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20Custom_$9652",
                      "typeString": "contract IERC20Custom"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2115:47:42"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7460,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "2183:3:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 7461,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "2183:10:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 7462,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7394,
                        "src": "2195:6:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 7457,
                        "name": "token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7452,
                        "src": "2172:5:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20Custom_$9652",
                          "typeString": "contract IERC20Custom"
                        }
                      },
                      "id": 7459,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 9639,
                      "src": "2172:10:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 7463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2172:30:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7464,
                  "nodeType": "ExpressionStatement",
                  "src": "2172:30:42"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7466,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "2252:3:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 7467,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "2252:10:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 7468,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7394,
                        "src": "2264:6:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7465,
                      "name": "Claim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7342,
                      "src": "2246:5:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 7469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2246:25:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7470,
                  "nodeType": "EmitStatement",
                  "src": "2241:30:42"
                }
              ]
            },
            "documentation": {
              "id": 7392,
              "nodeType": "StructuredDocumentation",
              "src": "1177:203:42",
              "text": " @notice Allows claiming tokens if address is part of merkle tree\n @param amount of tokens owed to claimee\n @param proof merkle proof to prove address and amount are in tree"
            },
            "functionSelector": "2f52ebb7",
            "id": 7472,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7400,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7399,
                  "name": "nonReentrant",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 741,
                  "src": "1467:12:42"
                },
                "nodeType": "ModifierInvocation",
                "src": "1467:12:42"
              }
            ],
            "name": "claim",
            "nameLocation": "1394:5:42",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7398,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7394,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1408:6:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 7472,
                  "src": "1400:14:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7393,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1400:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7397,
                  "mutability": "mutable",
                  "name": "proof",
                  "nameLocation": "1435:5:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 7472,
                  "src": "1416:24:42",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7395,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1416:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 7396,
                    "nodeType": "ArrayTypeName",
                    "src": "1416:9:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1399:42:42"
            },
            "returnParameters": {
              "id": 7401,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1484:0:42"
            },
            "scope": 7473,
            "src": "1385:893:42",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 7474,
        "src": "297:1983:42",
        "usedErrors": []
      }
    ],
    "src": "38:2243:42"
  },
  "legacyAST": {
    "absolutePath": "project:/contracts/airdrop/Airdrop.sol",
    "exportedSymbols": {
      "Airdrop": [
        7473
      ],
      "Context": [
        5297
      ],
      "IERC20": [
        2884
      ],
      "IERC20Custom": [
        9652
      ],
      "MerkleProof": [
        6074
      ],
      "Ownable": [
        532
      ],
      "ReentrancyGuard": [
        742
      ]
    },
    "id": 7474,
    "license": "AGPL-3.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 7319,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".11"
        ],
        "nodeType": "PragmaDirective",
        "src": "38:24:42"
      },
      {
        "absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
        "file": "@openzeppelin/contracts/access/Ownable.sol",
        "id": 7320,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 7474,
        "sourceUnit": 533,
        "src": "64:52:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol",
        "file": "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol",
        "id": 7321,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 7474,
        "sourceUnit": 6075,
        "src": "117:68:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/security/ReentrancyGuard.sol",
        "file": "@openzeppelin/contracts/security/ReentrancyGuard.sol",
        "id": 7322,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 7474,
        "sourceUnit": 743,
        "src": "186:62:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/token/interfaces/IERC20Custom.sol",
        "file": "../token/interfaces/IERC20Custom.sol",
        "id": 7323,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 7474,
        "sourceUnit": 9653,
        "src": "249:46:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 7324,
              "name": "Ownable",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 532,
              "src": "317:7:42"
            },
            "id": 7325,
            "nodeType": "InheritanceSpecifier",
            "src": "317:7:42"
          },
          {
            "baseName": {
              "id": 7326,
              "name": "ReentrancyGuard",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 742,
              "src": "326:15:42"
            },
            "id": 7327,
            "nodeType": "InheritanceSpecifier",
            "src": "326:15:42"
          }
        ],
        "canonicalName": "Airdrop",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 7473,
        "linearizedBaseContracts": [
          7473,
          742,
          532,
          5297
        ],
        "name": "Airdrop",
        "nameLocation": "306:7:42",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "functionSelector": "9d76ea58",
            "id": 7329,
            "mutability": "mutable",
            "name": "tokenAddress",
            "nameLocation": "363:12:42",
            "nodeType": "VariableDeclaration",
            "scope": 7473,
            "src": "348:27:42",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 7328,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "348:7:42",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 7331,
            "mutability": "mutable",
            "name": "merkleRoot",
            "nameLocation": "397:10:42",
            "nodeType": "VariableDeclaration",
            "scope": 7473,
            "src": "381:26:42",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 7330,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "381:7:42",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "functionSelector": "d1b6dd30",
            "id": 7335,
            "mutability": "mutable",
            "name": "airdropClaimed",
            "nameLocation": "445:14:42",
            "nodeType": "VariableDeclaration",
            "scope": 7473,
            "src": "413:46:42",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
              "typeString": "mapping(address => bool)"
            },
            "typeName": {
              "id": 7334,
              "keyType": {
                "id": 7332,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "421:7:42",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "413:24:42",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                "typeString": "mapping(address => bool)"
              },
              "valueType": {
                "id": 7333,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "432:4:42",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": {
              "id": 7336,
              "nodeType": "StructuredDocumentation",
              "src": "466:140:42",
              "text": " @notice Emitted after a successful token claim\n @param to recipient of claim\n @param amount of tokens claimed"
            },
            "id": 7342,
            "name": "Claim",
            "nameLocation": "617:5:42",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 7341,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7338,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "639:2:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 7342,
                  "src": "623:18:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7337,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "623:7:42",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7340,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "651:6:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 7342,
                  "src": "643:14:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7339,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "643:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "622:36:42"
            },
            "src": "611:48:42"
          },
          {
            "body": {
              "id": 7357,
              "nodeType": "Block",
              "src": "721:79:42",
              "statements": [
                {
                  "expression": {
                    "id": 7351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 7349,
                      "name": "tokenAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7329,
                      "src": "731:12:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 7350,
                      "name": "_tokenAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7344,
                      "src": "746:13:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "731:28:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 7352,
                  "nodeType": "ExpressionStatement",
                  "src": "731:28:42"
                },
                {
                  "expression": {
                    "id": 7355,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 7353,
                      "name": "merkleRoot",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7331,
                      "src": "769:10:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 7354,
                      "name": "_merkleRoot",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "782:11:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "769:24:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 7356,
                  "nodeType": "ExpressionStatement",
                  "src": "769:24:42"
                }
              ]
            },
            "id": 7358,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7347,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7344,
                  "mutability": "mutable",
                  "name": "_tokenAddress",
                  "nameLocation": "685:13:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 7358,
                  "src": "677:21:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7343,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "677:7:42",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7346,
                  "mutability": "mutable",
                  "name": "_merkleRoot",
                  "nameLocation": "708:11:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 7358,
                  "src": "700:19:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7345,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "700:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "676:44:42"
            },
            "returnParameters": {
              "id": 7348,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "721:0:42"
            },
            "scope": 7473,
            "src": "665:135:42",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7367,
              "nodeType": "Block",
              "src": "871:34:42",
              "statements": [
                {
                  "expression": {
                    "id": 7365,
                    "name": "merkleRoot",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 7331,
                    "src": "888:10:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 7364,
                  "id": 7366,
                  "nodeType": "Return",
                  "src": "881:17:42"
                }
              ]
            },
            "functionSelector": "49590657",
            "id": 7368,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7361,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7360,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 474,
                  "src": "843:9:42"
                },
                "nodeType": "ModifierInvocation",
                "src": "843:9:42"
              }
            ],
            "name": "getMerkleRoot",
            "nameLocation": "815:13:42",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7359,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "828:2:42"
            },
            "returnParameters": {
              "id": 7364,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7363,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7368,
                  "src": "862:7:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7362,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "862:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "861:9:42"
            },
            "scope": 7473,
            "src": "806:99:42",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7390,
              "nodeType": "Block",
              "src": "977:194:42",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7382,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 7378,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7376,
                            "name": "_newMerkleRoot",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7370,
                            "src": "1008:14:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "hexValue": "30783030",
                            "id": 7377,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1026:4:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x00"
                          },
                          "src": "1008:22:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 7381,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7379,
                            "name": "_newMerkleRoot",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7370,
                            "src": "1034:14:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "id": 7380,
                            "name": "merkleRoot",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7331,
                            "src": "1052:10:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "1034:28:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1008:54:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "41697264726f703a20496e76616c6964206e6577206d65726b6c6520726f6f742076616c756521",
                        "id": 7383,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1076:41:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3148c05d9c24e5d95cc28a2fcd3ad70f2cc7e2ec39a50ecb5d20f279bcd9984e",
                          "typeString": "literal_string \"Airdrop: Invalid new merkle root value!\""
                        },
                        "value": "Airdrop: Invalid new merkle root value!"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3148c05d9c24e5d95cc28a2fcd3ad70f2cc7e2ec39a50ecb5d20f279bcd9984e",
                          "typeString": "literal_string \"Airdrop: Invalid new merkle root value!\""
                        }
                      ],
                      "id": 7375,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "987:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7384,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "987:140:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7385,
                  "nodeType": "ExpressionStatement",
                  "src": "987:140:42"
                },
                {
                  "expression": {
                    "id": 7388,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 7386,
                      "name": "merkleRoot",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7331,
                      "src": "1137:10:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 7387,
                      "name": "_newMerkleRoot",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7370,
                      "src": "1150:14:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1137:27:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 7389,
                  "nodeType": "ExpressionStatement",
                  "src": "1137:27:42"
                }
              ]
            },
            "functionSelector": "7cb64759",
            "id": 7391,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7373,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7372,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 474,
                  "src": "967:9:42"
                },
                "nodeType": "ModifierInvocation",
                "src": "967:9:42"
              }
            ],
            "name": "setMerkleRoot",
            "nameLocation": "920:13:42",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7371,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7370,
                  "mutability": "mutable",
                  "name": "_newMerkleRoot",
                  "nameLocation": "942:14:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 7391,
                  "src": "934:22:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7369,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "934:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "933:24:42"
            },
            "returnParameters": {
              "id": 7374,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "977:0:42"
            },
            "scope": 7473,
            "src": "911:260:42",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7471,
              "nodeType": "Block",
              "src": "1484:794:42",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7405,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7403,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7394,
                          "src": "1502:6:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 7404,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1511:1:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1502:10:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "41697264726f703a20416d6f756e742063616e6e6f74206265203021",
                        "id": 7406,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1514:30:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5f77736111e14b39e62a194d9af1a088cd08483c99b072c1125ca8f694e72e90",
                          "typeString": "literal_string \"Airdrop: Amount cannot be 0!\""
                        },
                        "value": "Airdrop: Amount cannot be 0!"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5f77736111e14b39e62a194d9af1a088cd08483c99b072c1125ca8f694e72e90",
                          "typeString": "literal_string \"Airdrop: Amount cannot be 0!\""
                        }
                      ],
                      "id": 7402,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1494:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7407,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1494:51:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7408,
                  "nodeType": "ExpressionStatement",
                  "src": "1494:51:42"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7414,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1631:27:42",
                        "subExpression": {
                          "baseExpression": {
                            "id": 7410,
                            "name": "airdropClaimed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7335,
                            "src": "1632:14:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                              "typeString": "mapping(address => bool)"
                            }
                          },
                          "id": 7413,
                          "indexExpression": {
                            "expression": {
                              "id": 7411,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "1647:3:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 7412,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "1647:10:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1632:26:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "41697264726f703a2041697264726f7020686173206265656e20636c61696d656421",
                        "id": 7415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1672:36:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_67bdd9c95b5b95879a0b4dc64f3cec32edca24738a5ef1ffd2174b553edffdf7",
                          "typeString": "literal_string \"Airdrop: Airdrop has been claimed!\""
                        },
                        "value": "Airdrop: Airdrop has been claimed!"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_67bdd9c95b5b95879a0b4dc64f3cec32edca24738a5ef1ffd2174b553edffdf7",
                          "typeString": "literal_string \"Airdrop: Airdrop has been claimed!\""
                        }
                      ],
                      "id": 7409,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1610:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7416,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1610:108:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7417,
                  "nodeType": "ExpressionStatement",
                  "src": "1610:108:42"
                },
                {
                  "assignments": [
                    7419
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7419,
                      "mutability": "mutable",
                      "name": "leaf",
                      "nameLocation": "1794:4:42",
                      "nodeType": "VariableDeclaration",
                      "scope": 7471,
                      "src": "1786:12:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 7418,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1786:7:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7428,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 7423,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "1828:3:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 7424,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "1828:10:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 7425,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7394,
                            "src": "1840:6:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 7421,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "1811:3:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 7422,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "1811:16:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 7426,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1811:36:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 7420,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "1801:9:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 7427,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1801:47:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1786:62:42"
                },
                {
                  "assignments": [
                    7430
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7430,
                      "mutability": "mutable",
                      "name": "isValidLeaf",
                      "nameLocation": "1863:11:42",
                      "nodeType": "VariableDeclaration",
                      "scope": 7471,
                      "src": "1858:16:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 7429,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "1858:4:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7437,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 7433,
                        "name": "proof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7397,
                        "src": "1896:5:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      {
                        "id": 7434,
                        "name": "merkleRoot",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7331,
                        "src": "1903:10:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 7435,
                        "name": "leaf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7419,
                        "src": "1915:4:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 7431,
                        "name": "MerkleProof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6074,
                        "src": "1877:11:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_MerkleProof_$6074_$",
                          "typeString": "type(library MerkleProof)"
                        }
                      },
                      "id": 7432,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "verify",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6005,
                      "src": "1877:18:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (bytes32[] memory,bytes32,bytes32) pure returns (bool)"
                      }
                    },
                    "id": 7436,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1877:43:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1858:62:42"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7439,
                        "name": "isValidLeaf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7430,
                        "src": "1938:11:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "41697264726f703a204164647265737320686173206e6f2041697264726f7020636c61696d21",
                        "id": 7440,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1951:40:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1a5665c2b6721dd48131124d9c1c1126d5652825e26e73b028b7569d4b4b6c66",
                          "typeString": "literal_string \"Airdrop: Address has no Airdrop claim!\""
                        },
                        "value": "Airdrop: Address has no Airdrop claim!"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1a5665c2b6721dd48131124d9c1c1126d5652825e26e73b028b7569d4b4b6c66",
                          "typeString": "literal_string \"Airdrop: Address has no Airdrop claim!\""
                        }
                      ],
                      "id": 7438,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1930:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7441,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1930:62:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7442,
                  "nodeType": "ExpressionStatement",
                  "src": "1930:62:42"
                },
                {
                  "expression": {
                    "id": 7448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 7443,
                        "name": "airdropClaimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7335,
                        "src": "2037:14:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                          "typeString": "mapping(address => bool)"
                        }
                      },
                      "id": 7446,
                      "indexExpression": {
                        "expression": {
                          "id": 7444,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "2052:3:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 7445,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "2052:10:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2037:26:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "74727565",
                      "id": 7447,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2066:4:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "2037:33:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7449,
                  "nodeType": "ExpressionStatement",
                  "src": "2037:33:42"
                },
                {
                  "assignments": [
                    7452
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7452,
                      "mutability": "mutable",
                      "name": "token",
                      "nameLocation": "2128:5:42",
                      "nodeType": "VariableDeclaration",
                      "scope": 7471,
                      "src": "2115:18:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC20Custom_$9652",
                        "typeString": "contract IERC20Custom"
                      },
                      "typeName": {
                        "id": 7451,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 7450,
                          "name": "IERC20Custom",
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 9652,
                          "src": "2115:12:42"
                        },
                        "referencedDeclaration": 9652,
                        "src": "2115:12:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20Custom_$9652",
                          "typeString": "contract IERC20Custom"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7456,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 7454,
                        "name": "tokenAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7329,
                        "src": "2149:12:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 7453,
                      "name": "IERC20Custom",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9652,
                      "src": "2136:12:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_IERC20Custom_$9652_$",
                        "typeString": "type(contract IERC20Custom)"
                      }
                    },
                    "id": 7455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2136:26:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20Custom_$9652",
                      "typeString": "contract IERC20Custom"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2115:47:42"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7460,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "2183:3:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 7461,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "2183:10:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 7462,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7394,
                        "src": "2195:6:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 7457,
                        "name": "token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7452,
                        "src": "2172:5:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20Custom_$9652",
                          "typeString": "contract IERC20Custom"
                        }
                      },
                      "id": 7459,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 9639,
                      "src": "2172:10:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 7463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2172:30:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7464,
                  "nodeType": "ExpressionStatement",
                  "src": "2172:30:42"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7466,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "2252:3:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 7467,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "2252:10:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 7468,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7394,
                        "src": "2264:6:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7465,
                      "name": "Claim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7342,
                      "src": "2246:5:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 7469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2246:25:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7470,
                  "nodeType": "EmitStatement",
                  "src": "2241:30:42"
                }
              ]
            },
            "documentation": {
              "id": 7392,
              "nodeType": "StructuredDocumentation",
              "src": "1177:203:42",
              "text": " @notice Allows claiming tokens if address is part of merkle tree\n @param amount of tokens owed to claimee\n @param proof merkle proof to prove address and amount are in tree"
            },
            "functionSelector": "2f52ebb7",
            "id": 7472,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7400,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7399,
                  "name": "nonReentrant",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 741,
                  "src": "1467:12:42"
                },
                "nodeType": "ModifierInvocation",
                "src": "1467:12:42"
              }
            ],
            "name": "claim",
            "nameLocation": "1394:5:42",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7398,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7394,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1408:6:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 7472,
                  "src": "1400:14:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7393,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1400:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7397,
                  "mutability": "mutable",
                  "name": "proof",
                  "nameLocation": "1435:5:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 7472,
                  "src": "1416:24:42",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7395,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1416:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 7396,
                    "nodeType": "ArrayTypeName",
                    "src": "1416:9:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1399:42:42"
            },
            "returnParameters": {
              "id": 7401,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1484:0:42"
            },
            "scope": 7473,
            "src": "1385:893:42",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 7474,
        "src": "297:1983:42",
        "usedErrors": []
      }
    ],
    "src": "38:2243:42"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.11+commit.d7f03943.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.4",
  "updatedAt": "2022-03-06T23:47:11.083Z",
  "devdoc": {
    "events": {
      "Claim(address,uint256)": {
        "params": {
          "amount": "of tokens claimed",
          "to": "recipient of claim"
        }
      }
    },
    "kind": "dev",
    "methods": {
      "claim(uint256,bytes32[])": {
        "params": {
          "amount": "of tokens owed to claimee",
          "proof": "merkle proof to prove address and amount are in tree"
        }
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "version": 1
  },
  "userdoc": {
    "events": {
      "Claim(address,uint256)": {
        "notice": "Emitted after a successful token claim"
      }
    },
    "kind": "user",
    "methods": {
      "claim(uint256,bytes32[])": {
        "notice": "Allows claiming tokens if address is part of merkle tree"
      }
    },
    "version": 1
  }
}