Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save makkinga/34086f5c78c80a7e6fe5e8ba4b6d3904 to your computer and use it in GitHub Desktop.
Save makkinga/34086f5c78c80a7e6fe5e8ba4b6d3904 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.25+commit.b61c2a91.js&optimize=false&runs=200&gist=
{
"name": "Tipper",
"address": "0xb356b4ff874e5a6402e485b0c1b19a60d5a21ba2",
"abi": [
{
"inputs": [
{
"internalType": "contract TipBank",
"name": "_bank",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "AppAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "AppRemoved",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "tip",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address[]",
"name": "_to",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "tipMulti",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "Tipped",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address[]",
"name": "_to",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "tipSplit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "TokensBurned",
"type": "event"
},
{
"inputs": [],
"name": "bank",
"outputs": [
{
"internalType": "contract TipBank",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "BOT_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"filePath": "Crypto Valleys/contracts/Tipper.sol",
"pinnedAt": 1710593497940
}
{
"name": "Bank",
"address": "0xbb665fb36861c91ee8d175d3fb76e73a015fab81",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_oldBalance",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_newBalance",
"type": "uint256"
}
],
"name": "AccountBalanceDecreased",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_oldBalance",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_newBalance",
"type": "uint256"
}
],
"name": "AccountBalanceIncreased",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "AccountBanned",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "AccountCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "AccountUnbanned",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "AccountVerified",
"type": "event"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "_token",
"type": "address"
}
],
"name": "addToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "banAccount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "createAccount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "decreaseAccountBalance",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "depositNative",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "increaseAccountBalance",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Paused",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"internalType": "string",
"name": "_discordId",
"type": "string"
}
],
"name": "setDiscordId",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "TokenAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "TokensBurned",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_oldBalance",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_newBalance",
"type": "uint256"
}
],
"name": "TokensDeposited",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_oldBalance",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_newBalance",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bool",
"name": "_max",
"type": "bool"
}
],
"name": "TokensWithdrawn",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "unbanAccount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Unpaused",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"internalType": "string",
"name": "_discordId",
"type": "string"
}
],
"name": "verifyAccount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "bool",
"name": "_max",
"type": "bool"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "accounts",
"outputs": [
{
"internalType": "bool",
"name": "active",
"type": "bool"
},
{
"internalType": "bool",
"name": "verified",
"type": "bool"
},
{
"internalType": "bool",
"name": "banned",
"type": "bool"
},
{
"internalType": "string",
"name": "discordId",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "BANNER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "BOT_CONTRACT_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "BOT_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "getAccountActive",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "getAccountBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "getAccountBanned",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "getAccountBurned",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "discordId",
"type": "string"
}
],
"name": "getAccountByDiscordId",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "getAccountCanBeTipped",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "getAccountCanTip",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "getAccountReceived",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "getAccountTipped",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "getAccountVerified",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "getAllowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "getContractBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "tokens",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "totalBurned",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "totalTimesBurned",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "totalTimesTipped",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "totalTipped",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "VERIFIER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
}
],
"filePath": "Crypto Valleys/contracts/Bank.sol",
"pinnedAt": 1710593497008
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol)
pragma solidity ^0.8.20;
import {IAccessControl} from "./IAccessControl.sol";
import {Context} from "../utils/Context.sol";
import {ERC165} from "../utils/introspection/ERC165.sol";
/**
* @dev Contract module that allows children to implement role-based access
* control mechanisms. This is a lightweight version that doesn't allow enumerating role
* members except through off-chain means by accessing the contract event logs. Some
* applications may benefit from on-chain enumerability, for those cases see
* {AccessControlEnumerable}.
*
* Roles are referred to by their `bytes32` identifier. These should be exposed
* in the external API and be unique. The best way to achieve this is by
* using `public constant` hash digests:
*
* ```solidity
* bytes32 public constant MY_ROLE = keccak256("MY_ROLE");
* ```
*
* Roles can be used to represent a set of permissions. To restrict access to a
* function call, use {hasRole}:
*
* ```solidity
* function foo() public {
* require(hasRole(MY_ROLE, msg.sender));
* ...
* }
* ```
*
* Roles can be granted and revoked dynamically via the {grantRole} and
* {revokeRole} functions. Each role has an associated admin role, and only
* accounts that have a role's admin role can call {grantRole} and {revokeRole}.
*
* By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means
* that only accounts with this role will be able to grant or revoke other
* roles. More complex role relationships can be created by using
* {_setRoleAdmin}.
*
* WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to
* grant and revoke this role. Extra precautions should be taken to secure
* accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}
* to enforce additional security measures for this role.
*/
abstract contract AccessControl is Context, IAccessControl, ERC165 {
struct RoleData {
mapping(address account => bool) hasRole;
bytes32 adminRole;
}
mapping(bytes32 role => RoleData) private _roles;
bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;
/**
* @dev Modifier that checks that an account has a specific role. Reverts
* with an {AccessControlUnauthorizedAccount} error including the required role.
*/
modifier onlyRole(bytes32 role) {
_checkRole(role);
_;
}
/**
* @dev See {IERC165-supportsInterface}.
*/
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);
}
/**
* @dev Returns `true` if `account` has been granted `role`.
*/
function hasRole(bytes32 role, address account) public view virtual returns (bool) {
return _roles[role].hasRole[account];
}
/**
* @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`
* is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier.
*/
function _checkRole(bytes32 role) internal view virtual {
_checkRole(role, _msgSender());
}
/**
* @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`
* is missing `role`.
*/
function _checkRole(bytes32 role, address account) internal view virtual {
if (!hasRole(role, account)) {
revert AccessControlUnauthorizedAccount(account, role);
}
}
/**
* @dev Returns the admin role that controls `role`. See {grantRole} and
* {revokeRole}.
*
* To change a role's admin, use {_setRoleAdmin}.
*/
function getRoleAdmin(bytes32 role) public view virtual returns (bytes32) {
return _roles[role].adminRole;
}
/**
* @dev Grants `role` to `account`.
*
* If `account` had not been already granted `role`, emits a {RoleGranted}
* event.
*
* Requirements:
*
* - the caller must have ``role``'s admin role.
*
* May emit a {RoleGranted} event.
*/
function grantRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {
_grantRole(role, account);
}
/**
* @dev Revokes `role` from `account`.
*
* If `account` had been granted `role`, emits a {RoleRevoked} event.
*
* Requirements:
*
* - the caller must have ``role``'s admin role.
*
* May emit a {RoleRevoked} event.
*/
function revokeRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {
_revokeRole(role, account);
}
/**
* @dev Revokes `role` from the calling account.
*
* Roles are often managed via {grantRole} and {revokeRole}: this function's
* purpose is to provide a mechanism for accounts to lose their privileges
* if they are compromised (such as when a trusted device is misplaced).
*
* If the calling account had been revoked `role`, emits a {RoleRevoked}
* event.
*
* Requirements:
*
* - the caller must be `callerConfirmation`.
*
* May emit a {RoleRevoked} event.
*/
function renounceRole(bytes32 role, address callerConfirmation) public virtual {
if (callerConfirmation != _msgSender()) {
revert AccessControlBadConfirmation();
}
_revokeRole(role, callerConfirmation);
}
/**
* @dev Sets `adminRole` as ``role``'s admin role.
*
* Emits a {RoleAdminChanged} event.
*/
function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
bytes32 previousAdminRole = getRoleAdmin(role);
_roles[role].adminRole = adminRole;
emit RoleAdminChanged(role, previousAdminRole, adminRole);
}
/**
* @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.
*
* Internal function without access restriction.
*
* May emit a {RoleGranted} event.
*/
function _grantRole(bytes32 role, address account) internal virtual returns (bool) {
if (!hasRole(role, account)) {
_roles[role].hasRole[account] = true;
emit RoleGranted(role, account, _msgSender());
return true;
} else {
return false;
}
}
/**
* @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.
*
* Internal function without access restriction.
*
* May emit a {RoleRevoked} event.
*/
function _revokeRole(bytes32 role, address account) internal virtual returns (bool) {
if (hasRole(role, account)) {
_roles[role].hasRole[account] = false;
emit RoleRevoked(role, account, _msgSender());
return true;
} else {
return false;
}
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"DEFAULT_ADMIN_ROLE()": "a217fddf",
"getRoleAdmin(bytes32)": "248a9ca3",
"grantRole(bytes32,address)": "2f2ff15d",
"hasRole(bytes32,address)": "91d14854",
"renounceRole(bytes32,address)": "36568abe",
"revokeRole(bytes32,address)": "d547741f",
"supportsInterface(bytes4)": "01ffc9a7"
}
},
"abi": [
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.25+commit.b61c2a91"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"details": "Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.",
"errors": {
"AccessControlBadConfirmation()": [
{
"details": "The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}."
}
],
"AccessControlUnauthorizedAccount(address,bytes32)": [
{
"details": "The `account` is missing a role."
}
]
},
"events": {
"RoleAdminChanged(bytes32,bytes32,bytes32)": {
"details": "Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this."
},
"RoleGranted(bytes32,address,address)": {
"details": "Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."
},
"RoleRevoked(bytes32,address,address)": {
"details": "Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)"
}
},
"kind": "dev",
"methods": {
"getRoleAdmin(bytes32)": {
"details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."
},
"grantRole(bytes32,address)": {
"details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."
},
"hasRole(bytes32,address)": {
"details": "Returns `true` if `account` has been granted `role`."
},
"renounceRole(bytes32,address)": {
"details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."
},
"revokeRole(bytes32,address)": {
"details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."
},
"supportsInterface(bytes4)": {
"details": "See {IERC165-supportsInterface}."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
".deps/npm/@openzeppelin/contracts/access/AccessControl.sol": "AccessControl"
},
"evmVersion": "cancun",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
".deps/npm/@openzeppelin/contracts/access/AccessControl.sol": {
"keccak256": "0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308",
"license": "MIT",
"urls": [
"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80",
"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"
]
},
".deps/npm/@openzeppelin/contracts/access/IAccessControl.sol": {
"keccak256": "0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41",
"license": "MIT",
"urls": [
"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26",
"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"
]
},
".deps/npm/@openzeppelin/contracts/utils/Context.sol": {
"keccak256": "0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2",
"license": "MIT",
"urls": [
"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12",
"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"
]
},
".deps/npm/@openzeppelin/contracts/utils/introspection/ERC165.sol": {
"keccak256": "0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133",
"license": "MIT",
"urls": [
"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8",
"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"
]
},
".deps/npm/@openzeppelin/contracts/utils/introspection/IERC165.sol": {
"keccak256": "0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b",
"license": "MIT",
"urls": [
"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df",
"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"
]
}
},
"version": 1
}
{
"id": "fa8d867fee8a3576fcd57f714ba921bc",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.25",
"solcLongVersion": "0.8.25+commit.b61c2a91",
"input": {
"language": "Solidity",
"sources": {
".deps/npm/@openzeppelin/contracts/access/IAccessControl.sol": {
"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/IAccessControl.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n /**\n * @dev The `account` is missing a role.\n */\n error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);\n\n /**\n * @dev The caller of a function is not the expected one.\n *\n * NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\n */\n error AccessControlBadConfirmation();\n\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted signaling this.\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call, an admin role\n * bearer except when using {AccessControl-_setupRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) external view returns (bool);\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `callerConfirmation`.\n */\n function renounceRole(bytes32 role, address callerConfirmation) external;\n}\n"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
},
"remappings": []
}
},
"output": {
"contracts": {
".deps/npm/@openzeppelin/contracts/access/IAccessControl.sol": {
"IAccessControl": {
"abi": [
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "External interface of AccessControl declared to support ERC165 detection.",
"errors": {
"AccessControlBadConfirmation()": [
{
"details": "The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}."
}
],
"AccessControlUnauthorizedAccount(address,bytes32)": [
{
"details": "The `account` is missing a role."
}
]
},
"events": {
"RoleAdminChanged(bytes32,bytes32,bytes32)": {
"details": "Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this."
},
"RoleGranted(bytes32,address,address)": {
"details": "Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."
},
"RoleRevoked(bytes32,address,address)": {
"details": "Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)"
}
},
"kind": "dev",
"methods": {
"getRoleAdmin(bytes32)": {
"details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}."
},
"grantRole(bytes32,address)": {
"details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role."
},
"hasRole(bytes32,address)": {
"details": "Returns `true` if `account` has been granted `role`."
},
"renounceRole(bytes32,address)": {
"details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`."
},
"revokeRole(bytes32,address)": {
"details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role."
}
},
"version": 1
},
"evm": {
"assembly": "",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"legacyAssembly": null,
"methodIdentifiers": {
"getRoleAdmin(bytes32)": "248a9ca3",
"grantRole(bytes32,address)": "2f2ff15d",
"hasRole(bytes32,address)": "91d14854",
"renounceRole(bytes32,address)": "36568abe",
"revokeRole(bytes32,address)": "d547741f"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\".deps/npm/@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\".deps/npm/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"sources": {
".deps/npm/@openzeppelin/contracts/access/IAccessControl.sol": {
"ast": {
"absolutePath": ".deps/npm/@openzeppelin/contracts/access/IAccessControl.sol",
"exportedSymbols": {
"IAccessControl": [
82
]
},
"id": 83,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8",
".20"
],
"nodeType": "PragmaDirective",
"src": "109:24:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "IAccessControl",
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 2,
"nodeType": "StructuredDocumentation",
"src": "135:89:0",
"text": " @dev External interface of AccessControl declared to support ERC165 detection."
},
"fullyImplemented": false,
"id": 82,
"linearizedBaseContracts": [
82
],
"name": "IAccessControl",
"nameLocation": "235:14:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"documentation": {
"id": 3,
"nodeType": "StructuredDocumentation",
"src": "256:56:0",
"text": " @dev The `account` is missing a role."
},
"errorSelector": "e2517d3f",
"id": 9,
"name": "AccessControlUnauthorizedAccount",
"nameLocation": "323:32:0",
"nodeType": "ErrorDefinition",
"parameters": {
"id": 8,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5,
"mutability": "mutable",
"name": "account",
"nameLocation": "364:7:0",
"nodeType": "VariableDeclaration",
"scope": 9,
"src": "356:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "356:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7,
"mutability": "mutable",
"name": "neededRole",
"nameLocation": "381:10:0",
"nodeType": "VariableDeclaration",
"scope": 9,
"src": "373:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 6,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "373:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "355:37:0"
},
"src": "317:76:0"
},
{
"documentation": {
"id": 10,
"nodeType": "StructuredDocumentation",
"src": "399:148:0",
"text": " @dev The caller of a function is not the expected one.\n NOTE: Don't confuse with {AccessControlUnauthorizedAccount}."
},
"errorSelector": "6697b232",
"id": 12,
"name": "AccessControlBadConfirmation",
"nameLocation": "558:28:0",
"nodeType": "ErrorDefinition",
"parameters": {
"id": 11,
"nodeType": "ParameterList",
"parameters": [],
"src": "586:2:0"
},
"src": "552:37:0"
},
{
"anonymous": false,
"documentation": {
"id": 13,
"nodeType": "StructuredDocumentation",
"src": "595:254:0",
"text": " @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this."
},
"eventSelector": "bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff",
"id": 21,
"name": "RoleAdminChanged",
"nameLocation": "860:16:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 20,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 15,
"indexed": true,
"mutability": "mutable",
"name": "role",
"nameLocation": "893:4:0",
"nodeType": "VariableDeclaration",
"scope": 21,
"src": "877:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 14,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "877:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 17,
"indexed": true,
"mutability": "mutable",
"name": "previousAdminRole",
"nameLocation": "915:17:0",
"nodeType": "VariableDeclaration",
"scope": 21,
"src": "899:33:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 16,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "899:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 19,
"indexed": true,
"mutability": "mutable",
"name": "newAdminRole",
"nameLocation": "950:12:0",
"nodeType": "VariableDeclaration",
"scope": 21,
"src": "934:28:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 18,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "934:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "876:87:0"
},
"src": "854:110:0"
},
{
"anonymous": false,
"documentation": {
"id": 22,
"nodeType": "StructuredDocumentation",
"src": "970:212:0",
"text": " @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}."
},
"eventSelector": "2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
"id": 30,
"name": "RoleGranted",
"nameLocation": "1193:11:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 29,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 24,
"indexed": true,
"mutability": "mutable",
"name": "role",
"nameLocation": "1221:4:0",
"nodeType": "VariableDeclaration",
"scope": 30,
"src": "1205:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 23,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1205:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 26,
"indexed": true,
"mutability": "mutable",
"name": "account",
"nameLocation": "1243:7:0",
"nodeType": "VariableDeclaration",
"scope": 30,
"src": "1227:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 25,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1227:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 28,
"indexed": true,
"mutability": "mutable",
"name": "sender",
"nameLocation": "1268:6:0",
"nodeType": "VariableDeclaration",
"scope": 30,
"src": "1252:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 27,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1252:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1204:71:0"
},
"src": "1187:89:0"
},
{
"anonymous": false,
"documentation": {
"id": 31,
"nodeType": "StructuredDocumentation",
"src": "1282:275:0",
"text": " @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)"
},
"eventSelector": "f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b",
"id": 39,
"name": "RoleRevoked",
"nameLocation": "1568:11:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 38,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 33,
"indexed": true,
"mutability": "mutable",
"name": "role",
"nameLocation": "1596:4:0",
"nodeType": "VariableDeclaration",
"scope": 39,
"src": "1580:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 32,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1580:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 35,
"indexed": true,
"mutability": "mutable",
"name": "account",
"nameLocation": "1618:7:0",
"nodeType": "VariableDeclaration",
"scope": 39,
"src": "1602:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 34,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1602:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 37,
"indexed": true,
"mutability": "mutable",
"name": "sender",
"nameLocation": "1643:6:0",
"nodeType": "VariableDeclaration",
"scope": 39,
"src": "1627:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 36,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1627:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1579:71:0"
},
"src": "1562:89:0"
},
{
"documentation": {
"id": 40,
"nodeType": "StructuredDocumentation",
"src": "1657:76:0",
"text": " @dev Returns `true` if `account` has been granted `role`."
},
"functionSelector": "91d14854",
"id": 49,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "hasRole",
"nameLocation": "1747:7:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 45,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 42,
"mutability": "mutable",
"name": "role",
"nameLocation": "1763:4:0",
"nodeType": "VariableDeclaration",
"scope": 49,
"src": "1755:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 41,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1755:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 44,
"mutability": "mutable",
"name": "account",
"nameLocation": "1777:7:0",
"nodeType": "VariableDeclaration",
"scope": 49,
"src": "1769:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1769:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1754:31:0"
},
"returnParameters": {
"id": 48,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 47,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 49,
"src": "1809:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 46,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1809:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "1808:6:0"
},
"scope": 82,
"src": "1738:77:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 50,
"nodeType": "StructuredDocumentation",
"src": "1821:184:0",
"text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}."
},
"functionSelector": "248a9ca3",
"id": 57,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getRoleAdmin",
"nameLocation": "2019:12:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 53,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 52,
"mutability": "mutable",
"name": "role",
"nameLocation": "2040:4:0",
"nodeType": "VariableDeclaration",
"scope": 57,
"src": "2032:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 51,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2032:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "2031:14:0"
},
"returnParameters": {
"id": 56,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 55,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 57,
"src": "2069:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 54,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2069:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "2068:9:0"
},
"scope": 82,
"src": "2010:68:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 58,
"nodeType": "StructuredDocumentation",
"src": "2084:239:0",
"text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."
},
"functionSelector": "2f2ff15d",
"id": 65,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "grantRole",
"nameLocation": "2337:9:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 63,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 60,
"mutability": "mutable",
"name": "role",
"nameLocation": "2355:4:0",
"nodeType": "VariableDeclaration",
"scope": 65,
"src": "2347:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 59,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2347:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 62,
"mutability": "mutable",
"name": "account",
"nameLocation": "2369:7:0",
"nodeType": "VariableDeclaration",
"scope": 65,
"src": "2361:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 61,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2361:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "2346:31:0"
},
"returnParameters": {
"id": 64,
"nodeType": "ParameterList",
"parameters": [],
"src": "2386:0:0"
},
"scope": 82,
"src": "2328:59:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 66,
"nodeType": "StructuredDocumentation",
"src": "2393:223:0",
"text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."
},
"functionSelector": "d547741f",
"id": 73,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "revokeRole",
"nameLocation": "2630:10:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 71,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 68,
"mutability": "mutable",
"name": "role",
"nameLocation": "2649:4:0",
"nodeType": "VariableDeclaration",
"scope": 73,
"src": "2641:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 67,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2641:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 70,
"mutability": "mutable",
"name": "account",
"nameLocation": "2663:7:0",
"nodeType": "VariableDeclaration",
"scope": 73,
"src": "2655:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 69,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2655:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "2640:31:0"
},
"returnParameters": {
"id": 72,
"nodeType": "ParameterList",
"parameters": [],
"src": "2680:0:0"
},
"scope": 82,
"src": "2621:60:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 74,
"nodeType": "StructuredDocumentation",
"src": "2687:491:0",
"text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`."
},
"functionSelector": "36568abe",
"id": 81,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "renounceRole",
"nameLocation": "3192:12:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 79,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 76,
"mutability": "mutable",
"name": "role",
"nameLocation": "3213:4:0",
"nodeType": "VariableDeclaration",
"scope": 81,
"src": "3205:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 75,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3205:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 78,
"mutability": "mutable",
"name": "callerConfirmation",
"nameLocation": "3227:18:0",
"nodeType": "VariableDeclaration",
"scope": 81,
"src": "3219:26:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 77,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3219:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "3204:42:0"
},
"returnParameters": {
"id": 80,
"nodeType": "ParameterList",
"parameters": [],
"src": "3255:0:0"
},
"scope": 82,
"src": "3183:73:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
}
],
"scope": 83,
"src": "225:3033:0",
"usedErrors": [
9,
12
],
"usedEvents": [
21,
30,
39
]
}
],
"src": "109:3150:0"
},
"id": 0
}
}
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"getRoleAdmin(bytes32)": "248a9ca3",
"grantRole(bytes32,address)": "2f2ff15d",
"hasRole(bytes32,address)": "91d14854",
"renounceRole(bytes32,address)": "36568abe",
"revokeRole(bytes32,address)": "d547741f"
}
},
"abi": [
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.25+commit.b61c2a91"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "External interface of AccessControl declared to support ERC165 detection.",
"errors": {
"AccessControlBadConfirmation()": [
{
"details": "The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}."
}
],
"AccessControlUnauthorizedAccount(address,bytes32)": [
{
"details": "The `account` is missing a role."
}
]
},
"events": {
"RoleAdminChanged(bytes32,bytes32,bytes32)": {
"details": "Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this."
},
"RoleGranted(bytes32,address,address)": {
"details": "Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."
},
"RoleRevoked(bytes32,address,address)": {
"details": "Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)"
}
},
"kind": "dev",
"methods": {
"getRoleAdmin(bytes32)": {
"details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}."
},
"grantRole(bytes32,address)": {
"details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role."
},
"hasRole(bytes32,address)": {
"details": "Returns `true` if `account` has been granted `role`."
},
"renounceRole(bytes32,address)": {
"details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`."
},
"revokeRole(bytes32,address)": {
"details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
".deps/npm/@openzeppelin/contracts/access/IAccessControl.sol": "IAccessControl"
},
"evmVersion": "cancun",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
".deps/npm/@openzeppelin/contracts/access/IAccessControl.sol": {
"keccak256": "0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41",
"license": "MIT",
"urls": [
"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26",
"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/IAccessControl.sol)
pragma solidity ^0.8.20;
/**
* @dev External interface of AccessControl declared to support ERC165 detection.
*/
interface IAccessControl {
/**
* @dev The `account` is missing a role.
*/
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);
/**
* @dev The caller of a function is not the expected one.
*
* NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.
*/
error AccessControlBadConfirmation();
/**
* @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`
*
* `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite
* {RoleAdminChanged} not being emitted signaling this.
*/
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);
/**
* @dev Emitted when `account` is granted `role`.
*
* `sender` is the account that originated the contract call, an admin role
* bearer except when using {AccessControl-_setupRole}.
*/
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);
/**
* @dev Emitted when `account` is revoked `role`.
*
* `sender` is the account that originated the contract call:
* - if using `revokeRole`, it is the admin role bearer
* - if using `renounceRole`, it is the role bearer (i.e. `account`)
*/
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);
/**
* @dev Returns `true` if `account` has been granted `role`.
*/
function hasRole(bytes32 role, address account) external view returns (bool);
/**
* @dev Returns the admin role that controls `role`. See {grantRole} and
* {revokeRole}.
*
* To change a role's admin, use {AccessControl-_setRoleAdmin}.
*/
function getRoleAdmin(bytes32 role) external view returns (bytes32);
/**
* @dev Grants `role` to `account`.
*
* If `account` had not been already granted `role`, emits a {RoleGranted}
* event.
*
* Requirements:
*
* - the caller must have ``role``'s admin role.
*/
function grantRole(bytes32 role, address account) external;
/**
* @dev Revokes `role` from `account`.
*
* If `account` had been granted `role`, emits a {RoleRevoked} event.
*
* Requirements:
*
* - the caller must have ``role``'s admin role.
*/
function revokeRole(bytes32 role, address account) external;
/**
* @dev Revokes `role` from the calling account.
*
* Roles are often managed via {grantRole} and {revokeRole}: this function's
* purpose is to provide a mechanism for accounts to lose their privileges
* if they are compromised (such as when a trusted device is misplaced).
*
* If the calling account had been granted `role`, emits a {RoleRevoked}
* event.
*
* Requirements:
*
* - the caller must be `callerConfirmation`.
*/
function renounceRole(bytes32 role, address callerConfirmation) external;
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which allows children to implement an emergency stop
* mechanism that can be triggered by an authorized account.
*
* This module is used through inheritance. It will make available the
* modifiers `whenNotPaused` and `whenPaused`, which can be applied to
* the functions of your contract. Note that they will not be pausable by
* simply including this module, only once the modifiers are put in place.
*/
abstract contract Pausable is Context {
/**
* @dev Emitted when the pause is triggered by `account`.
*/
event Paused(address account);
/**
* @dev Emitted when the pause is lifted by `account`.
*/
event Unpaused(address account);
bool private _paused;
/**
* @dev Initializes the contract in unpaused state.
*/
constructor() {
_paused = false;
}
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*
* Requirements:
*
* - The contract must not be paused.
*/
modifier whenNotPaused() {
_requireNotPaused();
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*
* Requirements:
*
* - The contract must be paused.
*/
modifier whenPaused() {
_requirePaused();
_;
}
/**
* @dev Returns true if the contract is paused, and false otherwise.
*/
function paused() public view virtual returns (bool) {
return _paused;
}
/**
* @dev Throws if the contract is paused.
*/
function _requireNotPaused() internal view virtual {
require(!paused(), "Pausable: paused");
}
/**
* @dev Throws if the contract is not paused.
*/
function _requirePaused() internal view virtual {
require(paused(), "Pausable: not paused");
}
/**
* @dev Triggers stopped state.
*
* Requirements:
*
* - The contract must not be paused.
*/
function _pause() internal virtual whenNotPaused {
_paused = true;
emit Paused(_msgSender());
}
/**
* @dev Returns to normal state.
*
* Requirements:
*
* - The contract must be paused.
*/
function _unpause() internal virtual whenPaused {
_paused = false;
emit Unpaused(_msgSender());
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.20;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 value) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets a `value` amount of tokens as the allowance of `spender` over the
* caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 value) external returns (bool);
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)
pragma solidity ^0.8.20;
import {IERC165} from "./IERC165.sol";
/**
* @dev Implementation of the {IERC165} interface.
*
* Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
* for the additional interface id that will be supported. For example:
*
* ```solidity
* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
* }
* ```
*/
abstract contract ERC165 is IERC165 {
/**
* @dev See {IERC165-supportsInterface}.
*/
function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {
return interfaceId == type(IERC165).interfaceId;
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)
pragma solidity ^0.8.20;
/**
* @dev Interface of the ERC165 standard, as defined in the
* https://eips.ethereum.org/EIPS/eip-165[EIP].
*
* Implementers can declare support of contract interfaces, which can then be
* queried by others ({ERC165Checker}).
*
* For an implementation, see {ERC165}.
*/
interface IERC165 {
/**
* @dev Returns true if this contract implements the interface defined by
* `interfaceId`. See the corresponding
* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
* to learn more about how these ids are created.
*
* This function call must use less than 30 000 gas.
*/
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
import "../utils/EnumerableSet.sol";
import "../utils/Address.sol";
import "../utils/Context.sol";
/**
* @dev Contract module that allows children to implement role-based access
* control mechanisms.
*
* Roles are referred to by their `bytes32` identifier. These should be exposed
* in the external API and be unique. The best way to achieve this is by
* using `public constant` hash digests:
*
* ```
* bytes32 public constant MY_ROLE = keccak256("MY_ROLE");
* ```
*
* Roles can be used to represent a set of permissions. To restrict access to a
* function call, use {hasRole}:
*
* ```
* function foo() public {
* require(hasRole(MY_ROLE, msg.sender));
* ...
* }
* ```
*
* Roles can be granted and revoked dynamically via the {grantRole} and
* {revokeRole} functions. Each role has an associated admin role, and only
* accounts that have a role's admin role can call {grantRole} and {revokeRole}.
*
* By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means
* that only accounts with this role will be able to grant or revoke other
* roles. More complex role relationships can be created by using
* {_setRoleAdmin}.
*
* WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to
* grant and revoke this role. Extra precautions should be taken to secure
* accounts that have been granted it.
*/
abstract contract AccessControl is Context {
using EnumerableSet for EnumerableSet.AddressSet;
using Address for address;
struct RoleData {
EnumerableSet.AddressSet members;
bytes32 adminRole;
}
mapping (bytes32 => RoleData) private _roles;
bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;
/**
* @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`
*
* `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite
* {RoleAdminChanged} not being emitted signaling this.
*
* _Available since v3.1._
*/
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);
/**
* @dev Emitted when `account` is granted `role`.
*
* `sender` is the account that originated the contract call, an admin role
* bearer except when using {_setupRole}.
*/
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);
/**
* @dev Emitted when `account` is revoked `role`.
*
* `sender` is the account that originated the contract call:
* - if using `revokeRole`, it is the admin role bearer
* - if using `renounceRole`, it is the role bearer (i.e. `account`)
*/
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);
/**
* @dev Returns `true` if `account` has been granted `role`.
*/
function hasRole(bytes32 role, address account) public view returns (bool) {
return _roles[role].members.contains(account);
}
/**
* @dev Returns the number of accounts that have `role`. Can be used
* together with {getRoleMember} to enumerate all bearers of a role.
*/
function getRoleMemberCount(bytes32 role) public view returns (uint256) {
return _roles[role].members.length();
}
/**
* @dev Returns one of the accounts that have `role`. `index` must be a
* value between 0 and {getRoleMemberCount}, non-inclusive.
*
* Role bearers are not sorted in any particular way, and their ordering may
* change at any point.
*
* WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure
* you perform all queries on the same block. See the following
* https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]
* for more information.
*/
function getRoleMember(bytes32 role, uint256 index) public view returns (address) {
return _roles[role].members.at(index);
}
/**
* @dev Returns the admin role that controls `role`. See {grantRole} and
* {revokeRole}.
*
* To change a role's admin, use {_setRoleAdmin}.
*/
function getRoleAdmin(bytes32 role) public view returns (bytes32) {
return _roles[role].adminRole;
}
/**
* @dev Grants `role` to `account`.
*
* If `account` had not been already granted `role`, emits a {RoleGranted}
* event.
*
* Requirements:
*
* - the caller must have ``role``'s admin role.
*/
function grantRole(bytes32 role, address account) public virtual {
require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to grant");
_grantRole(role, account);
}
/**
* @dev Revokes `role` from `account`.
*
* If `account` had been granted `role`, emits a {RoleRevoked} event.
*
* Requirements:
*
* - the caller must have ``role``'s admin role.
*/
function revokeRole(bytes32 role, address account) public virtual {
require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to revoke");
_revokeRole(role, account);
}
/**
* @dev Revokes `role` from the calling account.
*
* Roles are often managed via {grantRole} and {revokeRole}: this function's
* purpose is to provide a mechanism for accounts to lose their privileges
* if they are compromised (such as when a trusted device is misplaced).
*
* If the calling account had been granted `role`, emits a {RoleRevoked}
* event.
*
* Requirements:
*
* - the caller must be `account`.
*/
function renounceRole(bytes32 role, address account) public virtual {
require(account == _msgSender(), "AccessControl: can only renounce roles for self");
_revokeRole(role, account);
}
/**
* @dev Grants `role` to `account`.
*
* If `account` had not been already granted `role`, emits a {RoleGranted}
* event. Note that unlike {grantRole}, this function doesn't perform any
* checks on the calling account.
*
* [WARNING]
* ====
* This function should only be called from the constructor when setting
* up the initial roles for the system.
*
* Using this function in any other way is effectively circumventing the admin
* system imposed by {AccessControl}.
* ====
*/
function _setupRole(bytes32 role, address account) internal virtual {
_grantRole(role, account);
}
/**
* @dev Sets `adminRole` as ``role``'s admin role.
*
* Emits a {RoleAdminChanged} event.
*/
function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
emit RoleAdminChanged(role, _roles[role].adminRole, adminRole);
_roles[role].adminRole = adminRole;
}
function _grantRole(bytes32 role, address account) private {
if (_roles[role].members.add(account)) {
emit RoleGranted(role, account, _msgSender());
}
}
function _revokeRole(bytes32 role, address account) private {
if (_roles[role].members.remove(account)) {
emit RoleRevoked(role, account, _msgSender());
}
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (security/Pausable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which allows children to implement an emergency stop
* mechanism that can be triggered by an authorized account.
*
* This module is used through inheritance. It will make available the
* modifiers `whenNotPaused` and `whenPaused`, which can be applied to
* the functions of your contract. Note that they will not be pausable by
* simply including this module, only once the modifiers are put in place.
*/
abstract contract Pausable is Context {
/**
* @dev Emitted when the pause is triggered by `account`.
*/
event Paused(address account);
/**
* @dev Emitted when the pause is lifted by `account`.
*/
event Unpaused(address account);
bool private _paused;
/**
* @dev Initializes the contract in unpaused state.
*/
constructor() {
_paused = false;
}
/**
* @dev Returns true if the contract is paused, and false otherwise.
*/
function paused() public view virtual returns (bool) {
return _paused;
}
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*
* Requirements:
*
* - The contract must not be paused.
*/
modifier whenNotPaused() {
require(!paused(), "Pausable: paused");
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*
* Requirements:
*
* - The contract must be paused.
*/
modifier whenPaused() {
require(paused(), "Pausable: not paused");
_;
}
/**
* @dev Triggers stopped state.
*
* Requirements:
*
* - The contract must not be paused.
*/
function _pause() internal virtual whenNotPaused {
_paused = true;
emit Paused(_msgSender());
}
/**
* @dev Returns to normal state.
*
* Requirements:
*
* - The contract must be paused.
*/
function _unpause() internal virtual whenPaused {
_paused = false;
emit Unpaused(_msgSender());
}
}
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
ref: refs/heads/main
DIRCe���2�}e���2�}�����o#q{K���Sc��X�W�n.prettierrc.json�/$�Y�a�l�y)��vdž
x�+)JMU01a040031Q�+(J-)�L-*J��*��cش4_���{v?���#����Ĩ
x����
�0 �=�)F�2ă��-D��xh�L��)m&�ػ�6�1�9%��|��"�m�E�M1|��2����?�U���
�<��+��%� I�m>\�R�Y�to�t���E�oF������^p�`�pR�J$������hx��8��~������N񯌇���=ꐶ������5��/�̢�
x���K
�0]�o/H^������I�RC�����x���������w"P�H:h�2J�c �11�U�c�v:�(܃o�Cqۖ��ാB����jN�΀�d�B��D)��2���kM�\�oc�N%=��ܳc�]���!BN
ebc35560109989f02a9cdedee0ccf9b9454dd63d
{
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 80,
"tabWidth": 4,
"useTabs": false,
"singleQuote": false,
"bracketSpacing": false
}
},
{
"files": "*.yml",
"options": {}
},
{
"files": "*.yaml",
"options": {}
},
{
"files": "*.toml",
"options": {}
},
{
"files": "*.json",
"options": {}
},
{
"files": "*.js",
"options": {}
},
{
"files": "*.ts",
"options": {}
}
]
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.25;
import "@openzeppelin/contracts/access/AccessControl.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
contract Bank is AccessControl, Pausable {
struct Account {
bool active;
bool verified;
bool banned;
string discordId;
mapping(address => uint) balances;
mapping(address => uint) tipped;
mapping(address => uint) received;
mapping(address => uint) burned;
}
address nativeTokenAddress = 0x0000000000000000000000000000000000000000;
mapping(address => Account) public accounts;
mapping(string => address) accountsByDiscordId;
mapping(address => IERC20) public tokens;
mapping(address => uint) public totalTimesTipped;
mapping(address => uint) public totalTipped;
mapping(address => uint) public totalTimesBurned;
mapping(address => uint) public totalBurned;
/**
* Roles
*/
bytes32 public constant BOT_ROLE = keccak256("BOT_ROLE");
bytes32 public constant BOT_CONTRACT_ROLE = keccak256("BOT_CONTRACT_ROLE");
bytes32 public constant VERIFIER_ROLE = keccak256("VERIFIER_ROLE");
bytes32 public constant BANNER_ROLE = keccak256("BANNER_ROLE");
/**
* Events
*/
event TokenAdded(address _address);
event AccountCreated(address _address);
event AccountVerified(address _address);
event AccountBanned(address _address);
event AccountUnbanned(address _address);
event AccountBalanceIncreased(address _address, address _token, uint _amount, uint _oldBalance, uint _newBalance);
event AccountBalanceDecreased(address _address, address _token, uint _amount, uint _oldBalance, uint _newBalance);
event TokensBurned(address _address, address _token, uint _amount);
event TokensDeposited(address _address, address _token, uint _amount, uint _oldBalance, uint _newBalance);
event TokensWithdrawn(address _address, address _token, uint _amount, uint _oldBalance, uint _newBalance, bool _max);
/**
* Constructor
*/
constructor() {
_grantRole(DEFAULT_ADMIN_ROLE, msg.sender);
}
/**
* Only allow completed registrations
*/
modifier onlyCompletedRegistrations(address _address) {
require(accounts[_address].active == true, "There is no account on this address");
require(accounts[_address].verified == true, "This account has not yet been verified");
_;
}
/*
* Add token
*/
function addToken(IERC20 _token) external onlyRole(DEFAULT_ADMIN_ROLE) {
tokens[address(_token)] = _token;
emit TokenAdded(address(_token));
}
/*
* Create a new account
*/
function createAccount() external whenNotPaused() {
require(accounts[msg.sender].active == false, "There is already an account on this address");
Account storage account = accounts[msg.sender];
account.active = true;
account.verified = false;
account.banned = false;
emit AccountCreated(msg.sender);
}
/*
* Verify an account
*/
function verifyAccount(address _address, string memory _discordId) external onlyRole(VERIFIER_ROLE) whenNotPaused() {
require(accounts[_address].active == true, "There is no account on this address");
require(accounts[_address].verified == false, "This account has already been verified");
accounts[_address].verified = true;
accounts[_address].discordId = _discordId;
accountsByDiscordId[_discordId] = _address;
emit AccountVerified(_address);
}
/*
* Set Discord ID
*/
function setDiscordId(address _address, string memory _discordId) external onlyRole(VERIFIER_ROLE) whenNotPaused() {
accountsByDiscordId[accounts[_address].discordId] = address(0);
accounts[_address].verified = true;
accounts[_address].discordId = _discordId;
accountsByDiscordId[_discordId] = _address;
emit AccountVerified(_address);
}
/*
* Ban an account
*/
function banAccount(address _address) external onlyRole(BANNER_ROLE) {
require(accounts[_address].active == true, "There is no account on this address");
require(accounts[_address].banned == false, "This account has already been banned");
accounts[_address].banned = true;
emit AccountBanned(_address);
}
/*
* Unban an account
*/
function unbanAccount(address _address) external onlyRole(BANNER_ROLE) {
require(accounts[_address].banned == true, "This account has not been banned");
accounts[_address].banned = false;
emit AccountUnbanned(_address);
}
/*
* Returns this contract's balance
*/
function getContractBalance(address _token) public view returns (uint) {
return tokens[_token].balanceOf(address(this));
}
/*
* Returns this contract's allowance
*/
function getAllowance(address _token) public view returns (uint) {
return tokens[_token].allowance(msg.sender, address(this));
}
/*
* Returns the user's address
*/
function getAccountByDiscordId(string memory discordId) public view onlyRole(BOT_ROLE) returns (address) {
return accountsByDiscordId[discordId];
}
/*
* Returns the account's active state
*/
function getAccountActive(address _address) public view returns (bool) {
return accounts[_address].active;
}
/*
* Returns the account's verification state
*/
function getAccountVerified(address _address) public view returns (bool) {
return accounts[_address].verified;
}
/*
* Returns the account's banned state
*/
function getAccountBanned(address _address) public view returns (bool) {
return accounts[_address].banned;
}
/*
* Returns the whether an account can be tipped or not
*/
function getAccountCanBeTipped(address _address) public view returns (bool) {
return accounts[_address].active && accounts[_address].verified && !accounts[_address].banned;
}
/*
* Returns the whether an account can tip or not
*/
function getAccountCanTip(address _address) public view returns (bool) {
return accounts[_address].active && accounts[_address].verified && !accounts[_address].banned;
}
/*
* Returns the account's balance
*/
function getAccountBalance(address _address, address _token) public view returns (uint) {
return accounts[_address].balances[_token];
}
/*
* Returns the account's amount tipped
*/
function getAccountTipped(address _address, address _token) public view returns (uint) {
return accounts[_address].tipped[_token];
}
/*
* Returns the account's amount received
*/
function getAccountReceived(address _address, address _token) public view returns (uint) {
return accounts[_address].received[_token];
}
/*
* Returns the account's amount burned
*/
function getAccountBurned(address _address, address _token) public view returns (uint) {
return accounts[_address].burned[_token];
}
/*
* Returns the sender's balance
*/
function getBalance(address _token) public view returns (uint) {
return accounts[msg.sender].balances[_token];
}
/*
* Increases the account's balance
*/
function increaseAccountBalance(address _address, uint _amount, address _token) external onlyRole(BOT_CONTRACT_ROLE) whenNotPaused() {
require(accounts[_address].banned == false, "This account has been banned");
uint oldBalance = accounts[_address].balances[_token];
accounts[_address].balances[_token] = accounts[_address].balances[_token] + _amount;
accounts[_address].received[_token] = accounts[_address].received[_token] + _amount;
totalTimesTipped[_token] = totalTimesTipped[_token] + 1;
totalTipped[_token] = totalTipped[_token] + _amount;
emit AccountBalanceIncreased(_address, _token, _amount, oldBalance, accounts[_address].balances[_token]);
}
/*
* Decreases the account's balance
*/
function decreaseAccountBalance(address _address, uint _amount, address _token) external onlyRole(BOT_CONTRACT_ROLE) whenNotPaused() {
require(accounts[_address].banned == false, "This account has been banned");
require(accounts[_address].balances[_token] >= _amount, "The amount exceeds balance");
uint oldBalance = accounts[_address].balances[_token];
accounts[_address].balances[_token] = accounts[_address].balances[_token] - _amount;
accounts[_address].tipped[_token] = accounts[_address].tipped[_token] + _amount;
emit AccountBalanceDecreased(_address, _token, _amount, oldBalance, accounts[_address].balances[_token]);
}
/*
* Burn
*/
function burn(address _address, uint _amount, address _token) external onlyRole(BOT_CONTRACT_ROLE) whenNotPaused() {
require(accounts[_address].banned == false, "This account has been banned");
require(accounts[_address].balances[_token] >= _amount, "The amount exceeds balance");
accounts[_address].balances[_token] = accounts[_address].balances[_token] - _amount;
accounts[_address].burned[_token] = accounts[_address].burned[_token] + _amount;
totalTimesBurned[_token] = totalTimesBurned[_token] + 1;
totalBurned[_token] = totalBurned[_token] + _amount;
if (_token != nativeTokenAddress) {
tokens[_token].transfer(0x000000000000000000000000000000000000dEaD, _amount);
} else {
payable(0x000000000000000000000000000000000000dEaD).transfer(_amount);
}
emit TokensBurned(_address, _token, _amount);
}
/*
* Deposit
*/
function deposit(address _token, uint _amount) public onlyCompletedRegistrations(msg.sender) whenNotPaused() {
require(accounts[msg.sender].banned == false, "This account has been banned");
require(_amount <= tokens[_token].balanceOf(msg.sender), "The amount exceeds balance");
require(_amount <= getAllowance(_token), "The amount exceeds allowance");
tokens[_token].transferFrom(msg.sender, address(this), _amount);
uint oldBalance = accounts[msg.sender].balances[_token];
accounts[msg.sender].balances[_token] = oldBalance + _amount;
emit TokensDeposited(msg.sender, _token, _amount, oldBalance, accounts[msg.sender].balances[_token]);
}
/*
* Deposit native
*/
function depositNative() public payable onlyCompletedRegistrations(msg.sender) whenNotPaused() {
require(accounts[msg.sender].banned == false, "This account has been banned");
uint oldBalance = accounts[msg.sender].balances[nativeTokenAddress];
accounts[msg.sender].balances[nativeTokenAddress] = oldBalance + msg.value;
emit TokensDeposited(msg.sender, nativeTokenAddress, msg.value, oldBalance, accounts[msg.sender].balances[nativeTokenAddress]);
}
/*
* Withdraw
*/
function withdraw(address _token, uint _amount, bool _max) public onlyCompletedRegistrations(msg.sender) {
uint oldBalance = accounts[msg.sender].balances[_token];
uint amount = _amount;
bool native = _token == nativeTokenAddress;
if (_max) {
require(oldBalance > 0, "Nothing to withdraw");
amount = accounts[msg.sender].balances[_token];
accounts[msg.sender].balances[_token] = 0;
if (!native) {
tokens[_token].transfer(msg.sender, amount);
} else {
payable(msg.sender).transfer(amount);
}
} else {
require(oldBalance > 0, "Nothing to withdraw");
require(_amount <= oldBalance, "The amount exceeds balance");
accounts[msg.sender].balances[_token] = oldBalance - _amount;
if (!native) {
tokens[_token].transfer(msg.sender, _amount);
} else {
payable(msg.sender).transfer(_amount);
}
}
emit TokensWithdrawn(msg.sender, _token, amount, oldBalance, accounts[msg.sender].balances[_token], _max);
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.25;
import "@openzeppelin/contracts/access/AccessControl.sol";
interface TipBank {
function accounts() external;
function createAccount() external;
function verifyAccount(address _address, string memory _discordId) external;
function getAllowance() external;
function getAccountActive(address _address) external view returns (bool);
function getAccountVerified(address _address) external view returns (bool);
function getAccountBalance(address _address, address _token) external returns (uint);
function increaseAccountBalance(address _address, uint _amount, address _token) external;
function decreaseAccountBalance(address _address, uint _amount, address _token) external;
function burn(address _address, uint _amount, address _token) external;
function deposit(address _token, uint _amount) external;
function withdraw(address _token, uint _amount, bool _max) external;
}
contract Tipper is AccessControl {
TipBank public bank;
/**
* Events
*/
event AppAdded(address _address);
event AppRemoved(address _address);
event Tipped(address _from, address _to, uint _amount, address _token);
event TokensBurned(address _address, uint _amount, address _token);
/**
* Roles
*/
bytes32 public constant BOT_ROLE = keccak256("BOT_ROLE");
/**
* Constructor
*/
constructor(TipBank _bank) {
bank = _bank;
_grantRole(DEFAULT_ADMIN_ROLE, msg.sender);
}
/*
* Tip
*/
function tip(address _from, address _to, uint _amount, address _token) public onlyRole(BOT_ROLE) {
require(bank.getAccountActive(_from) == true, "From address has no account");
require(bank.getAccountVerified(_from) == true, "From account was not verified");
require(bank.getAccountActive(_to) == true, "To address has no account");
require(bank.getAccountVerified(_to) == true, "To account was not verified");
require(bank.getAccountBalance(_from, _token) > 0, "Nothing to tip");
require(bank.getAccountBalance(_from, _token) >= _amount, "The amount exceeds balance");
bank.decreaseAccountBalance(_from, _amount, _token);
bank.increaseAccountBalance(_to, _amount, _token);
emit Tipped(_from, _to, _amount, _token);
}
/*
* Split tip
*/
function tipSplit(address _from, address[] memory _to, uint _amount, address _token) public onlyRole(BOT_ROLE) {
require(bank.getAccountActive(_from) == true, "From address has no account");
require(bank.getAccountVerified(_from) == true, "From account was not verified");
require(bank.getAccountBalance(_from, _token) > 0, "Nothing to tip");
require(bank.getAccountBalance(_from, _token) >= _amount, "The amount exceeds balance");
uint count = 0;
for (uint i = 0; i < _to.length; i++) {
if (bank.getAccountActive(_to[i]) == true && bank.getAccountVerified(_to[i]) == true) {
count = count + 1;
}
}
require(count > 0, "None of the recipients have valid accounts");
uint amount = _amount / count;
for (uint i = 0; i < _to.length; i++) {
if (bank.getAccountActive(_to[i]) == true && bank.getAccountVerified(_to[i]) == true) {
bank.decreaseAccountBalance(_from, amount, _token);
bank.increaseAccountBalance(_to[i], amount, _token);
emit Tipped(_from, _to[i], amount, _token);
}
}
}
/*
* Multi tip
*/
function tipMulti(address _from, address[] memory _to, uint _amount, address _token) public onlyRole(BOT_ROLE) {
uint totalAmount = (_amount * _to.length);
require(bank.getAccountActive(_from) == true, "From address has no account");
require(bank.getAccountVerified(_from) == true, "From account was not verified");
require(bank.getAccountBalance(_from, _token) > 0, "Nothing to tip");
require(bank.getAccountBalance(_from, _token) >= totalAmount, "The amount exceeds balance");
for (uint i = 0; i < _to.length; i++) {
if (bank.getAccountActive(_to[i]) == true && bank.getAccountVerified(_to[i]) == true) {
bank.decreaseAccountBalance(_from, _amount, _token);
bank.increaseAccountBalance(_to[i], _amount, _token);
emit Tipped(_from, _to[i], _amount, _token);
}
}
}
/*
* Burn
*/
function burn(address _from, uint _amount, address _token) public onlyRole(BOT_ROLE) {
require(bank.getAccountActive(_from) == true, "From address has no account");
require(bank.getAccountVerified(_from) == true, "From account was not verified");
require(bank.getAccountBalance(_from, _token) > 0, "Nothing to burn");
require(bank.getAccountBalance(_from, _token) >= _amount, "The amount exceeds balance");
bank.burn(_from, _amount, _token);
emit TokensBurned(_from, _amount, _token);
}
}
This file has been truncated, but you can view the full file.
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_405": {
"entryPoint": null,
"id": 405,
"parameterSlots": 0,
"returnSlots": 0
},
"@_808": {
"entryPoint": null,
"id": 808,
"parameterSlots": 0,
"returnSlots": 0
},
"@_grantRole_256": {
"entryPoint": 129,
"id": 256,
"parameterSlots": 2,
"returnSlots": 1
},
"@_msgSender_576": {
"entryPoint": 473,
"id": 576,
"parameterSlots": 0,
"returnSlots": 1
},
"@hasRole_80": {
"entryPoint": 374,
"id": 80,
"parameterSlots": 2,
"returnSlots": 1
}
},
"generatedSources": [],
"linkReferences": {},
"object": "60806040525f6001806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561004f575f80fd5b505f60015f6101000a81548160ff02191690831515021790555061007b5f801b3361008160201b60201c565b506101e0565b5f610092838361017660201b60201c565b61016c5760015f808581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506101096101d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610170565b5f90505b92915050565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f33905090565b61574a806101ed5f395ff3fe60806040526004361061025b575f3560e01c8063a217fddf11610143578063db6b5246116100b5578063eb5a662e11610079578063eb5a662e14610958578063ee2f8c8c14610994578063ef939c47146109d0578063f690d97314610a0c578063f8657ae514610a36578063f8b2cb4f14610a725761025b565b8063db6b524614610884578063e48603391461088e578063e7705db6146108ca578063e9173c51146108f4578063ead5d359146109305761025b565b8063c3ee9b2d11610107578063c3ee9b2d14610780578063c55390be146107a8578063d0b881f7146107d0578063d48bfca71461080c578063d547741f14610834578063d59baded1461085c5761025b565b8063a217fddf1461068c578063a3564b56146106b6578063b1503774146106f2578063b4e34c571461071c578063b8ce670d146107585761025b565b806336568abe116101dc5780635c53feaf116101a05780635c53feaf146105595780635c975abb146105955780635e5c06e2146105bf5780638bb005fa146105fe57806391d148541461063a5780639dca362f146106765761025b565b806336568abe1461045557806343ab265f1461047d57806347e7ef24146104b957806353cc973b146104e1578063587675e81461051d5761025b565b8063188045da11610223578063188045da146103635780631b88b9141461038d57806323d9ea51146103c9578063248a9ca3146103f15780632f2ff15d1461042d5761025b565b806301ffc9a71461025f57806303eba1931461029b5780630abdf614146102c357806315af4b0b146102ff5780631745e80714610327575b5f80fd5b34801561026a575f80fd5b50610285600480360381019061028091906144fc565b610aae565b6040516102929190614541565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc91906146f0565b610b27565b005b3480156102ce575f80fd5b506102e960048036038101906102e4919061474a565b610d32565b6040516102f691906147a0565b60405180910390f35b34801561030a575f80fd5b50610325600480360381019061032091906147b9565b610da3565b005b348015610332575f80fd5b5061034d600480360381019061034891906147b9565b610f84565b60405161035a9190614541565b60405180910390f35b34801561036e575f80fd5b50610377611083565b60405161038491906147fc565b60405180910390f35b348015610398575f80fd5b506103b360048036038101906103ae91906147b9565b6110a7565b6040516103c0919061482d565b60405180910390f35b3480156103d4575f80fd5b506103ef60048036038101906103ea9190614870565b6110bc565b005b3480156103fc575f80fd5b50610417600480360381019061041291906148ea565b6115e1565b60405161042491906147fc565b60405180910390f35b348015610438575f80fd5b50610453600480360381019061044e9190614915565b6115fd565b005b348015610460575f80fd5b5061047b60048036038101906104769190614915565b61161f565b005b348015610488575f80fd5b506104a3600480360381019061049e91906147b9565b61169a565b6040516104b0919061482d565b60405180910390f35b3480156104c4575f80fd5b506104df60048036038101906104da9190614953565b611776565b005b3480156104ec575f80fd5b50610507600480360381019061050291906147b9565b611d3b565b604051610514919061482d565b60405180910390f35b348015610528575f80fd5b50610543600480360381019061053e9190614991565b611d50565b604051610550919061482d565b60405180910390f35b348015610564575f80fd5b5061057f600480360381019061057a91906147b9565b611dd5565b60405161058c9190614541565b60405180910390f35b3480156105a0575f80fd5b506105a9611ed4565b6040516105b69190614541565b60405180910390f35b3480156105ca575f80fd5b506105e560048036038101906105e091906147b9565b611ee9565b6040516105f59493929190614a2f565b60405180910390f35b348015610609575f80fd5b50610624600480360381019061061f91906147b9565b611fbf565b604051610631919061482d565b60405180910390f35b348015610645575f80fd5b50610660600480360381019061065b9190614915565b611fd4565b60405161066d9190614541565b60405180910390f35b348015610681575f80fd5b5061068a612037565b005b348015610697575f80fd5b506106a061219b565b6040516106ad91906147fc565b60405180910390f35b3480156106c1575f80fd5b506106dc60048036038101906106d79190614991565b6121a1565b6040516106e9919061482d565b60405180910390f35b3480156106fd575f80fd5b50610706612226565b60405161071391906147fc565b60405180910390f35b348015610727575f80fd5b50610742600480360381019061073d9190614991565b61224a565b60405161074f919061482d565b60405180910390f35b348015610763575f80fd5b5061077e60048036038101906107799190614870565b6122cf565b005b34801561078b575f80fd5b506107a660048036038101906107a191906146f0565b61292c565b005b3480156107b3575f80fd5b506107ce60048036038101906107c99190614870565b612bc0565b005b3480156107db575f80fd5b506107f660048036038101906107f19190614991565b61308e565b604051610803919061482d565b60405180910390f35b348015610817575f80fd5b50610832600480360381019061082d9190614ab4565b613113565b005b34801561083f575f80fd5b5061085a60048036038101906108559190614915565b6131d5565b005b348015610867575f80fd5b50610882600480360381019061087d91906147b9565b6131f7565b005b61088c613346565b005b348015610899575f80fd5b506108b460048036038101906108af91906147b9565b61374e565b6040516108c19190614b3a565b60405180910390f35b3480156108d5575f80fd5b506108de61377e565b6040516108eb91906147fc565b60405180910390f35b3480156108ff575f80fd5b5061091a600480360381019061091591906147b9565b6137a2565b604051610927919061482d565b60405180910390f35b34801561093b575f80fd5b5061095660048036038101906109519190614b7d565b6137b7565b005b348015610963575f80fd5b5061097e600480360381019061097991906147b9565b613f21565b60405161098b919061482d565b60405180910390f35b34801561099f575f80fd5b506109ba60048036038101906109b591906147b9565b613fff565b6040516109c79190614541565b60405180910390f35b3480156109db575f80fd5b506109f660048036038101906109f191906147b9565b614054565b604051610a039190614541565b60405180910390f35b348015610a17575f80fd5b50610a206140a9565b604051610a2d91906147fc565b60405180910390f35b348015610a41575f80fd5b50610a5c6004803603810190610a5791906147b9565b6140cd565b604051610a699190614541565b60405180910390f35b348015610a7d575f80fd5b50610a986004803603810190610a9391906147b9565b614121565b604051610aa5919061482d565b60405180910390f35b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b205750610b1f826141a5565b5b9050919050565b7f0ce23c3e399818cfee81a7ab0880f714e53d7672b08df0fa62f2843416e1ea09610b518161420e565b610b59614222565b5f600360025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101604051610ba99190614cc6565b90815260200160405180910390205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160016101000a81548160ff0219169083151502179055508160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001019081610c999190614e5e565b5082600383604051610cab9190614f5d565b90815260200160405180910390205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fc88b0ced768fe051c9845644d6a9816bf01d50cddf9f724b089e09b022a6733983604051610d2591906147a0565b60405180910390a1505050565b5f7f6d5c9827c1f410bbb61d3b2a0a34b6b30492d9a1fd38588edca7ec4562ab9c9b610d5d8161420e565b600383604051610d6d9190614f5d565b90815260200160405180910390205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b7f8661ae67c9d50f67dbb173ad6369dd93ae94918083bd986295c3ac4e3822f0b8610dcd8161420e565b6001151560025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff16151514610e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5690614fe3565b60405180910390fd5b5f151560025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160029054906101000a900460ff16151514610ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee890615071565b60405180910390fd5b600160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160026101000a81548160ff0219169083151502179055507ff5ccd95e2294edead25b59a71c189b3543cffbde2ec0d763800bdcc8807c7c3e82604051610f7891906147a0565b60405180910390a15050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff168015611026575060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160019054906101000a900460ff165b801561107c575060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160029054906101000a900460ff16155b9050919050565b7f20f62ea4a42eaf4d5c5eae414aa00f8b52ffd558f9888bb9f85344a814a91afa81565b6007602052805f5260405f205f915090505481565b7f20f62ea4a42eaf4d5c5eae414aa00f8b52ffd558f9888bb9f85344a814a91afa6110e68161420e565b6110ee614222565b5f151560025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160029054906101000a900460ff16151514611180576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611177906150d9565b60405180910390fd5b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508360025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112869190615124565b60025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508360025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461138c9190615124565b60025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114559190615124565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508360065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114df9190615124565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507f7abd7fcf5033489abd6bb8633a743b7282cac3ca00bb95e5ce21fe2589953e638584868460025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516115d2959493929190615157565b60405180910390a15050505050565b5f805f8381526020019081526020015f20600101549050919050565b611606826115e1565b61160f8161420e565b611619838361426c565b50505050565b611627614355565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461168b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611695828261435c565b505050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161173091906147a0565b602060405180830381865afa15801561174b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176f91906151bc565b9050919050565b336001151560025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff16151514611809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180090614fe3565b60405180910390fd5b6001151560025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160019054906101000a900460ff1615151461189c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189390615257565b60405180910390fd5b6118a4614222565b5f151560025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160029054906101000a900460ff16151514611936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192d906150d9565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016119cb91906147a0565b602060405180830381865afa1580156119e6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a0a91906151bc565b821115611a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a43906152bf565b60405180910390fd5b611a5583613f21565b821115611a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8e90615327565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611b3093929190615345565b6020604051808303815f875af1158015611b4c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b70919061538e565b505f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281611bfc9190615124565b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507f219eaaf96d24116a0baa2a9389e11184f4a16fa9e6f323aa3e0fb0a8f3d05e0f3385858460025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054604051611d2d959493929190615157565b60405180910390a150505050565b6008602052805f5260405f205f915090505481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff168015611e77575060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160019054906101000a900460ff165b8015611ecd575060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160029054906101000a900460ff16155b9050919050565b5f60015f9054906101000a900460ff16905090565b6002602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a900460ff1690806001018054611f3e90614bfa565b80601f0160208091040260200160405190810160405280929190818152602001828054611f6a90614bfa565b8015611fb55780601f10611f8c57610100808354040283529160200191611fb5565b820191905f5260205f20905b815481529060010190602001808311611f9857829003601f168201915b5050505050905084565b6005602052805f5260405f205f915090505481565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b61203f614222565b5f151560025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff161515146120d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c790615429565b60405180910390fd5b5f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090506001815f015f6101000a81548160ff0219169083151502179055505f815f0160016101000a81548160ff0219169083151502179055505f815f0160026101000a81548160ff0219169083151502179055507f805996f252884581e2f74cf3d2b03564d5ec26ccc90850ae12653dc1b72d1fa23360405161219091906147a0565b60405180910390a150565b5f801b81565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b7f6d5c9827c1f410bbb61d3b2a0a34b6b30492d9a1fd38588edca7ec4562ab9c9b81565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206005015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b7f20f62ea4a42eaf4d5c5eae414aa00f8b52ffd558f9888bb9f85344a814a91afa6122f98161420e565b612301614222565b5f151560025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160029054906101000a900460ff16151514612393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238a906150d9565b60405180910390fd5b8260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015612451576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612448906152bf565b60405180910390fd5b8260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124d89190615447565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206005015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125de9190615124565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206005015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126a79190615124565b60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508260085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127319190615124565b60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146128a45760045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead856040518363ffffffff1660e01b815260040161285e92919061547a565b6020604051808303815f875af115801561287a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061289e919061538e565b506128eb565b61dead73ffffffffffffffffffffffffffffffffffffffff166108fc8490811502906040515f60405180830381858888f193505050501580156128e9573d5f803e3d5ffd5b505b7f857ac1c9e97cc66ecae5f524c9c611463ae748b85af3ca454a5ec4d7d341924d84838560405161291e93929190615345565b60405180910390a150505050565b7f0ce23c3e399818cfee81a7ab0880f714e53d7672b08df0fa62f2843416e1ea096129568161420e565b61295e614222565b6001151560025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff161515146129f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e790614fe3565b60405180910390fd5b5f151560025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160019054906101000a900460ff16151514612a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7990615511565b60405180910390fd5b600160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160016101000a81548160ff0219169083151502179055508160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001019081612b279190614e5e565b5082600383604051612b399190614f5d565b90815260200160405180910390205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fc88b0ced768fe051c9845644d6a9816bf01d50cddf9f724b089e09b022a6733983604051612bb391906147a0565b60405180910390a1505050565b7f20f62ea4a42eaf4d5c5eae414aa00f8b52ffd558f9888bb9f85344a814a91afa612bea8161420e565b612bf2614222565b5f151560025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160029054906101000a900460ff16151514612c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7b906150d9565b60405180910390fd5b8260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015612d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d39906152bf565b60405180910390fd5b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508360025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e489190615447565b60025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508360025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f4e9190615124565b60025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507f6081d4716ebdd8eb7c0bfe28df277f24df835e2afe17978137c58a49ffabf8808584868460025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460405161307f959493929190615157565b60405180910390a15050505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f801b61311f8161420e565b8160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f784c8f4dbf0ffedd6e72c76501c545a70f8b203b30a26ce542bf92ba87c248a4826040516131c991906147a0565b60405180910390a15050565b6131de826115e1565b6131e78161420e565b6131f1838361435c565b50505050565b7f8661ae67c9d50f67dbb173ad6369dd93ae94918083bd986295c3ac4e3822f0b86132218161420e565b6001151560025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160029054906101000a900460ff161515146132b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ab90615579565b60405180910390fd5b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160026101000a81548160ff0219169083151502179055507fc98af8f4ec4ddc4c9cd83aa9d9adbf34053062dc51ad93a562c787c2cc5dbc478260405161333a91906147a0565b60405180910390a15050565b336001151560025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff161515146133d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d090614fe3565b60405180910390fd5b6001151560025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160019054906101000a900460ff1615151461346c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161346390615257565b60405180910390fd5b613474614222565b5f151560025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160029054906101000a900460ff16151514613506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134fd906150d9565b60405180910390fd5b5f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905034816135b19190615124565b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507f219eaaf96d24116a0baa2a9389e11184f4a16fa9e6f323aa3e0fb0a8f3d05e0f3360018054906101000a900473ffffffffffffffffffffffffffffffffffffffff16348460025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054604051613742959493929190615157565b60405180910390a15050565b6004602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f0ce23c3e399818cfee81a7ab0880f714e53d7672b08df0fa62f2843416e1ea0981565b6006602052805f5260405f205f915090505481565b336001151560025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff1615151461384a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161384190614fe3565b60405180910390fd5b6001151560025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160019054906101000a900460ff161515146138dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138d490615257565b60405180910390fd5b5f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8490505f60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161490508415613c24575f83116139fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139f1906155e1565b60405180910390fd5b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205491505f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080613bda5760045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401613b9492919061547a565b6020604051808303815f875af1158015613bb0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613bd4919061538e565b50613c1f565b3373ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015613c1d573d5f803e3d5ffd5b505b613e5c565b5f8311613c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c5d906155e1565b60405180910390fd5b82861115613ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ca0906152bf565b60405180910390fd5b8583613cb59190615447565b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080613e165760045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33886040518363ffffffff1660e01b8152600401613dd092919061547a565b6020604051808303815f875af1158015613dec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e10919061538e565b50613e5b565b3373ffffffffffffffffffffffffffffffffffffffff166108fc8790811502906040515f60405180830381858888f19350505050158015613e59573d5f803e3d5ffd5b505b5b7f8332a2a1ac31af1259dd762d664b2094ec57ea3df34c2f16c78fffa7c8e7b9a93388848660025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548a604051613f10969594939291906155ff565b60405180910390a150505050505050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401613fb992919061565e565b602060405180830381865afa158015613fd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ff891906151bc565b9050919050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160019054906101000a900460ff169050919050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160029054906101000a900460ff169050919050565b7f8661ae67c9d50f67dbb173ad6369dd93ae94918083bd986295c3ac4e3822f0b881565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900460ff169050919050565b5f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61421f8161421a614355565b614445565b50565b61422a611ed4565b1561426a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614261906156cf565b60405180910390fd5b565b5f6142778383611fd4565b61434b5760015f808581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506142e8614355565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061434f565b5f90505b92915050565b5f33905090565b5f6143678383611fd4565b1561443b575f805f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506143d8614355565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061443f565b5f90505b92915050565b61444f8282611fd4565b6144925780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016144899291906156ed565b60405180910390fd5b5050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6144db816144a7565b81146144e5575f80fd5b50565b5f813590506144f6816144d2565b92915050565b5f602082840312156145115761451061449f565b5b5f61451e848285016144e8565b91505092915050565b5f8115159050919050565b61453b81614527565b82525050565b5f6020820190506145545f830184614532565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6145838261455a565b9050919050565b61459381614579565b811461459d575f80fd5b50565b5f813590506145ae8161458a565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b614602826145bc565b810181811067ffffffffffffffff82111715614621576146206145cc565b5b80604052505050565b5f614633614496565b905061463f82826145f9565b919050565b5f67ffffffffffffffff82111561465e5761465d6145cc565b5b614667826145bc565b9050602081019050919050565b828183375f83830152505050565b5f61469461468f84614644565b61462a565b9050828152602081018484840111156146b0576146af6145b8565b5b6146bb848285614674565b509392505050565b5f82601f8301126146d7576146d66145b4565b5b81356146e7848260208601614682565b91505092915050565b5f80604083850312156147065761470561449f565b5b5f614713858286016145a0565b925050602083013567ffffffffffffffff811115614734576147336144a3565b5b614740858286016146c3565b9150509250929050565b5f6020828403121561475f5761475e61449f565b5b5f82013567ffffffffffffffff81111561477c5761477b6144a3565b5b614788848285016146c3565b91505092915050565b61479a81614579565b82525050565b5f6020820190506147b35f830184614791565b92915050565b5f602082840312156147ce576147cd61449f565b5b5f6147db848285016145a0565b91505092915050565b5f819050919050565b6147f6816147e4565b82525050565b5f60208201905061480f5f8301846147ed565b92915050565b5f819050919050565b61482781614815565b82525050565b5f6020820190506148405f83018461481e565b92915050565b61484f81614815565b8114614859575f80fd5b50565b5f8135905061486a81614846565b92915050565b5f805f606084860312156148875761488661449f565b5b5f614894868287016145a0565b93505060206148a58682870161485c565b92505060406148b6868287016145a0565b9150509250925092565b6148c9816147e4565b81146148d3575f80fd5b50565b5f813590506148e4816148c0565b92915050565b5f602082840312156148ff576148fe61449f565b5b5f61490c848285016148d6565b91505092915050565b5f806040838503121561492b5761492a61449f565b5b5f614938858286016148d6565b9250506020614949858286016145a0565b9150509250929050565b5f80604083850312156149695761496861449f565b5b5f614976858286016145a0565b92505060206149878582860161485c565b9150509250929050565b5f80604083850312156149a7576149a661449f565b5b5f6149b4858286016145a0565b92505060206149c5858286016145a0565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f614a01826149cf565b614a0b81856149d9565b9350614a1b8185602086016149e9565b614a24816145bc565b840191505092915050565b5f608082019050614a425f830187614532565b614a4f6020830186614532565b614a5c6040830185614532565b8181036060830152614a6e81846149f7565b905095945050505050565b5f614a8382614579565b9050919050565b614a9381614a79565b8114614a9d575f80fd5b50565b5f81359050614aae81614a8a565b92915050565b5f60208284031215614ac957614ac861449f565b5b5f614ad684828501614aa0565b91505092915050565b5f819050919050565b5f614b02614afd614af88461455a565b614adf565b61455a565b9050919050565b5f614b1382614ae8565b9050919050565b5f614b2482614b09565b9050919050565b614b3481614b1a565b82525050565b5f602082019050614b4d5f830184614b2b565b92915050565b614b5c81614527565b8114614b66575f80fd5b50565b5f81359050614b7781614b53565b92915050565b5f805f60608486031215614b9457614b9361449f565b5b5f614ba1868287016145a0565b9350506020614bb28682870161485c565b9250506040614bc386828701614b69565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680614c1157607f821691505b602082108103614c2457614c23614bcd565b5b50919050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154614c5281614bfa565b614c5c8186614c2a565b9450600182165f8114614c765760018114614c8b57614cbd565b60ff1983168652811515820286019350614cbd565b614c9485614c34565b5f5b83811015614cb557815481890152600182019150602081019050614c96565b838801955050505b50505092915050565b5f614cd18284614c46565b915081905092915050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302614d267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614ceb565b614d308683614ceb565b95508019841693508086168417925050509392505050565b5f614d62614d5d614d5884614815565b614adf565b614815565b9050919050565b5f819050919050565b614d7b83614d48565b614d8f614d8782614d69565b848454614cf7565b825550505050565b5f90565b614da3614d97565b614dae818484614d72565b505050565b5b81811015614dd157614dc65f82614d9b565b600181019050614db4565b5050565b601f821115614e1657614de781614c34565b614df084614cdc565b81016020851015614dff578190505b614e13614e0b85614cdc565b830182614db3565b50505b505050565b5f82821c905092915050565b5f614e365f1984600802614e1b565b1980831691505092915050565b5f614e4e8383614e27565b9150826002028217905092915050565b614e67826149cf565b67ffffffffffffffff811115614e8057614e7f6145cc565b5b614e8a8254614bfa565b614e95828285614dd5565b5f60209050601f831160018114614ec6575f8415614eb4578287015190505b614ebe8582614e43565b865550614f25565b601f198416614ed486614c34565b5f5b82811015614efb57848901518255600182019150602085019450602081019050614ed6565b86831015614f185784890151614f14601f891682614e27565b8355505b6001600288020188555050505b505050505050565b5f614f37826149cf565b614f418185614c2a565b9350614f518185602086016149e9565b80840191505092915050565b5f614f688284614f2d565b915081905092915050565b7f5468657265206973206e6f206163636f756e74206f6e207468697320616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614fcd6023836149d9565b9150614fd882614f73565b604082019050919050565b5f6020820190508181035f830152614ffa81614fc1565b9050919050565b7f54686973206163636f756e742068617320616c7265616479206265656e2062615f8201527f6e6e656400000000000000000000000000000000000000000000000000000000602082015250565b5f61505b6024836149d9565b915061506682615001565b604082019050919050565b5f6020820190508181035f8301526150888161504f565b9050919050565b7f54686973206163636f756e7420686173206265656e2062616e6e6564000000005f82015250565b5f6150c3601c836149d9565b91506150ce8261508f565b602082019050919050565b5f6020820190508181035f8301526150f0816150b7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61512e82614815565b915061513983614815565b9250828201905080821115615151576151506150f7565b5b92915050565b5f60a08201905061516a5f830188614791565b6151776020830187614791565b615184604083018661481e565b615191606083018561481e565b61519e608083018461481e565b9695505050505050565b5f815190506151b681614846565b92915050565b5f602082840312156151d1576151d061449f565b5b5f6151de848285016151a8565b91505092915050565b7f54686973206163636f756e7420686173206e6f7420796574206265656e2076655f8201527f7269666965640000000000000000000000000000000000000000000000000000602082015250565b5f6152416026836149d9565b915061524c826151e7565b604082019050919050565b5f6020820190508181035f83015261526e81615235565b9050919050565b7f54686520616d6f756e7420657863656564732062616c616e63650000000000005f82015250565b5f6152a9601a836149d9565b91506152b482615275565b602082019050919050565b5f6020820190508181035f8301526152d68161529d565b9050919050565b7f54686520616d6f756e74206578636565647320616c6c6f77616e6365000000005f82015250565b5f615311601c836149d9565b915061531c826152dd565b602082019050919050565b5f6020820190508181035f83015261533e81615305565b9050919050565b5f6060820190506153585f830186614791565b6153656020830185614791565b615372604083018461481e565b949350505050565b5f8151905061538881614b53565b92915050565b5f602082840312156153a3576153a261449f565b5b5f6153b08482850161537a565b91505092915050565b7f546865726520697320616c726561647920616e206163636f756e74206f6e20745f8201527f6869732061646472657373000000000000000000000000000000000000000000602082015250565b5f615413602b836149d9565b915061541e826153b9565b604082019050919050565b5f6020820190508181035f83015261544081615407565b9050919050565b5f61545182614815565b915061545c83614815565b9250828203905081811115615474576154736150f7565b5b92915050565b5f60408201905061548d5f830185614791565b61549a602083018461481e565b9392505050565b7f54686973206163636f756e742068617320616c7265616479206265656e2076655f8201527f7269666965640000000000000000000000000000000000000000000000000000602082015250565b5f6154fb6026836149d9565b9150615506826154a1565b604082019050919050565b5f6020820190508181035f830152615528816154ef565b9050919050565b7f54686973206163636f756e7420686173206e6f74206265656e2062616e6e65645f82015250565b5f6155636020836149d9565b915061556e8261552f565b602082019050919050565b5f6020820190508181035f83015261559081615557565b9050919050565b7f4e6f7468696e6720746f207769746864726177000000000000000000000000005f82015250565b5f6155cb6013836149d9565b91506155d682615597565b602082019050919050565b5f6020820190508181035f8301526155f8816155bf565b9050919050565b5f60c0820190506156125f830189614791565b61561f6020830188614791565b61562c604083018761481e565b615639606083018661481e565b615646608083018561481e565b61565360a0830184614532565b979650505050505050565b5f6040820190506156715f830185614791565b61567e6020830184614791565b9392505050565b7f5061757361626c653a20706175736564000000000000000000000000000000005f82015250565b5f6156b96010836149d9565b91506156c482615685565b602082019050919050565b5f6020820190508181035f8301526156e6816156ad565b9050919050565b5f6040820190506157005f830185614791565b61570d60208301846147ed565b939250505056fea2646970667358221220db9cc31d7a682310de5039316d405b064b9cabc4d85dc2f0125aef04e5acbb9b64736f6c63430008190033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH1 0x1 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x4F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH0 PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x7B PUSH0 DUP1 SHL CALLER PUSH2 0x81 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0x1E0 JUMP JUMPDEST PUSH0 PUSH2 0x92 DUP4 DUP4 PUSH2 0x176 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x16C JUMPI PUSH1 0x1 PUSH0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x109 PUSH2 0x1D9 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x170 JUMP JUMPDEST PUSH0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x574A DUP1 PUSH2 0x1ED PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x25B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA217FDDF GT PUSH2 0x143 JUMPI DUP1 PUSH4 0xDB6B5246 GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xEB5A662E GT PUSH2 0x79 JUMPI DUP1 PUSH4 0xEB5A662E EQ PUSH2 0x958 JUMPI DUP1 PUSH4 0xEE2F8C8C EQ PUSH2 0x994 JUMPI DUP1 PUSH4 0xEF939C47 EQ PUSH2 0x9D0 JUMPI DUP1 PUSH4 0xF690D973 EQ PUSH2 0xA0C JUMPI DUP1 PUSH4 0xF8657AE5 EQ PUSH2 0xA36 JUMPI DUP1 PUSH4 0xF8B2CB4F EQ PUSH2 0xA72 JUMPI PUSH2 0x25B JUMP JUMPDEST DUP1 PUSH4 0xDB6B5246 EQ PUSH2 0x884 JUMPI DUP1 PUSH4 0xE4860339 EQ PUSH2 0x88E JUMPI DUP1 PUSH4 0xE7705DB6 EQ PUSH2 0x8CA JUMPI DUP1 PUSH4 0xE9173C51 EQ PUSH2 0x8F4 JUMPI DUP1 PUSH4 0xEAD5D359 EQ PUSH2 0x930 JUMPI PUSH2 0x25B JUMP JUMPDEST DUP1 PUSH4 0xC3EE9B2D GT PUSH2 0x107 JUMPI DUP1 PUSH4 0xC3EE9B2D EQ PUSH2 0x780 JUMPI DUP1 PUSH4 0xC55390BE EQ PUSH2 0x7A8 JUMPI DUP1 PUSH4 0xD0B881F7 EQ PUSH2 0x7D0 JUMPI DUP1 PUSH4 0xD48BFCA7 EQ PUSH2 0x80C JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x834 JUMPI DUP1 PUSH4 0xD59BADED EQ PUSH2 0x85C JUMPI PUSH2 0x25B JUMP JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x68C JUMPI DUP1 PUSH4 0xA3564B56 EQ PUSH2 0x6B6 JUMPI DUP1 PUSH4 0xB1503774 EQ PUSH2 0x6F2 JUMPI DUP1 PUSH4 0xB4E34C57 EQ PUSH2 0x71C JUMPI DUP1 PUSH4 0xB8CE670D EQ PUSH2 0x758 JUMPI PUSH2 0x25B JUMP JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0x1DC JUMPI DUP1 PUSH4 0x5C53FEAF GT PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x5C53FEAF EQ PUSH2 0x559 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x595 JUMPI DUP1 PUSH4 0x5E5C06E2 EQ PUSH2 0x5BF JUMPI DUP1 PUSH4 0x8BB005FA EQ PUSH2 0x5FE JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0x9DCA362F EQ PUSH2 0x676 JUMPI PUSH2 0x25B JUMP JUMPDEST DUP1 PUSH4 0x36568ABE EQ PUSH2 0x455 JUMPI DUP1 PUSH4 0x43AB265F EQ PUSH2 0x47D JUMPI DUP1 PUSH4 0x47E7EF24 EQ PUSH2 0x4B9 JUMPI DUP1 PUSH4 0x53CC973B EQ PUSH2 0x4E1 JUMPI DUP1 PUSH4 0x587675E8 EQ PUSH2 0x51D JUMPI PUSH2 0x25B JUMP JUMPDEST DUP1 PUSH4 0x188045DA GT PUSH2 0x223 JUMPI DUP1 PUSH4 0x188045DA EQ PUSH2 0x363 JUMPI DUP1 PUSH4 0x1B88B914 EQ PUSH2 0x38D JUMPI DUP1 PUSH4 0x23D9EA51 EQ PUSH2 0x3C9 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x3F1 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x42D JUMPI PUSH2 0x25B JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x3EBA193 EQ PUSH2 0x29B JUMPI DUP1 PUSH4 0xABDF614 EQ PUSH2 0x2C3 JUMPI DUP1 PUSH4 0x15AF4B0B EQ PUSH2 0x2FF JUMPI DUP1 PUSH4 0x1745E807 EQ PUSH2 0x327 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x285 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x280 SWAP2 SWAP1 PUSH2 0x44FC JUMP JUMPDEST PUSH2 0xAAE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x292 SWAP2 SWAP1 PUSH2 0x4541 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BC SWAP2 SWAP1 PUSH2 0x46F0 JUMP JUMPDEST PUSH2 0xB27 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E4 SWAP2 SWAP1 PUSH2 0x474A JUMP JUMPDEST PUSH2 0xD32 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F6 SWAP2 SWAP1 PUSH2 0x47A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x325 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x320 SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0xDA3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x332 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x348 SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0xF84 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35A SWAP2 SWAP1 PUSH2 0x4541 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x377 PUSH2 0x1083 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x384 SWAP2 SWAP1 PUSH2 0x47FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x398 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3AE SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0x10A7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C0 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3EF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3EA SWAP2 SWAP1 PUSH2 0x4870 JUMP JUMPDEST PUSH2 0x10BC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x417 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x48EA JUMP JUMPDEST PUSH2 0x15E1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x424 SWAP2 SWAP1 PUSH2 0x47FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x453 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44E SWAP2 SWAP1 PUSH2 0x4915 JUMP JUMPDEST PUSH2 0x15FD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x460 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x47B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x476 SWAP2 SWAP1 PUSH2 0x4915 JUMP JUMPDEST PUSH2 0x161F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x488 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x49E SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0x169A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4B0 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DA SWAP2 SWAP1 PUSH2 0x4953 JUMP JUMPDEST PUSH2 0x1776 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x507 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x502 SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0x1D3B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x514 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x528 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x543 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x53E SWAP2 SWAP1 PUSH2 0x4991 JUMP JUMPDEST PUSH2 0x1D50 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x550 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x564 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x57F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x57A SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0x1DD5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x58C SWAP2 SWAP1 PUSH2 0x4541 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A9 PUSH2 0x1ED4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B6 SWAP2 SWAP1 PUSH2 0x4541 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5E0 SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0x1EE9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5F5 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4A2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x609 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x624 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x61F SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0x1FBF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x631 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x645 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x660 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x65B SWAP2 SWAP1 PUSH2 0x4915 JUMP JUMPDEST PUSH2 0x1FD4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66D SWAP2 SWAP1 PUSH2 0x4541 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x681 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x68A PUSH2 0x2037 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x697 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A0 PUSH2 0x219B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6AD SWAP2 SWAP1 PUSH2 0x47FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x6DC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6D7 SWAP2 SWAP1 PUSH2 0x4991 JUMP JUMPDEST PUSH2 0x21A1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6E9 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x706 PUSH2 0x2226 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x713 SWAP2 SWAP1 PUSH2 0x47FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x727 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x742 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x73D SWAP2 SWAP1 PUSH2 0x4991 JUMP JUMPDEST PUSH2 0x224A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x74F SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x763 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x77E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x779 SWAP2 SWAP1 PUSH2 0x4870 JUMP JUMPDEST PUSH2 0x22CF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x78B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x7A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7A1 SWAP2 SWAP1 PUSH2 0x46F0 JUMP JUMPDEST PUSH2 0x292C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x7CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7C9 SWAP2 SWAP1 PUSH2 0x4870 JUMP JUMPDEST PUSH2 0x2BC0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x7F6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7F1 SWAP2 SWAP1 PUSH2 0x4991 JUMP JUMPDEST PUSH2 0x308E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x803 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x817 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x832 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x82D SWAP2 SWAP1 PUSH2 0x4AB4 JUMP JUMPDEST PUSH2 0x3113 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x83F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x85A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x855 SWAP2 SWAP1 PUSH2 0x4915 JUMP JUMPDEST PUSH2 0x31D5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x867 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x882 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x87D SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0x31F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88C PUSH2 0x3346 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x899 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x8B4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8AF SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0x374E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8C1 SWAP2 SWAP1 PUSH2 0x4B3A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x8DE PUSH2 0x377E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x47FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8FF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x91A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x915 SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0x37A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x927 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x956 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x951 SWAP2 SWAP1 PUSH2 0x4B7D JUMP JUMPDEST PUSH2 0x37B7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x963 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x97E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x979 SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0x3F21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x98B SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9BA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9B5 SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0x3FFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9C7 SWAP2 SWAP1 PUSH2 0x4541 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9DB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9F6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9F1 SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0x4054 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA03 SWAP2 SWAP1 PUSH2 0x4541 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA17 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xA20 PUSH2 0x40A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2D SWAP2 SWAP1 PUSH2 0x47FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA41 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xA5C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA57 SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0x40CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA69 SWAP2 SWAP1 PUSH2 0x4541 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA7D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xA98 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA93 SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH2 0x4121 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAA5 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB20 JUMPI POP PUSH2 0xB1F DUP3 PUSH2 0x41A5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xCE23C3E399818CFEE81A7AB0880F714E53D7672B08DF0FA62F2843416E1EA09 PUSH2 0xB51 DUP2 PUSH2 0x420E JUMP JUMPDEST PUSH2 0xB59 PUSH2 0x4222 JUMP JUMPDEST PUSH0 PUSH1 0x3 PUSH1 0x2 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x40 MLOAD PUSH2 0xBA9 SWAP2 SWAP1 PUSH2 0x4CC6 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x2 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0xC99 SWAP2 SWAP1 PUSH2 0x4E5E JUMP JUMPDEST POP DUP3 PUSH1 0x3 DUP4 PUSH1 0x40 MLOAD PUSH2 0xCAB SWAP2 SWAP1 PUSH2 0x4F5D JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0xC88B0CED768FE051C9845644D6A9816BF01D50CDDF9F724B089E09B022A67339 DUP4 PUSH1 0x40 MLOAD PUSH2 0xD25 SWAP2 SWAP1 PUSH2 0x47A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x6D5C9827C1F410BBB61D3B2A0A34B6B30492D9A1FD38588EDCA7EC4562AB9C9B PUSH2 0xD5D DUP2 PUSH2 0x420E JUMP JUMPDEST PUSH1 0x3 DUP4 PUSH1 0x40 MLOAD PUSH2 0xD6D SWAP2 SWAP1 PUSH2 0x4F5D JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x8661AE67C9D50F67DBB173AD6369DD93AE94918083BD986295C3AC4E3822F0B8 PUSH2 0xDCD DUP2 PUSH2 0x420E JUMP JUMPDEST PUSH1 0x1 ISZERO ISZERO PUSH1 0x2 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0xE5F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE56 SWAP1 PUSH2 0x4FE3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 ISZERO ISZERO PUSH1 0x2 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0xEF1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEE8 SWAP1 PUSH2 0x5071 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x2 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xF5CCD95E2294EDEAD25B59A71C189B3543CFFBDE2EC0D763800BDCC8807C7C3E DUP3 PUSH1 0x40 MLOAD PUSH2 0xF78 SWAP2 SWAP1 PUSH2 0x47A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x1026 JUMPI POP PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST DUP1 ISZERO PUSH2 0x107C JUMPI POP PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x20F62EA4A42EAF4D5C5EAE414AA00F8B52FFD558F9888BB9F85344A814A91AFA DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH32 0x20F62EA4A42EAF4D5C5EAE414AA00F8B52FFD558F9888BB9F85344A814A91AFA PUSH2 0x10E6 DUP2 PUSH2 0x420E JUMP JUMPDEST PUSH2 0x10EE PUSH2 0x4222 JUMP JUMPDEST PUSH0 ISZERO ISZERO PUSH1 0x2 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x1180 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1177 SWAP1 PUSH2 0x50D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP4 PUSH1 0x2 PUSH0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x1286 SWAP2 SWAP1 PUSH2 0x5124 JUMP JUMPDEST PUSH1 0x2 PUSH0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP4 PUSH1 0x2 PUSH0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x4 ADD PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x138C SWAP2 SWAP1 PUSH2 0x5124 JUMP JUMPDEST PUSH1 0x2 PUSH0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x4 ADD PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x5 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x1455 SWAP2 SWAP1 PUSH2 0x5124 JUMP JUMPDEST PUSH1 0x5 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP4 PUSH1 0x6 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x14DF SWAP2 SWAP1 PUSH2 0x5124 JUMP JUMPDEST PUSH1 0x6 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x7ABD7FCF5033489ABD6BB8633A743B7282CAC3CA00BB95E5CE21FE2589953E63 DUP6 DUP5 DUP7 DUP5 PUSH1 0x2 PUSH0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH1 0x40 MLOAD PUSH2 0x15D2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5157 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1606 DUP3 PUSH2 0x15E1 JUMP JUMPDEST PUSH2 0x160F DUP2 PUSH2 0x420E JUMP JUMPDEST PUSH2 0x1619 DUP4 DUP4 PUSH2 0x426C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1627 PUSH2 0x4355 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x168B JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1695 DUP3 DUP3 PUSH2 0x435C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x4 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1730 SWAP2 SWAP1 PUSH2 0x47A0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x174B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x176F SWAP2 SWAP1 PUSH2 0x51BC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST CALLER PUSH1 0x1 ISZERO ISZERO PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x1809 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1800 SWAP1 PUSH2 0x4FE3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 ISZERO ISZERO PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x189C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1893 SWAP1 PUSH2 0x5257 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x18A4 PUSH2 0x4222 JUMP JUMPDEST PUSH0 ISZERO ISZERO PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x1936 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x192D SWAP1 PUSH2 0x50D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19CB SWAP2 SWAP1 PUSH2 0x47A0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19E6 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A0A SWAP2 SWAP1 PUSH2 0x51BC JUMP JUMPDEST DUP3 GT ISZERO PUSH2 0x1A4C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A43 SWAP1 PUSH2 0x52BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A55 DUP4 PUSH2 0x3F21 JUMP JUMPDEST DUP3 GT ISZERO PUSH2 0x1A97 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A8E SWAP1 PUSH2 0x5327 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER ADDRESS DUP6 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B30 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5345 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B4C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B70 SWAP2 SWAP1 PUSH2 0x538E JUMP JUMPDEST POP PUSH0 PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP3 DUP2 PUSH2 0x1BFC SWAP2 SWAP1 PUSH2 0x5124 JUMP JUMPDEST PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x219EAAF96D24116A0BAA2A9389E11184F4A16FA9E6F323AA3E0FB0A8F3D05E0F CALLER DUP6 DUP6 DUP5 PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH1 0x40 MLOAD PUSH2 0x1D2D SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5157 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x1E77 JUMPI POP PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST DUP1 ISZERO PUSH2 0x1ECD JUMPI POP PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH0 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x1F3E SWAP1 PUSH2 0x4BFA JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F6A SWAP1 PUSH2 0x4BFA JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FB5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F8C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FB5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F98 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x203F PUSH2 0x4222 JUMP JUMPDEST PUSH0 ISZERO ISZERO PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x20D0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20C7 SWAP1 PUSH2 0x5429 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SWAP1 POP PUSH1 0x1 DUP2 PUSH0 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH0 DUP2 PUSH0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH0 DUP2 PUSH0 ADD PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x805996F252884581E2F74CF3D2B03564D5EC26CCC90850AE12653DC1B72D1FA2 CALLER PUSH1 0x40 MLOAD PUSH2 0x2190 SWAP2 SWAP1 PUSH2 0x47A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x3 ADD PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6D5C9827C1F410BBB61D3B2A0A34B6B30492D9A1FD38588EDCA7EC4562AB9C9B DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x5 ADD PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x20F62EA4A42EAF4D5C5EAE414AA00F8B52FFD558F9888BB9F85344A814A91AFA PUSH2 0x22F9 DUP2 PUSH2 0x420E JUMP JUMPDEST PUSH2 0x2301 PUSH2 0x4222 JUMP JUMPDEST PUSH0 ISZERO ISZERO PUSH1 0x2 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x2393 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x238A SWAP1 PUSH2 0x50D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD LT ISZERO PUSH2 0x2451 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2448 SWAP1 PUSH2 0x52BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x24D8 SWAP2 SWAP1 PUSH2 0x5447 JUMP JUMPDEST PUSH1 0x2 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x2 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x5 ADD PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x25DE SWAP2 SWAP1 PUSH2 0x5124 JUMP JUMPDEST PUSH1 0x2 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x5 ADD PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x7 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x26A7 SWAP2 SWAP1 PUSH2 0x5124 JUMP JUMPDEST PUSH1 0x7 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x8 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x2731 SWAP2 SWAP1 PUSH2 0x5124 JUMP JUMPDEST PUSH1 0x8 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x28A4 JUMPI PUSH1 0x4 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB PUSH2 0xDEAD DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x285E SWAP3 SWAP2 SWAP1 PUSH2 0x547A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x287A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x289E SWAP2 SWAP1 PUSH2 0x538E JUMP JUMPDEST POP PUSH2 0x28EB JUMP JUMPDEST PUSH2 0xDEAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP5 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x28E9 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP JUMPDEST PUSH32 0x857AC1C9E97CC66ECAE5F524C9C611463AE748B85AF3CA454A5EC4D7D341924D DUP5 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH2 0x291E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5345 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH32 0xCE23C3E399818CFEE81A7AB0880F714E53D7672B08DF0FA62F2843416E1EA09 PUSH2 0x2956 DUP2 PUSH2 0x420E JUMP JUMPDEST PUSH2 0x295E PUSH2 0x4222 JUMP JUMPDEST PUSH1 0x1 ISZERO ISZERO PUSH1 0x2 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x29F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29E7 SWAP1 PUSH2 0x4FE3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 ISZERO ISZERO PUSH1 0x2 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x2A82 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A79 SWAP1 PUSH2 0x5511 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x2 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0x2B27 SWAP2 SWAP1 PUSH2 0x4E5E JUMP JUMPDEST POP DUP3 PUSH1 0x3 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2B39 SWAP2 SWAP1 PUSH2 0x4F5D JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0xC88B0CED768FE051C9845644D6A9816BF01D50CDDF9F724B089E09B022A67339 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2BB3 SWAP2 SWAP1 PUSH2 0x47A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH32 0x20F62EA4A42EAF4D5C5EAE414AA00F8B52FFD558F9888BB9F85344A814A91AFA PUSH2 0x2BEA DUP2 PUSH2 0x420E JUMP JUMPDEST PUSH2 0x2BF2 PUSH2 0x4222 JUMP JUMPDEST PUSH0 ISZERO ISZERO PUSH1 0x2 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x2C84 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C7B SWAP1 PUSH2 0x50D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD LT ISZERO PUSH2 0x2D42 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D39 SWAP1 PUSH2 0x52BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP4 PUSH1 0x2 PUSH0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x2E48 SWAP2 SWAP1 PUSH2 0x5447 JUMP JUMPDEST PUSH1 0x2 PUSH0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP4 PUSH1 0x2 PUSH0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x3 ADD PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x2F4E SWAP2 SWAP1 PUSH2 0x5124 JUMP JUMPDEST PUSH1 0x2 PUSH0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x3 ADD PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x6081D4716EBDD8EB7C0BFE28DF277F24DF835E2AFE17978137C58A49FFABF880 DUP6 DUP5 DUP7 DUP5 PUSH1 0x2 PUSH0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH1 0x40 MLOAD PUSH2 0x307F SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5157 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x4 ADD PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 SHL PUSH2 0x311F DUP2 PUSH2 0x420E JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x784C8F4DBF0FFEDD6E72C76501C545A70F8B203B30A26CE542BF92BA87C248A4 DUP3 PUSH1 0x40 MLOAD PUSH2 0x31C9 SWAP2 SWAP1 PUSH2 0x47A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x31DE DUP3 PUSH2 0x15E1 JUMP JUMPDEST PUSH2 0x31E7 DUP2 PUSH2 0x420E JUMP JUMPDEST PUSH2 0x31F1 DUP4 DUP4 PUSH2 0x435C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x8661AE67C9D50F67DBB173AD6369DD93AE94918083BD986295C3AC4E3822F0B8 PUSH2 0x3221 DUP2 PUSH2 0x420E JUMP JUMPDEST PUSH1 0x1 ISZERO ISZERO PUSH1 0x2 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x32B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x32AB SWAP1 PUSH2 0x5579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xC98AF8F4EC4DDC4C9CD83AA9D9ADBF34053062DC51AD93A562C787C2CC5DBC47 DUP3 PUSH1 0x40 MLOAD PUSH2 0x333A SWAP2 SWAP1 PUSH2 0x47A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST CALLER PUSH1 0x1 ISZERO ISZERO PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x33D9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33D0 SWAP1 PUSH2 0x4FE3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 ISZERO ISZERO PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x346C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3463 SWAP1 PUSH2 0x5257 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3474 PUSH2 0x4222 JUMP JUMPDEST PUSH0 ISZERO ISZERO PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x3506 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34FD SWAP1 PUSH2 0x50D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 PUSH1 0x1 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP CALLVALUE DUP2 PUSH2 0x35B1 SWAP2 SWAP1 PUSH2 0x5124 JUMP JUMPDEST PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 PUSH1 0x1 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x219EAAF96D24116A0BAA2A9389E11184F4A16FA9E6F323AA3E0FB0A8F3D05E0F CALLER PUSH1 0x1 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLVALUE DUP5 PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 PUSH1 0x1 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH1 0x40 MLOAD PUSH2 0x3742 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5157 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH32 0xCE23C3E399818CFEE81A7AB0880F714E53D7672B08DF0FA62F2843416E1EA09 DUP2 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST CALLER PUSH1 0x1 ISZERO ISZERO PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x384A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3841 SWAP1 PUSH2 0x4FE3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 ISZERO ISZERO PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x38DD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x38D4 SWAP1 PUSH2 0x5257 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP PUSH0 DUP5 SWAP1 POP PUSH0 PUSH1 0x1 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP1 POP DUP5 ISZERO PUSH2 0x3C24 JUMPI PUSH0 DUP4 GT PUSH2 0x39FA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39F1 SWAP1 PUSH2 0x55E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP2 POP PUSH0 PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH2 0x3BDA JUMPI PUSH1 0x4 PUSH0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3B94 SWAP3 SWAP2 SWAP1 PUSH2 0x547A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3BB0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3BD4 SWAP2 SWAP1 PUSH2 0x538E JUMP JUMPDEST POP PUSH2 0x3C1F JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3C1D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP JUMPDEST PUSH2 0x3E5C JUMP JUMPDEST PUSH0 DUP4 GT PUSH2 0x3C66 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C5D SWAP1 PUSH2 0x55E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP7 GT ISZERO PUSH2 0x3CA9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CA0 SWAP1 PUSH2 0x52BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP6 DUP4 PUSH2 0x3CB5 SWAP2 SWAP1 PUSH2 0x5447 JUMP JUMPDEST PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH2 0x3E16 JUMPI PUSH1 0x4 PUSH0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3DD0 SWAP3 SWAP2 SWAP1 PUSH2 0x547A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3DEC JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3E10 SWAP2 SWAP1 PUSH2 0x538E JUMP JUMPDEST POP PUSH2 0x3E5B JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP8 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3E59 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP JUMPDEST JUMPDEST PUSH32 0x8332A2A1AC31AF1259DD762D664B2094EC57EA3DF34C2F16C78FFFA7C8E7B9A9 CALLER DUP9 DUP5 DUP7 PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP11 PUSH1 0x40 MLOAD PUSH2 0x3F10 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x55FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x4 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E CALLER ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3FB9 SWAP3 SWAP2 SWAP1 PUSH2 0x565E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3FD4 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3FF8 SWAP2 SWAP1 PUSH2 0x51BC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x8661AE67C9D50F67DBB173AD6369DD93AE94918083BD986295C3AC4E3822F0B8 DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x421F DUP2 PUSH2 0x421A PUSH2 0x4355 JUMP JUMPDEST PUSH2 0x4445 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x422A PUSH2 0x1ED4 JUMP JUMPDEST ISZERO PUSH2 0x426A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4261 SWAP1 PUSH2 0x56CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH2 0x4277 DUP4 DUP4 PUSH2 0x1FD4 JUMP JUMPDEST PUSH2 0x434B JUMPI PUSH1 0x1 PUSH0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x42E8 PUSH2 0x4355 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x434F JUMP JUMPDEST PUSH0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4367 DUP4 DUP4 PUSH2 0x1FD4 JUMP JUMPDEST ISZERO PUSH2 0x443B JUMPI PUSH0 DUP1 PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x43D8 PUSH2 0x4355 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x443F JUMP JUMPDEST PUSH0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x444F DUP3 DUP3 PUSH2 0x1FD4 JUMP JUMPDEST PUSH2 0x4492 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4489 SWAP3 SWAP2 SWAP1 PUSH2 0x56ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x44DB DUP2 PUSH2 0x44A7 JUMP JUMPDEST DUP2 EQ PUSH2 0x44E5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x44F6 DUP2 PUSH2 0x44D2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4511 JUMPI PUSH2 0x4510 PUSH2 0x449F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x451E DUP5 DUP3 DUP6 ADD PUSH2 0x44E8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x453B DUP2 PUSH2 0x4527 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4554 PUSH0 DUP4 ADD DUP5 PUSH2 0x4532 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4583 DUP3 PUSH2 0x455A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4593 DUP2 PUSH2 0x4579 JUMP JUMPDEST DUP2 EQ PUSH2 0x459D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x45AE DUP2 PUSH2 0x458A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x4602 DUP3 PUSH2 0x45BC JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4621 JUMPI PUSH2 0x4620 PUSH2 0x45CC JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4633 PUSH2 0x4496 JUMP JUMPDEST SWAP1 POP PUSH2 0x463F DUP3 DUP3 PUSH2 0x45F9 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x465E JUMPI PUSH2 0x465D PUSH2 0x45CC JUMP JUMPDEST JUMPDEST PUSH2 0x4667 DUP3 PUSH2 0x45BC JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4694 PUSH2 0x468F DUP5 PUSH2 0x4644 JUMP JUMPDEST PUSH2 0x462A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x46B0 JUMPI PUSH2 0x46AF PUSH2 0x45B8 JUMP JUMPDEST JUMPDEST PUSH2 0x46BB DUP5 DUP3 DUP6 PUSH2 0x4674 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x46D7 JUMPI PUSH2 0x46D6 PUSH2 0x45B4 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x46E7 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x4682 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4706 JUMPI PUSH2 0x4705 PUSH2 0x449F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x4713 DUP6 DUP3 DUP7 ADD PUSH2 0x45A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4734 JUMPI PUSH2 0x4733 PUSH2 0x44A3 JUMP JUMPDEST JUMPDEST PUSH2 0x4740 DUP6 DUP3 DUP7 ADD PUSH2 0x46C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x475F JUMPI PUSH2 0x475E PUSH2 0x449F JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x477C JUMPI PUSH2 0x477B PUSH2 0x44A3 JUMP JUMPDEST JUMPDEST PUSH2 0x4788 DUP5 DUP3 DUP6 ADD PUSH2 0x46C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x479A DUP2 PUSH2 0x4579 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x47B3 PUSH0 DUP4 ADD DUP5 PUSH2 0x4791 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x47CE JUMPI PUSH2 0x47CD PUSH2 0x449F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x47DB DUP5 DUP3 DUP6 ADD PUSH2 0x45A0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x47F6 DUP2 PUSH2 0x47E4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x480F PUSH0 DUP4 ADD DUP5 PUSH2 0x47ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4827 DUP2 PUSH2 0x4815 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4840 PUSH0 DUP4 ADD DUP5 PUSH2 0x481E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x484F DUP2 PUSH2 0x4815 JUMP JUMPDEST DUP2 EQ PUSH2 0x4859 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x486A DUP2 PUSH2 0x4846 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4887 JUMPI PUSH2 0x4886 PUSH2 0x449F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x4894 DUP7 DUP3 DUP8 ADD PUSH2 0x45A0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x48A5 DUP7 DUP3 DUP8 ADD PUSH2 0x485C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x48B6 DUP7 DUP3 DUP8 ADD PUSH2 0x45A0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x48C9 DUP2 PUSH2 0x47E4 JUMP JUMPDEST DUP2 EQ PUSH2 0x48D3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x48E4 DUP2 PUSH2 0x48C0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x48FF JUMPI PUSH2 0x48FE PUSH2 0x449F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x490C DUP5 DUP3 DUP6 ADD PUSH2 0x48D6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x492B JUMPI PUSH2 0x492A PUSH2 0x449F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x4938 DUP6 DUP3 DUP7 ADD PUSH2 0x48D6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x4949 DUP6 DUP3 DUP7 ADD PUSH2 0x45A0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4969 JUMPI PUSH2 0x4968 PUSH2 0x449F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x4976 DUP6 DUP3 DUP7 ADD PUSH2 0x45A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x4987 DUP6 DUP3 DUP7 ADD PUSH2 0x485C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x49A7 JUMPI PUSH2 0x49A6 PUSH2 0x449F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x49B4 DUP6 DUP3 DUP7 ADD PUSH2 0x45A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x49C5 DUP6 DUP3 DUP7 ADD PUSH2 0x45A0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4A01 DUP3 PUSH2 0x49CF JUMP JUMPDEST PUSH2 0x4A0B DUP2 DUP6 PUSH2 0x49D9 JUMP JUMPDEST SWAP4 POP PUSH2 0x4A1B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x49E9 JUMP JUMPDEST PUSH2 0x4A24 DUP2 PUSH2 0x45BC JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x4A42 PUSH0 DUP4 ADD DUP8 PUSH2 0x4532 JUMP JUMPDEST PUSH2 0x4A4F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x4532 JUMP JUMPDEST PUSH2 0x4A5C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4532 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4A6E DUP2 DUP5 PUSH2 0x49F7 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4A83 DUP3 PUSH2 0x4579 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4A93 DUP2 PUSH2 0x4A79 JUMP JUMPDEST DUP2 EQ PUSH2 0x4A9D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4AAE DUP2 PUSH2 0x4A8A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4AC9 JUMPI PUSH2 0x4AC8 PUSH2 0x449F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x4AD6 DUP5 DUP3 DUP6 ADD PUSH2 0x4AA0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4B02 PUSH2 0x4AFD PUSH2 0x4AF8 DUP5 PUSH2 0x455A JUMP JUMPDEST PUSH2 0x4ADF JUMP JUMPDEST PUSH2 0x455A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4B13 DUP3 PUSH2 0x4AE8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4B24 DUP3 PUSH2 0x4B09 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4B34 DUP2 PUSH2 0x4B1A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4B4D PUSH0 DUP4 ADD DUP5 PUSH2 0x4B2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4B5C DUP2 PUSH2 0x4527 JUMP JUMPDEST DUP2 EQ PUSH2 0x4B66 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4B77 DUP2 PUSH2 0x4B53 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4B94 JUMPI PUSH2 0x4B93 PUSH2 0x449F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x4BA1 DUP7 DUP3 DUP8 ADD PUSH2 0x45A0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x4BB2 DUP7 DUP3 DUP8 ADD PUSH2 0x485C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x4BC3 DUP7 DUP3 DUP8 ADD PUSH2 0x4B69 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x4C11 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x4C24 JUMPI PUSH2 0x4C23 PUSH2 0x4BCD JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SLOAD PUSH2 0x4C52 DUP2 PUSH2 0x4BFA JUMP JUMPDEST PUSH2 0x4C5C DUP2 DUP7 PUSH2 0x4C2A JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH0 DUP2 EQ PUSH2 0x4C76 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x4C8B JUMPI PUSH2 0x4CBD JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x4CBD JUMP JUMPDEST PUSH2 0x4C94 DUP6 PUSH2 0x4C34 JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4CB5 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4C96 JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4CD1 DUP3 DUP5 PUSH2 0x4C46 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x4D26 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x4CEB JUMP JUMPDEST PUSH2 0x4D30 DUP7 DUP4 PUSH2 0x4CEB JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4D62 PUSH2 0x4D5D PUSH2 0x4D58 DUP5 PUSH2 0x4815 JUMP JUMPDEST PUSH2 0x4ADF JUMP JUMPDEST PUSH2 0x4815 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4D7B DUP4 PUSH2 0x4D48 JUMP JUMPDEST PUSH2 0x4D8F PUSH2 0x4D87 DUP3 PUSH2 0x4D69 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x4CF7 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x4DA3 PUSH2 0x4D97 JUMP JUMPDEST PUSH2 0x4DAE DUP2 DUP5 DUP5 PUSH2 0x4D72 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4DD1 JUMPI PUSH2 0x4DC6 PUSH0 DUP3 PUSH2 0x4D9B JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4DB4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x4E16 JUMPI PUSH2 0x4DE7 DUP2 PUSH2 0x4C34 JUMP JUMPDEST PUSH2 0x4DF0 DUP5 PUSH2 0x4CDC JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x4DFF JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x4E13 PUSH2 0x4E0B DUP6 PUSH2 0x4CDC JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x4DB3 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4E36 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x4E1B JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4E4E DUP4 DUP4 PUSH2 0x4E27 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4E67 DUP3 PUSH2 0x49CF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4E80 JUMPI PUSH2 0x4E7F PUSH2 0x45CC JUMP JUMPDEST JUMPDEST PUSH2 0x4E8A DUP3 SLOAD PUSH2 0x4BFA JUMP JUMPDEST PUSH2 0x4E95 DUP3 DUP3 DUP6 PUSH2 0x4DD5 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4EC6 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x4EB4 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x4EBE DUP6 DUP3 PUSH2 0x4E43 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x4F25 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x4ED4 DUP7 PUSH2 0x4C34 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4EFB JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4ED6 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x4F18 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x4F14 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x4E27 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4F37 DUP3 PUSH2 0x49CF JUMP JUMPDEST PUSH2 0x4F41 DUP2 DUP6 PUSH2 0x4C2A JUMP JUMPDEST SWAP4 POP PUSH2 0x4F51 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x49E9 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4F68 DUP3 DUP5 PUSH2 0x4F2D JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5468657265206973206E6F206163636F756E74206F6E20746869732061646472 PUSH0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x4FCD PUSH1 0x23 DUP4 PUSH2 0x49D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x4FD8 DUP3 PUSH2 0x4F73 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x4FFA DUP2 PUSH2 0x4FC1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x54686973206163636F756E742068617320616C7265616479206265656E206261 PUSH0 DUP3 ADD MSTORE PUSH32 0x6E6E656400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x505B PUSH1 0x24 DUP4 PUSH2 0x49D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x5066 DUP3 PUSH2 0x5001 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x5088 DUP2 PUSH2 0x504F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x54686973206163636F756E7420686173206265656E2062616E6E656400000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x50C3 PUSH1 0x1C DUP4 PUSH2 0x49D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x50CE DUP3 PUSH2 0x508F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x50F0 DUP2 PUSH2 0x50B7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x512E DUP3 PUSH2 0x4815 JUMP JUMPDEST SWAP2 POP PUSH2 0x5139 DUP4 PUSH2 0x4815 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x5151 JUMPI PUSH2 0x5150 PUSH2 0x50F7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x516A PUSH0 DUP4 ADD DUP9 PUSH2 0x4791 JUMP JUMPDEST PUSH2 0x5177 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x4791 JUMP JUMPDEST PUSH2 0x5184 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x481E JUMP JUMPDEST PUSH2 0x5191 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x481E JUMP JUMPDEST PUSH2 0x519E PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x481E JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x51B6 DUP2 PUSH2 0x4846 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x51D1 JUMPI PUSH2 0x51D0 PUSH2 0x449F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x51DE DUP5 DUP3 DUP6 ADD PUSH2 0x51A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x54686973206163636F756E7420686173206E6F7420796574206265656E207665 PUSH0 DUP3 ADD MSTORE PUSH32 0x7269666965640000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x5241 PUSH1 0x26 DUP4 PUSH2 0x49D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x524C DUP3 PUSH2 0x51E7 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x526E DUP2 PUSH2 0x5235 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x54686520616D6F756E7420657863656564732062616C616E6365000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x52A9 PUSH1 0x1A DUP4 PUSH2 0x49D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x52B4 DUP3 PUSH2 0x5275 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x52D6 DUP2 PUSH2 0x529D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x54686520616D6F756E74206578636565647320616C6C6F77616E636500000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x5311 PUSH1 0x1C DUP4 PUSH2 0x49D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x531C DUP3 PUSH2 0x52DD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x533E DUP2 PUSH2 0x5305 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x5358 PUSH0 DUP4 ADD DUP7 PUSH2 0x4791 JUMP JUMPDEST PUSH2 0x5365 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x4791 JUMP JUMPDEST PUSH2 0x5372 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x481E JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x5388 DUP2 PUSH2 0x4B53 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x53A3 JUMPI PUSH2 0x53A2 PUSH2 0x449F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x53B0 DUP5 DUP3 DUP6 ADD PUSH2 0x537A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x546865726520697320616C726561647920616E206163636F756E74206F6E2074 PUSH0 DUP3 ADD MSTORE PUSH32 0x6869732061646472657373000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x5413 PUSH1 0x2B DUP4 PUSH2 0x49D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x541E DUP3 PUSH2 0x53B9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x5440 DUP2 PUSH2 0x5407 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x5451 DUP3 PUSH2 0x4815 JUMP JUMPDEST SWAP2 POP PUSH2 0x545C DUP4 PUSH2 0x4815 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x5474 JUMPI PUSH2 0x5473 PUSH2 0x50F7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x548D PUSH0 DUP4 ADD DUP6 PUSH2 0x4791 JUMP JUMPDEST PUSH2 0x549A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x481E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x54686973206163636F756E742068617320616C7265616479206265656E207665 PUSH0 DUP3 ADD MSTORE PUSH32 0x7269666965640000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x54FB PUSH1 0x26 DUP4 PUSH2 0x49D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x5506 DUP3 PUSH2 0x54A1 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x5528 DUP2 PUSH2 0x54EF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x54686973206163636F756E7420686173206E6F74206265656E2062616E6E6564 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x5563 PUSH1 0x20 DUP4 PUSH2 0x49D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x556E DUP3 PUSH2 0x552F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x5590 DUP2 PUSH2 0x5557 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F7468696E6720746F20776974686472617700000000000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x55CB PUSH1 0x13 DUP4 PUSH2 0x49D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x55D6 DUP3 PUSH2 0x5597 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x55F8 DUP2 PUSH2 0x55BF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0xC0 DUP3 ADD SWAP1 POP PUSH2 0x5612 PUSH0 DUP4 ADD DUP10 PUSH2 0x4791 JUMP JUMPDEST PUSH2 0x561F PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0x4791 JUMP JUMPDEST PUSH2 0x562C PUSH1 0x40 DUP4 ADD DUP8 PUSH2 0x481E JUMP JUMPDEST PUSH2 0x5639 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x481E JUMP JUMPDEST PUSH2 0x5646 PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0x481E JUMP JUMPDEST PUSH2 0x5653 PUSH1 0xA0 DUP4 ADD DUP5 PUSH2 0x4532 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x5671 PUSH0 DUP4 ADD DUP6 PUSH2 0x4791 JUMP JUMPDEST PUSH2 0x567E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4791 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x56B9 PUSH1 0x10 DUP4 PUSH2 0x49D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x56C4 DUP3 PUSH2 0x5685 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x56E6 DUP2 PUSH2 0x56AD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x5700 PUSH0 DUP4 ADD DUP6 PUSH2 0x4791 JUMP JUMPDEST PUSH2 0x570D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x47ED JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDB SWAP13 0xC3 SAR PUSH27 0x682310DE5039316D405B064B9CABC4D85DC2F0125AEF04E5ACBB9B PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ",
"sourceMap": "235:12214:7:-:0;;;598:42;569:71;;;;;;;;;;;;;;;;;;;;2138:73;;;;;;;;;;1006:5:2;996:7;;:15;;;;;;;;;;;;;;;;;;2162:42:7;2232:4:0;2173:18:7;;2193:10;2162;;;:42;;:::i;:::-;;235:12214;;6179:316:0;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;235:12214:7:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@BANNER_ROLE_718": {
"entryPoint": 16553,
"id": 718,
"parameterSlots": 0,
"returnSlots": 0
},
"@BOT_CONTRACT_ROLE_708": {
"entryPoint": 4227,
"id": 708,
"parameterSlots": 0,
"returnSlots": 0
},
"@BOT_ROLE_703": {
"entryPoint": 8742,
"id": 703,
"parameterSlots": 0,
"returnSlots": 0
},
"@DEFAULT_ADMIN_ROLE_29": {
"entryPoint": 8603,
"id": 29,
"parameterSlots": 0,
"returnSlots": 0
},
"@VERIFIER_ROLE_713": {
"entryPoint": 14206,
"id": 713,
"parameterSlots": 0,
"returnSlots": 0
},
"@_checkRole_114": {
"entryPoint": 17477,
"id": 114,
"parameterSlots": 2,
"returnSlots": 0
},
"@_checkRole_93": {
"entryPoint": 16910,
"id": 93,
"parameterSlots": 1,
"returnSlots": 0
},
"@_grantRole_256": {
"entryPoint": 17004,
"id": 256,
"parameterSlots": 2,
"returnSlots": 1
},
"@_msgSender_576": {
"entryPoint": 17237,
"id": 576,
"parameterSlots": 0,
"returnSlots": 1
},
"@_requireNotPaused_442": {
"entryPoint": 16930,
"id": 442,
"parameterSlots": 0,
"returnSlots": 0
},
"@_revokeRole_294": {
"entryPoint": 17244,
"id": 294,
"parameterSlots": 2,
"returnSlots": 1
},
"@accounts_672": {
"entryPoint": 7913,
"id": 672,
"parameterSlots": 0,
"returnSlots": 0
},
"@addToken_861": {
"entryPoint": 12563,
"id": 861,
"parameterSlots": 1,
"returnSlots": 0
},
"@banAccount_1055": {
"entryPoint": 3491,
"id": 1055,
"parameterSlots": 1,
"returnSlots": 0
},
"@burn_1616": {
"entryPoint": 8911,
"id": 1616,
"parameterSlots": 3,
"returnSlots": 0
},
"@createAccount_909": {
"entryPoint": 8247,
"id": 909,
"parameterSlots": 0,
"returnSlots": 0
},
"@decreaseAccountBalance_1499": {
"entryPoint": 11200,
"id": 1499,
"parameterSlots": 3,
"returnSlots": 0
},
"@depositNative_1773": {
"entryPoint": 13126,
"id": 1773,
"parameterSlots": 0,
"returnSlots": 0
},
"@deposit_1713": {
"entryPoint": 6006,
"id": 1713,
"parameterSlots": 2,
"returnSlots": 0
},
"@getAccountActive_1151": {
"entryPoint": 16589,
"id": 1151,
"parameterSlots": 1,
"returnSlots": 1
},
"@getAccountBalance_1242": {
"entryPoint": 7504,
"id": 1242,
"parameterSlots": 2,
"returnSlots": 1
},
"@getAccountBanned_1177": {
"entryPoint": 16468,
"id": 1177,
"parameterSlots": 1,
"returnSlots": 1
},
"@getAccountBurned_1293": {
"entryPoint": 8778,
"id": 1293,
"parameterSlots": 2,
"returnSlots": 1
},
"@getAccountByDiscordId_1138": {
"entryPoint": 3378,
"id": 1138,
"parameterSlots": 1,
"returnSlots": 1
},
"@getAccountCanBeTipped_1201": {
"entryPoint": 3972,
"id": 1201,
"parameterSlots": 1,
"returnSlots": 1
},
"@getAccountCanTip_1225": {
"entryPoint": 7637,
"id": 1225,
"parameterSlots": 1,
"returnSlots": 1
},
"@getAccountReceived_1276": {
"entryPoint": 12430,
"id": 1276,
"parameterSlots": 2,
"returnSlots": 1
},
"@getAccountTipped_1259": {
"entryPoint": 8609,
"id": 1259,
"parameterSlots": 2,
"returnSlots": 1
},
"@getAccountVerified_1164": {
"entryPoint": 16383,
"id": 1164,
"parameterSlots": 1,
"returnSlots": 1
},
"@getAllowance_1123": {
"entryPoint": 16161,
"id": 1123,
"parameterSlots": 1,
"returnSlots": 1
},
"@getBalance_1309": {
"entryPoint": 16673,
"id": 1309,
"parameterSlots": 1,
"returnSlots": 1
},
"@getContractBalance_1103": {
"entryPoint": 5786,
"id": 1103,
"parameterSlots": 1,
"returnSlots": 1
},
"@getRoleAdmin_128": {
"entryPoint": 5601,
"id": 128,
"parameterSlots": 1,
"returnSlots": 1
},
"@grantRole_147": {
"entryPoint": 5629,
"id": 147,
"parameterSlots": 2,
"returnSlots": 0
},
"@hasRole_80": {
"entryPoint": 8148,
"id": 80,
"parameterSlots": 2,
"returnSlots": 1
},
"@increaseAccountBalance_1408": {
"entryPoint": 4284,
"id": 1408,
"parameterSlots": 3,
"returnSlots": 0
},
"@paused_430": {
"entryPoint": 7892,
"id": 430,
"parameterSlots": 0,
"returnSlots": 1
},
"@renounceRole_189": {
"entryPoint": 5663,
"id": 189,
"parameterSlots": 2,
"returnSlots": 0
},
"@revokeRole_166": {
"entryPoint": 12757,
"id": 166,
"parameterSlots": 2,
"returnSlots": 0
},
"@setDiscordId_1015": {
"entryPoint": 2855,
"id": 1015,
"parameterSlots": 2,
"returnSlots": 0
},
"@supportsInterface_617": {
"entryPoint": 16805,
"id": 617,
"parameterSlots": 1,
"returnSlots": 1
},
"@supportsInterface_62": {
"entryPoint": 2734,
"id": 62,
"parameterSlots": 1,
"returnSlots": 1
},
"@tokens_681": {
"entryPoint": 14158,
"id": 681,
"parameterSlots": 0,
"returnSlots": 0
},
"@totalBurned_697": {
"entryPoint": 7483,
"id": 697,
"parameterSlots": 0,
"returnSlots": 0
},
"@totalTimesBurned_693": {
"entryPoint": 4263,
"id": 693,
"parameterSlots": 0,
"returnSlots": 0
},
"@totalTimesTipped_685": {
"entryPoint": 8127,
"id": 685,
"parameterSlots": 0,
"returnSlots": 0
},
"@totalTipped_689": {
"entryPoint": 14242,
"id": 689,
"parameterSlots": 0,
"returnSlots": 0
},
"@unbanAccount_1085": {
"entryPoint": 12791,
"id": 1085,
"parameterSlots": 1,
"returnSlots": 0
},
"@verifyAccount_966": {
"entryPoint": 10540,
"id": 966,
"parameterSlots": 2,
"returnSlots": 0
},
"@withdraw_1926": {
"entryPoint": 14263,
"id": 1926,
"parameterSlots": 3,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 18050,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 17824,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bool": {
"entryPoint": 19305,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bool_fromMemory": {
"entryPoint": 21370,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes32": {
"entryPoint": 18646,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes4": {
"entryPoint": 17640,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_contract$_IERC20_$564": {
"entryPoint": 19104,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 18115,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 18524,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 20904,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 18361,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_address": {
"entryPoint": 18833,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_string_memory_ptr": {
"entryPoint": 18160,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 18771,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_uint256t_address": {
"entryPoint": 18544,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_addresst_uint256t_bool": {
"entryPoint": 19325,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_bool_fromMemory": {
"entryPoint": 21390,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes32": {
"entryPoint": 18666,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes32t_address": {
"entryPoint": 18709,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_bytes4": {
"entryPoint": 17660,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_contract$_IERC20_$564": {
"entryPoint": 19124,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptr": {
"entryPoint": 18250,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 20924,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 18321,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 17714,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_fromStack": {
"entryPoint": 18413,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_contract$_IERC20_$564_to_t_address_fromStack": {
"entryPoint": 19243,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 18935,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 20269,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 19526,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_stringliteral_0be9cbb51418bc59653f1e86ae620ff113423985c6de964ddd28fb6fd0da0322_to_t_string_memory_ptr_fromStack": {
"entryPoint": 20417,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_13e9b3f2752fc01442fe6c74e53a1c7fbfc05c195ef2aa2a44ec5bd3b8c98b29_to_t_string_memory_ptr_fromStack": {
"entryPoint": 21511,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_1b19ac089d87f4146c293e731799080c98f8ee751187f94356e96cb0c086a394_to_t_string_memory_ptr_fromStack": {
"entryPoint": 21951,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_3365f09b08ad058873b17c0c278d311c99005c2917e08f8804863677bbf6c41a_to_t_string_memory_ptr_fromStack": {
"entryPoint": 21045,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_551b15fe577494a57d0056b2b2ea10b1c5e0914ae1693934c4159c445996b73e_to_t_string_memory_ptr_fromStack": {
"entryPoint": 20559,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_5dde37551afd1b8bd7e67868a5db9a1ab0c5c0e070f2de0cf1f9981214be151c_to_t_string_memory_ptr_fromStack": {
"entryPoint": 21847,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack": {
"entryPoint": 22189,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_6c4942ee454f96426693ed10207cb04e74377678aa7b03c37870fa414b9c4399_to_t_string_memory_ptr_fromStack": {
"entryPoint": 21149,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_74702c13a46f8553affde8ff74c611471ca9e58252a85a5a23fce63d85416534_to_t_string_memory_ptr_fromStack": {
"entryPoint": 20663,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_8f9ab81aa1326bbbcd93536a02907b28d20aa55bd99ead6a349c4c2dfdbc3418_to_t_string_memory_ptr_fromStack": {
"entryPoint": 21253,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_ff3e0523e98677348faf533ab2bf010de0dfe6153569ad5d536cc87a5b27e996_to_t_string_memory_ptr_fromStack": {
"entryPoint": 21743,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 18462,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 20317,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_string_storage__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 19654,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 18336,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": {
"entryPoint": 22110,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 21317,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": 20823,
"id": null,
"parameterSlots": 6,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_uint256_t_bool__to_t_address_t_address_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed": {
"entryPoint": 22015,
"id": null,
"parameterSlots": 7,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": {
"entryPoint": 22253,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 21626,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 17729,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bool_t_bool_t_bool_t_string_memory_ptr__to_t_bool_t_bool_t_bool_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 18991,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": {
"entryPoint": 18428,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_contract$_IERC20_$564__to_t_address__fromStack_reversed": {
"entryPoint": 19258,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_0be9cbb51418bc59653f1e86ae620ff113423985c6de964ddd28fb6fd0da0322__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 20451,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_13e9b3f2752fc01442fe6c74e53a1c7fbfc05c195ef2aa2a44ec5bd3b8c98b29__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 21545,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_1b19ac089d87f4146c293e731799080c98f8ee751187f94356e96cb0c086a394__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 21985,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_3365f09b08ad058873b17c0c278d311c99005c2917e08f8804863677bbf6c41a__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 21079,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_551b15fe577494a57d0056b2b2ea10b1c5e0914ae1693934c4159c445996b73e__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 20593,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_5dde37551afd1b8bd7e67868a5db9a1ab0c5c0e070f2de0cf1f9981214be151c__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 21881,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 22223,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_6c4942ee454f96426693ed10207cb04e74377678aa7b03c37870fa414b9c4399__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 21183,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_74702c13a46f8553affde8ff74c611471ca9e58252a85a5a23fce63d85416534__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 20697,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_8f9ab81aa1326bbbcd93536a02907b28d20aa55bd99ead6a349c4c2dfdbc3418__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 21287,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_ff3e0523e98677348faf533ab2bf010de0dfe6153569ad5d536cc87a5b27e996__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 21777,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 18477,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 17962,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 17558,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 17988,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_string_storage": {
"entryPoint": 19508,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 18895,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 18905,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 19498,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 20772,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 21575,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"clean_up_bytearray_end_slots_t_string_storage": {
"entryPoint": 19925,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"cleanup_t_address": {
"entryPoint": 17785,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 17703,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 18404,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes4": {
"entryPoint": 17575,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_contract$_IERC20_$564": {
"entryPoint": 19065,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 17754,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 18453,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clear_storage_range_t_bytes1": {
"entryPoint": 19891,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"convert_t_contract$_IERC20_$564_to_t_address": {
"entryPoint": 19226,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint160_to_t_address": {
"entryPoint": 19209,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint160_to_t_uint160": {
"entryPoint": 19176,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint256_to_t_uint256": {
"entryPoint": 19784,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
"entryPoint": 20062,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"copy_calldata_to_memory_with_cleanup": {
"entryPoint": 18036,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 18921,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"divide_by_32_ceil": {
"entryPoint": 19676,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 19450,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_used_part_and_set_length_of_short_byte_array": {
"entryPoint": 20035,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 17913,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"identity": {
"entryPoint": 19167,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mask_bytes_dynamic": {
"entryPoint": 20007,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 20727,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 19405,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 17868,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"prepare_store_t_uint256": {
"entryPoint": 19817,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 17844,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 17848,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 17571,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 17567,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 17852,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_dynamic": {
"entryPoint": 19691,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"shift_right_unsigned_dynamic": {
"entryPoint": 19995,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"storage_set_to_zero_t_uint256": {
"entryPoint": 19867,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"store_literal_in_memory_0be9cbb51418bc59653f1e86ae620ff113423985c6de964ddd28fb6fd0da0322": {
"entryPoint": 20339,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_13e9b3f2752fc01442fe6c74e53a1c7fbfc05c195ef2aa2a44ec5bd3b8c98b29": {
"entryPoint": 21433,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_1b19ac089d87f4146c293e731799080c98f8ee751187f94356e96cb0c086a394": {
"entryPoint": 21911,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_3365f09b08ad058873b17c0c278d311c99005c2917e08f8804863677bbf6c41a": {
"entryPoint": 20967,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_551b15fe577494a57d0056b2b2ea10b1c5e0914ae1693934c4159c445996b73e": {
"entryPoint": 20481,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_5dde37551afd1b8bd7e67868a5db9a1ab0c5c0e070f2de0cf1f9981214be151c": {
"entryPoint": 21807,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a": {
"entryPoint": 22149,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_6c4942ee454f96426693ed10207cb04e74377678aa7b03c37870fa414b9c4399": {
"entryPoint": 21109,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_74702c13a46f8553affde8ff74c611471ca9e58252a85a5a23fce63d85416534": {
"entryPoint": 20623,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_8f9ab81aa1326bbbcd93536a02907b28d20aa55bd99ead6a349c4c2dfdbc3418": {
"entryPoint": 21213,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_ff3e0523e98677348faf533ab2bf010de0dfe6153569ad5d536cc87a5b27e996": {
"entryPoint": 21665,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"update_byte_slice_dynamic32": {
"entryPoint": 19703,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"update_storage_value_t_uint256_to_t_uint256": {
"entryPoint": 19826,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 17802,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bool": {
"entryPoint": 19283,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bytes32": {
"entryPoint": 18624,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bytes4": {
"entryPoint": 17618,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_contract$_IERC20_$564": {
"entryPoint": 19082,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 18502,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"zero_value_for_split_t_uint256": {
"entryPoint": 19863,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:36232:8",
"nodeType": "YulBlock",
"src": "0:36232:8",
"statements": [
{
"body": {
"nativeSrc": "47:35:8",
"nodeType": "YulBlock",
"src": "47:35:8",
"statements": [
{
"nativeSrc": "57:19:8",
"nodeType": "YulAssignment",
"src": "57:19:8",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "73:2:8",
"nodeType": "YulLiteral",
"src": "73:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "67:5:8",
"nodeType": "YulIdentifier",
"src": "67:5:8"
},
"nativeSrc": "67:9:8",
"nodeType": "YulFunctionCall",
"src": "67:9:8"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "57:6:8",
"nodeType": "YulIdentifier",
"src": "57:6:8"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "7:75:8",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "40:6:8",
"nodeType": "YulTypedName",
"src": "40:6:8",
"type": ""
}
],
"src": "7:75:8"
},
{
"body": {
"nativeSrc": "177:28:8",
"nodeType": "YulBlock",
"src": "177:28:8",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "194:1:8",
"nodeType": "YulLiteral",
"src": "194:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "197:1:8",
"nodeType": "YulLiteral",
"src": "197:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "187:6:8",
"nodeType": "YulIdentifier",
"src": "187:6:8"
},
"nativeSrc": "187:12:8",
"nodeType": "YulFunctionCall",
"src": "187:12:8"
},
"nativeSrc": "187:12:8",
"nodeType": "YulExpressionStatement",
"src": "187:12:8"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "88:117:8",
"nodeType": "YulFunctionDefinition",
"src": "88:117:8"
},
{
"body": {
"nativeSrc": "300:28:8",
"nodeType": "YulBlock",
"src": "300:28:8",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "317:1:8",
"nodeType": "YulLiteral",
"src": "317:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "320:1:8",
"nodeType": "YulLiteral",
"src": "320:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "310:6:8",
"nodeType": "YulIdentifier",
"src": "310:6:8"
},
"nativeSrc": "310:12:8",
"nodeType": "YulFunctionCall",
"src": "310:12:8"
},
"nativeSrc": "310:12:8",
"nodeType": "YulExpressionStatement",
"src": "310:12:8"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "211:117:8",
"nodeType": "YulFunctionDefinition",
"src": "211:117:8"
},
{
"body": {
"nativeSrc": "378:105:8",
"nodeType": "YulBlock",
"src": "378:105:8",
"statements": [
{
"nativeSrc": "388:89:8",
"nodeType": "YulAssignment",
"src": "388:89:8",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "403:5:8",
"nodeType": "YulIdentifier",
"src": "403:5:8"
},
{
"kind": "number",
"nativeSrc": "410:66:8",
"nodeType": "YulLiteral",
"src": "410:66:8",
"type": "",
"value": "0xffffffff00000000000000000000000000000000000000000000000000000000"
}
],
"functionName": {
"name": "and",
"nativeSrc": "399:3:8",
"nodeType": "YulIdentifier",
"src": "399:3:8"
},
"nativeSrc": "399:78:8",
"nodeType": "YulFunctionCall",
"src": "399:78:8"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "388:7:8",
"nodeType": "YulIdentifier",
"src": "388:7:8"
}
]
}
]
},
"name": "cleanup_t_bytes4",
"nativeSrc": "334:149:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "360:5:8",
"nodeType": "YulTypedName",
"src": "360:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "370:7:8",
"nodeType": "YulTypedName",
"src": "370:7:8",
"type": ""
}
],
"src": "334:149:8"
},
{
"body": {
"nativeSrc": "531:78:8",
"nodeType": "YulBlock",
"src": "531:78:8",
"statements": [
{
"body": {
"nativeSrc": "587:16:8",
"nodeType": "YulBlock",
"src": "587:16:8",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "596:1:8",
"nodeType": "YulLiteral",
"src": "596:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "599:1:8",
"nodeType": "YulLiteral",
"src": "599:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "589:6:8",
"nodeType": "YulIdentifier",
"src": "589:6:8"
},
"nativeSrc": "589:12:8",
"nodeType": "YulFunctionCall",
"src": "589:12:8"
},
"nativeSrc": "589:12:8",
"nodeType": "YulExpressionStatement",
"src": "589:12:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "554:5:8",
"nodeType": "YulIdentifier",
"src": "554:5:8"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "578:5:8",
"nodeType": "YulIdentifier",
"src": "578:5:8"
}
],
"functionName": {
"name": "cleanup_t_bytes4",
"nativeSrc": "561:16:8",
"nodeType": "YulIdentifier",
"src": "561:16:8"
},
"nativeSrc": "561:23:8",
"nodeType": "YulFunctionCall",
"src": "561:23:8"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "551:2:8",
"nodeType": "YulIdentifier",
"src": "551:2:8"
},
"nativeSrc": "551:34:8",
"nodeType": "YulFunctionCall",
"src": "551:34:8"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "544:6:8",
"nodeType": "YulIdentifier",
"src": "544:6:8"
},
"nativeSrc": "544:42:8",
"nodeType": "YulFunctionCall",
"src": "544:42:8"
},
"nativeSrc": "541:62:8",
"nodeType": "YulIf",
"src": "541:62:8"
}
]
},
"name": "validator_revert_t_bytes4",
"nativeSrc": "489:120:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "524:5:8",
"nodeType": "YulTypedName",
"src": "524:5:8",
"type": ""
}
],
"src": "489:120:8"
},
{
"body": {
"nativeSrc": "666:86:8",
"nodeType": "YulBlock",
"src": "666:86:8",
"statements": [
{
"nativeSrc": "676:29:8",
"nodeType": "YulAssignment",
"src": "676:29:8",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "698:6:8",
"nodeType": "YulIdentifier",
"src": "698:6:8"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "685:12:8",
"nodeType": "YulIdentifier",
"src": "685:12:8"
},
"nativeSrc": "685:20:8",
"nodeType": "YulFunctionCall",
"src": "685:20:8"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "676:5:8",
"nodeType": "YulIdentifier",
"src": "676:5:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "740:5:8",
"nodeType": "YulIdentifier",
"src": "740:5:8"
}
],
"functionName": {
"name": "validator_revert_t_bytes4",
"nativeSrc": "714:25:8",
"nodeType": "YulIdentifier",
"src": "714:25:8"
},
"nativeSrc": "714:32:8",
"nodeType": "YulFunctionCall",
"src": "714:32:8"
},
"nativeSrc": "714:32:8",
"nodeType": "YulExpressionStatement",
"src": "714:32:8"
}
]
},
"name": "abi_decode_t_bytes4",
"nativeSrc": "615:137:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "644:6:8",
"nodeType": "YulTypedName",
"src": "644:6:8",
"type": ""
},
{
"name": "end",
"nativeSrc": "652:3:8",
"nodeType": "YulTypedName",
"src": "652:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "660:5:8",
"nodeType": "YulTypedName",
"src": "660:5:8",
"type": ""
}
],
"src": "615:137:8"
},
{
"body": {
"nativeSrc": "823:262:8",
"nodeType": "YulBlock",
"src": "823:262:8",
"statements": [
{
"body": {
"nativeSrc": "869:83:8",
"nodeType": "YulBlock",
"src": "869:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "871:77:8",
"nodeType": "YulIdentifier",
"src": "871:77:8"
},
"nativeSrc": "871:79:8",
"nodeType": "YulFunctionCall",
"src": "871:79:8"
},
"nativeSrc": "871:79:8",
"nodeType": "YulExpressionStatement",
"src": "871:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "844:7:8",
"nodeType": "YulIdentifier",
"src": "844:7:8"
},
{
"name": "headStart",
"nativeSrc": "853:9:8",
"nodeType": "YulIdentifier",
"src": "853:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "840:3:8",
"nodeType": "YulIdentifier",
"src": "840:3:8"
},
"nativeSrc": "840:23:8",
"nodeType": "YulFunctionCall",
"src": "840:23:8"
},
{
"kind": "number",
"nativeSrc": "865:2:8",
"nodeType": "YulLiteral",
"src": "865:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "836:3:8",
"nodeType": "YulIdentifier",
"src": "836:3:8"
},
"nativeSrc": "836:32:8",
"nodeType": "YulFunctionCall",
"src": "836:32:8"
},
"nativeSrc": "833:119:8",
"nodeType": "YulIf",
"src": "833:119:8"
},
{
"nativeSrc": "962:116:8",
"nodeType": "YulBlock",
"src": "962:116:8",
"statements": [
{
"nativeSrc": "977:15:8",
"nodeType": "YulVariableDeclaration",
"src": "977:15:8",
"value": {
"kind": "number",
"nativeSrc": "991:1:8",
"nodeType": "YulLiteral",
"src": "991:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "981:6:8",
"nodeType": "YulTypedName",
"src": "981:6:8",
"type": ""
}
]
},
{
"nativeSrc": "1006:62:8",
"nodeType": "YulAssignment",
"src": "1006:62:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1040:9:8",
"nodeType": "YulIdentifier",
"src": "1040:9:8"
},
{
"name": "offset",
"nativeSrc": "1051:6:8",
"nodeType": "YulIdentifier",
"src": "1051:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1036:3:8",
"nodeType": "YulIdentifier",
"src": "1036:3:8"
},
"nativeSrc": "1036:22:8",
"nodeType": "YulFunctionCall",
"src": "1036:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "1060:7:8",
"nodeType": "YulIdentifier",
"src": "1060:7:8"
}
],
"functionName": {
"name": "abi_decode_t_bytes4",
"nativeSrc": "1016:19:8",
"nodeType": "YulIdentifier",
"src": "1016:19:8"
},
"nativeSrc": "1016:52:8",
"nodeType": "YulFunctionCall",
"src": "1016:52:8"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "1006:6:8",
"nodeType": "YulIdentifier",
"src": "1006:6:8"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes4",
"nativeSrc": "758:327:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "793:9:8",
"nodeType": "YulTypedName",
"src": "793:9:8",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "804:7:8",
"nodeType": "YulTypedName",
"src": "804:7:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "816:6:8",
"nodeType": "YulTypedName",
"src": "816:6:8",
"type": ""
}
],
"src": "758:327:8"
},
{
"body": {
"nativeSrc": "1133:48:8",
"nodeType": "YulBlock",
"src": "1133:48:8",
"statements": [
{
"nativeSrc": "1143:32:8",
"nodeType": "YulAssignment",
"src": "1143:32:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "1168:5:8",
"nodeType": "YulIdentifier",
"src": "1168:5:8"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "1161:6:8",
"nodeType": "YulIdentifier",
"src": "1161:6:8"
},
"nativeSrc": "1161:13:8",
"nodeType": "YulFunctionCall",
"src": "1161:13:8"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "1154:6:8",
"nodeType": "YulIdentifier",
"src": "1154:6:8"
},
"nativeSrc": "1154:21:8",
"nodeType": "YulFunctionCall",
"src": "1154:21:8"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1143:7:8",
"nodeType": "YulIdentifier",
"src": "1143:7:8"
}
]
}
]
},
"name": "cleanup_t_bool",
"nativeSrc": "1091:90:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1115:5:8",
"nodeType": "YulTypedName",
"src": "1115:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1125:7:8",
"nodeType": "YulTypedName",
"src": "1125:7:8",
"type": ""
}
],
"src": "1091:90:8"
},
{
"body": {
"nativeSrc": "1246:50:8",
"nodeType": "YulBlock",
"src": "1246:50:8",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "1263:3:8",
"nodeType": "YulIdentifier",
"src": "1263:3:8"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "1283:5:8",
"nodeType": "YulIdentifier",
"src": "1283:5:8"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nativeSrc": "1268:14:8",
"nodeType": "YulIdentifier",
"src": "1268:14:8"
},
"nativeSrc": "1268:21:8",
"nodeType": "YulFunctionCall",
"src": "1268:21:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1256:6:8",
"nodeType": "YulIdentifier",
"src": "1256:6:8"
},
"nativeSrc": "1256:34:8",
"nodeType": "YulFunctionCall",
"src": "1256:34:8"
},
"nativeSrc": "1256:34:8",
"nodeType": "YulExpressionStatement",
"src": "1256:34:8"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "1187:109:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1234:5:8",
"nodeType": "YulTypedName",
"src": "1234:5:8",
"type": ""
},
{
"name": "pos",
"nativeSrc": "1241:3:8",
"nodeType": "YulTypedName",
"src": "1241:3:8",
"type": ""
}
],
"src": "1187:109:8"
},
{
"body": {
"nativeSrc": "1394:118:8",
"nodeType": "YulBlock",
"src": "1394:118:8",
"statements": [
{
"nativeSrc": "1404:26:8",
"nodeType": "YulAssignment",
"src": "1404:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "1416:9:8",
"nodeType": "YulIdentifier",
"src": "1416:9:8"
},
{
"kind": "number",
"nativeSrc": "1427:2:8",
"nodeType": "YulLiteral",
"src": "1427:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1412:3:8",
"nodeType": "YulIdentifier",
"src": "1412:3:8"
},
"nativeSrc": "1412:18:8",
"nodeType": "YulFunctionCall",
"src": "1412:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1404:4:8",
"nodeType": "YulIdentifier",
"src": "1404:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "1478:6:8",
"nodeType": "YulIdentifier",
"src": "1478:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1491:9:8",
"nodeType": "YulIdentifier",
"src": "1491:9:8"
},
{
"kind": "number",
"nativeSrc": "1502:1:8",
"nodeType": "YulLiteral",
"src": "1502:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1487:3:8",
"nodeType": "YulIdentifier",
"src": "1487:3:8"
},
"nativeSrc": "1487:17:8",
"nodeType": "YulFunctionCall",
"src": "1487:17:8"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "1440:37:8",
"nodeType": "YulIdentifier",
"src": "1440:37:8"
},
"nativeSrc": "1440:65:8",
"nodeType": "YulFunctionCall",
"src": "1440:65:8"
},
"nativeSrc": "1440:65:8",
"nodeType": "YulExpressionStatement",
"src": "1440:65:8"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nativeSrc": "1302:210:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1366:9:8",
"nodeType": "YulTypedName",
"src": "1366:9:8",
"type": ""
},
{
"name": "value0",
"nativeSrc": "1378:6:8",
"nodeType": "YulTypedName",
"src": "1378:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "1389:4:8",
"nodeType": "YulTypedName",
"src": "1389:4:8",
"type": ""
}
],
"src": "1302:210:8"
},
{
"body": {
"nativeSrc": "1563:81:8",
"nodeType": "YulBlock",
"src": "1563:81:8",
"statements": [
{
"nativeSrc": "1573:65:8",
"nodeType": "YulAssignment",
"src": "1573:65:8",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1588:5:8",
"nodeType": "YulIdentifier",
"src": "1588:5:8"
},
{
"kind": "number",
"nativeSrc": "1595:42:8",
"nodeType": "YulLiteral",
"src": "1595:42:8",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "1584:3:8",
"nodeType": "YulIdentifier",
"src": "1584:3:8"
},
"nativeSrc": "1584:54:8",
"nodeType": "YulFunctionCall",
"src": "1584:54:8"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1573:7:8",
"nodeType": "YulIdentifier",
"src": "1573:7:8"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nativeSrc": "1518:126:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1545:5:8",
"nodeType": "YulTypedName",
"src": "1545:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1555:7:8",
"nodeType": "YulTypedName",
"src": "1555:7:8",
"type": ""
}
],
"src": "1518:126:8"
},
{
"body": {
"nativeSrc": "1695:51:8",
"nodeType": "YulBlock",
"src": "1695:51:8",
"statements": [
{
"nativeSrc": "1705:35:8",
"nodeType": "YulAssignment",
"src": "1705:35:8",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1734:5:8",
"nodeType": "YulIdentifier",
"src": "1734:5:8"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "1716:17:8",
"nodeType": "YulIdentifier",
"src": "1716:17:8"
},
"nativeSrc": "1716:24:8",
"nodeType": "YulFunctionCall",
"src": "1716:24:8"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1705:7:8",
"nodeType": "YulIdentifier",
"src": "1705:7:8"
}
]
}
]
},
"name": "cleanup_t_address",
"nativeSrc": "1650:96:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1677:5:8",
"nodeType": "YulTypedName",
"src": "1677:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1687:7:8",
"nodeType": "YulTypedName",
"src": "1687:7:8",
"type": ""
}
],
"src": "1650:96:8"
},
{
"body": {
"nativeSrc": "1795:79:8",
"nodeType": "YulBlock",
"src": "1795:79:8",
"statements": [
{
"body": {
"nativeSrc": "1852:16:8",
"nodeType": "YulBlock",
"src": "1852:16:8",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1861:1:8",
"nodeType": "YulLiteral",
"src": "1861:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1864:1:8",
"nodeType": "YulLiteral",
"src": "1864:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1854:6:8",
"nodeType": "YulIdentifier",
"src": "1854:6:8"
},
"nativeSrc": "1854:12:8",
"nodeType": "YulFunctionCall",
"src": "1854:12:8"
},
"nativeSrc": "1854:12:8",
"nodeType": "YulExpressionStatement",
"src": "1854:12:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "1818:5:8",
"nodeType": "YulIdentifier",
"src": "1818:5:8"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "1843:5:8",
"nodeType": "YulIdentifier",
"src": "1843:5:8"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "1825:17:8",
"nodeType": "YulIdentifier",
"src": "1825:17:8"
},
"nativeSrc": "1825:24:8",
"nodeType": "YulFunctionCall",
"src": "1825:24:8"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "1815:2:8",
"nodeType": "YulIdentifier",
"src": "1815:2:8"
},
"nativeSrc": "1815:35:8",
"nodeType": "YulFunctionCall",
"src": "1815:35:8"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "1808:6:8",
"nodeType": "YulIdentifier",
"src": "1808:6:8"
},
"nativeSrc": "1808:43:8",
"nodeType": "YulFunctionCall",
"src": "1808:43:8"
},
"nativeSrc": "1805:63:8",
"nodeType": "YulIf",
"src": "1805:63:8"
}
]
},
"name": "validator_revert_t_address",
"nativeSrc": "1752:122:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1788:5:8",
"nodeType": "YulTypedName",
"src": "1788:5:8",
"type": ""
}
],
"src": "1752:122:8"
},
{
"body": {
"nativeSrc": "1932:87:8",
"nodeType": "YulBlock",
"src": "1932:87:8",
"statements": [
{
"nativeSrc": "1942:29:8",
"nodeType": "YulAssignment",
"src": "1942:29:8",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "1964:6:8",
"nodeType": "YulIdentifier",
"src": "1964:6:8"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "1951:12:8",
"nodeType": "YulIdentifier",
"src": "1951:12:8"
},
"nativeSrc": "1951:20:8",
"nodeType": "YulFunctionCall",
"src": "1951:20:8"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "1942:5:8",
"nodeType": "YulIdentifier",
"src": "1942:5:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "2007:5:8",
"nodeType": "YulIdentifier",
"src": "2007:5:8"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nativeSrc": "1980:26:8",
"nodeType": "YulIdentifier",
"src": "1980:26:8"
},
"nativeSrc": "1980:33:8",
"nodeType": "YulFunctionCall",
"src": "1980:33:8"
},
"nativeSrc": "1980:33:8",
"nodeType": "YulExpressionStatement",
"src": "1980:33:8"
}
]
},
"name": "abi_decode_t_address",
"nativeSrc": "1880:139:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "1910:6:8",
"nodeType": "YulTypedName",
"src": "1910:6:8",
"type": ""
},
{
"name": "end",
"nativeSrc": "1918:3:8",
"nodeType": "YulTypedName",
"src": "1918:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "1926:5:8",
"nodeType": "YulTypedName",
"src": "1926:5:8",
"type": ""
}
],
"src": "1880:139:8"
},
{
"body": {
"nativeSrc": "2114:28:8",
"nodeType": "YulBlock",
"src": "2114:28:8",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2131:1:8",
"nodeType": "YulLiteral",
"src": "2131:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2134:1:8",
"nodeType": "YulLiteral",
"src": "2134:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2124:6:8",
"nodeType": "YulIdentifier",
"src": "2124:6:8"
},
"nativeSrc": "2124:12:8",
"nodeType": "YulFunctionCall",
"src": "2124:12:8"
},
"nativeSrc": "2124:12:8",
"nodeType": "YulExpressionStatement",
"src": "2124:12:8"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "2025:117:8",
"nodeType": "YulFunctionDefinition",
"src": "2025:117:8"
},
{
"body": {
"nativeSrc": "2237:28:8",
"nodeType": "YulBlock",
"src": "2237:28:8",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2254:1:8",
"nodeType": "YulLiteral",
"src": "2254:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2257:1:8",
"nodeType": "YulLiteral",
"src": "2257:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2247:6:8",
"nodeType": "YulIdentifier",
"src": "2247:6:8"
},
"nativeSrc": "2247:12:8",
"nodeType": "YulFunctionCall",
"src": "2247:12:8"
},
"nativeSrc": "2247:12:8",
"nodeType": "YulExpressionStatement",
"src": "2247:12:8"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nativeSrc": "2148:117:8",
"nodeType": "YulFunctionDefinition",
"src": "2148:117:8"
},
{
"body": {
"nativeSrc": "2319:54:8",
"nodeType": "YulBlock",
"src": "2319:54:8",
"statements": [
{
"nativeSrc": "2329:38:8",
"nodeType": "YulAssignment",
"src": "2329:38:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "2347:5:8",
"nodeType": "YulIdentifier",
"src": "2347:5:8"
},
{
"kind": "number",
"nativeSrc": "2354:2:8",
"nodeType": "YulLiteral",
"src": "2354:2:8",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2343:3:8",
"nodeType": "YulIdentifier",
"src": "2343:3:8"
},
"nativeSrc": "2343:14:8",
"nodeType": "YulFunctionCall",
"src": "2343:14:8"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "2363:2:8",
"nodeType": "YulLiteral",
"src": "2363:2:8",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nativeSrc": "2359:3:8",
"nodeType": "YulIdentifier",
"src": "2359:3:8"
},
"nativeSrc": "2359:7:8",
"nodeType": "YulFunctionCall",
"src": "2359:7:8"
}
],
"functionName": {
"name": "and",
"nativeSrc": "2339:3:8",
"nodeType": "YulIdentifier",
"src": "2339:3:8"
},
"nativeSrc": "2339:28:8",
"nodeType": "YulFunctionCall",
"src": "2339:28:8"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "2329:6:8",
"nodeType": "YulIdentifier",
"src": "2329:6:8"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nativeSrc": "2271:102:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2302:5:8",
"nodeType": "YulTypedName",
"src": "2302:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "2312:6:8",
"nodeType": "YulTypedName",
"src": "2312:6:8",
"type": ""
}
],
"src": "2271:102:8"
},
{
"body": {
"nativeSrc": "2407:152:8",
"nodeType": "YulBlock",
"src": "2407:152:8",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2424:1:8",
"nodeType": "YulLiteral",
"src": "2424:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2427:77:8",
"nodeType": "YulLiteral",
"src": "2427:77:8",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "2417:6:8",
"nodeType": "YulIdentifier",
"src": "2417:6:8"
},
"nativeSrc": "2417:88:8",
"nodeType": "YulFunctionCall",
"src": "2417:88:8"
},
"nativeSrc": "2417:88:8",
"nodeType": "YulExpressionStatement",
"src": "2417:88:8"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2521:1:8",
"nodeType": "YulLiteral",
"src": "2521:1:8",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "2524:4:8",
"nodeType": "YulLiteral",
"src": "2524:4:8",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "2514:6:8",
"nodeType": "YulIdentifier",
"src": "2514:6:8"
},
"nativeSrc": "2514:15:8",
"nodeType": "YulFunctionCall",
"src": "2514:15:8"
},
"nativeSrc": "2514:15:8",
"nodeType": "YulExpressionStatement",
"src": "2514:15:8"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2545:1:8",
"nodeType": "YulLiteral",
"src": "2545:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2548:4:8",
"nodeType": "YulLiteral",
"src": "2548:4:8",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2538:6:8",
"nodeType": "YulIdentifier",
"src": "2538:6:8"
},
"nativeSrc": "2538:15:8",
"nodeType": "YulFunctionCall",
"src": "2538:15:8"
},
"nativeSrc": "2538:15:8",
"nodeType": "YulExpressionStatement",
"src": "2538:15:8"
}
]
},
"name": "panic_error_0x41",
"nativeSrc": "2379:180:8",
"nodeType": "YulFunctionDefinition",
"src": "2379:180:8"
},
{
"body": {
"nativeSrc": "2608:238:8",
"nodeType": "YulBlock",
"src": "2608:238:8",
"statements": [
{
"nativeSrc": "2618:58:8",
"nodeType": "YulVariableDeclaration",
"src": "2618:58:8",
"value": {
"arguments": [
{
"name": "memPtr",
"nativeSrc": "2640:6:8",
"nodeType": "YulIdentifier",
"src": "2640:6:8"
},
{
"arguments": [
{
"name": "size",
"nativeSrc": "2670:4:8",
"nodeType": "YulIdentifier",
"src": "2670:4:8"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "2648:21:8",
"nodeType": "YulIdentifier",
"src": "2648:21:8"
},
"nativeSrc": "2648:27:8",
"nodeType": "YulFunctionCall",
"src": "2648:27:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2636:3:8",
"nodeType": "YulIdentifier",
"src": "2636:3:8"
},
"nativeSrc": "2636:40:8",
"nodeType": "YulFunctionCall",
"src": "2636:40:8"
},
"variables": [
{
"name": "newFreePtr",
"nativeSrc": "2622:10:8",
"nodeType": "YulTypedName",
"src": "2622:10:8",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "2787:22:8",
"nodeType": "YulBlock",
"src": "2787:22:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "2789:16:8",
"nodeType": "YulIdentifier",
"src": "2789:16:8"
},
"nativeSrc": "2789:18:8",
"nodeType": "YulFunctionCall",
"src": "2789:18:8"
},
"nativeSrc": "2789:18:8",
"nodeType": "YulExpressionStatement",
"src": "2789:18:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nativeSrc": "2730:10:8",
"nodeType": "YulIdentifier",
"src": "2730:10:8"
},
{
"kind": "number",
"nativeSrc": "2742:18:8",
"nodeType": "YulLiteral",
"src": "2742:18:8",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "2727:2:8",
"nodeType": "YulIdentifier",
"src": "2727:2:8"
},
"nativeSrc": "2727:34:8",
"nodeType": "YulFunctionCall",
"src": "2727:34:8"
},
{
"arguments": [
{
"name": "newFreePtr",
"nativeSrc": "2766:10:8",
"nodeType": "YulIdentifier",
"src": "2766:10:8"
},
{
"name": "memPtr",
"nativeSrc": "2778:6:8",
"nodeType": "YulIdentifier",
"src": "2778:6:8"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "2763:2:8",
"nodeType": "YulIdentifier",
"src": "2763:2:8"
},
"nativeSrc": "2763:22:8",
"nodeType": "YulFunctionCall",
"src": "2763:22:8"
}
],
"functionName": {
"name": "or",
"nativeSrc": "2724:2:8",
"nodeType": "YulIdentifier",
"src": "2724:2:8"
},
"nativeSrc": "2724:62:8",
"nodeType": "YulFunctionCall",
"src": "2724:62:8"
},
"nativeSrc": "2721:88:8",
"nodeType": "YulIf",
"src": "2721:88:8"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2825:2:8",
"nodeType": "YulLiteral",
"src": "2825:2:8",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nativeSrc": "2829:10:8",
"nodeType": "YulIdentifier",
"src": "2829:10:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "2818:6:8",
"nodeType": "YulIdentifier",
"src": "2818:6:8"
},
"nativeSrc": "2818:22:8",
"nodeType": "YulFunctionCall",
"src": "2818:22:8"
},
"nativeSrc": "2818:22:8",
"nodeType": "YulExpressionStatement",
"src": "2818:22:8"
}
]
},
"name": "finalize_allocation",
"nativeSrc": "2565:281:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "2594:6:8",
"nodeType": "YulTypedName",
"src": "2594:6:8",
"type": ""
},
{
"name": "size",
"nativeSrc": "2602:4:8",
"nodeType": "YulTypedName",
"src": "2602:4:8",
"type": ""
}
],
"src": "2565:281:8"
},
{
"body": {
"nativeSrc": "2893:88:8",
"nodeType": "YulBlock",
"src": "2893:88:8",
"statements": [
{
"nativeSrc": "2903:30:8",
"nodeType": "YulAssignment",
"src": "2903:30:8",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nativeSrc": "2913:18:8",
"nodeType": "YulIdentifier",
"src": "2913:18:8"
},
"nativeSrc": "2913:20:8",
"nodeType": "YulFunctionCall",
"src": "2913:20:8"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "2903:6:8",
"nodeType": "YulIdentifier",
"src": "2903:6:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nativeSrc": "2962:6:8",
"nodeType": "YulIdentifier",
"src": "2962:6:8"
},
{
"name": "size",
"nativeSrc": "2970:4:8",
"nodeType": "YulIdentifier",
"src": "2970:4:8"
}
],
"functionName": {
"name": "finalize_allocation",
"nativeSrc": "2942:19:8",
"nodeType": "YulIdentifier",
"src": "2942:19:8"
},
"nativeSrc": "2942:33:8",
"nodeType": "YulFunctionCall",
"src": "2942:33:8"
},
"nativeSrc": "2942:33:8",
"nodeType": "YulExpressionStatement",
"src": "2942:33:8"
}
]
},
"name": "allocate_memory",
"nativeSrc": "2852:129:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nativeSrc": "2877:4:8",
"nodeType": "YulTypedName",
"src": "2877:4:8",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "2886:6:8",
"nodeType": "YulTypedName",
"src": "2886:6:8",
"type": ""
}
],
"src": "2852:129:8"
},
{
"body": {
"nativeSrc": "3054:241:8",
"nodeType": "YulBlock",
"src": "3054:241:8",
"statements": [
{
"body": {
"nativeSrc": "3159:22:8",
"nodeType": "YulBlock",
"src": "3159:22:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "3161:16:8",
"nodeType": "YulIdentifier",
"src": "3161:16:8"
},
"nativeSrc": "3161:18:8",
"nodeType": "YulFunctionCall",
"src": "3161:18:8"
},
"nativeSrc": "3161:18:8",
"nodeType": "YulExpressionStatement",
"src": "3161:18:8"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nativeSrc": "3131:6:8",
"nodeType": "YulIdentifier",
"src": "3131:6:8"
},
{
"kind": "number",
"nativeSrc": "3139:18:8",
"nodeType": "YulLiteral",
"src": "3139:18:8",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "3128:2:8",
"nodeType": "YulIdentifier",
"src": "3128:2:8"
},
"nativeSrc": "3128:30:8",
"nodeType": "YulFunctionCall",
"src": "3128:30:8"
},
"nativeSrc": "3125:56:8",
"nodeType": "YulIf",
"src": "3125:56:8"
},
{
"nativeSrc": "3191:37:8",
"nodeType": "YulAssignment",
"src": "3191:37:8",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "3221:6:8",
"nodeType": "YulIdentifier",
"src": "3221:6:8"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "3199:21:8",
"nodeType": "YulIdentifier",
"src": "3199:21:8"
},
"nativeSrc": "3199:29:8",
"nodeType": "YulFunctionCall",
"src": "3199:29:8"
},
"variableNames": [
{
"name": "size",
"nativeSrc": "3191:4:8",
"nodeType": "YulIdentifier",
"src": "3191:4:8"
}
]
},
{
"nativeSrc": "3265:23:8",
"nodeType": "YulAssignment",
"src": "3265:23:8",
"value": {
"arguments": [
{
"name": "size",
"nativeSrc": "3277:4:8",
"nodeType": "YulIdentifier",
"src": "3277:4:8"
},
{
"kind": "number",
"nativeSrc": "3283:4:8",
"nodeType": "YulLiteral",
"src": "3283:4:8",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3273:3:8",
"nodeType": "YulIdentifier",
"src": "3273:3:8"
},
"nativeSrc": "3273:15:8",
"nodeType": "YulFunctionCall",
"src": "3273:15:8"
},
"variableNames": [
{
"name": "size",
"nativeSrc": "3265:4:8",
"nodeType": "YulIdentifier",
"src": "3265:4:8"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nativeSrc": "2987:308:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nativeSrc": "3038:6:8",
"nodeType": "YulTypedName",
"src": "3038:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nativeSrc": "3049:4:8",
"nodeType": "YulTypedName",
"src": "3049:4:8",
"type": ""
}
],
"src": "2987:308:8"
},
{
"body": {
"nativeSrc": "3365:84:8",
"nodeType": "YulBlock",
"src": "3365:84:8",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nativeSrc": "3389:3:8",
"nodeType": "YulIdentifier",
"src": "3389:3:8"
},
{
"name": "src",
"nativeSrc": "3394:3:8",
"nodeType": "YulIdentifier",
"src": "3394:3:8"
},
{
"name": "length",
"nativeSrc": "3399:6:8",
"nodeType": "YulIdentifier",
"src": "3399:6:8"
}
],
"functionName": {
"name": "calldatacopy",
"nativeSrc": "3376:12:8",
"nodeType": "YulIdentifier",
"src": "3376:12:8"
},
"nativeSrc": "3376:30:8",
"nodeType": "YulFunctionCall",
"src": "3376:30:8"
},
"nativeSrc": "3376:30:8",
"nodeType": "YulExpressionStatement",
"src": "3376:30:8"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "3426:3:8",
"nodeType": "YulIdentifier",
"src": "3426:3:8"
},
{
"name": "length",
"nativeSrc": "3431:6:8",
"nodeType": "YulIdentifier",
"src": "3431:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3422:3:8",
"nodeType": "YulIdentifier",
"src": "3422:3:8"
},
"nativeSrc": "3422:16:8",
"nodeType": "YulFunctionCall",
"src": "3422:16:8"
},
{
"kind": "number",
"nativeSrc": "3440:1:8",
"nodeType": "YulLiteral",
"src": "3440:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "3415:6:8",
"nodeType": "YulIdentifier",
"src": "3415:6:8"
},
"nativeSrc": "3415:27:8",
"nodeType": "YulFunctionCall",
"src": "3415:27:8"
},
"nativeSrc": "3415:27:8",
"nodeType": "YulExpressionStatement",
"src": "3415:27:8"
}
]
},
"name": "copy_calldata_to_memory_with_cleanup",
"nativeSrc": "3301:148:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "3347:3:8",
"nodeType": "YulTypedName",
"src": "3347:3:8",
"type": ""
},
{
"name": "dst",
"nativeSrc": "3352:3:8",
"nodeType": "YulTypedName",
"src": "3352:3:8",
"type": ""
},
{
"name": "length",
"nativeSrc": "3357:6:8",
"nodeType": "YulTypedName",
"src": "3357:6:8",
"type": ""
}
],
"src": "3301:148:8"
},
{
"body": {
"nativeSrc": "3539:341:8",
"nodeType": "YulBlock",
"src": "3539:341:8",
"statements": [
{
"nativeSrc": "3549:75:8",
"nodeType": "YulAssignment",
"src": "3549:75:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nativeSrc": "3616:6:8",
"nodeType": "YulIdentifier",
"src": "3616:6:8"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nativeSrc": "3574:41:8",
"nodeType": "YulIdentifier",
"src": "3574:41:8"
},
"nativeSrc": "3574:49:8",
"nodeType": "YulFunctionCall",
"src": "3574:49:8"
}
],
"functionName": {
"name": "allocate_memory",
"nativeSrc": "3558:15:8",
"nodeType": "YulIdentifier",
"src": "3558:15:8"
},
"nativeSrc": "3558:66:8",
"nodeType": "YulFunctionCall",
"src": "3558:66:8"
},
"variableNames": [
{
"name": "array",
"nativeSrc": "3549:5:8",
"nodeType": "YulIdentifier",
"src": "3549:5:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nativeSrc": "3640:5:8",
"nodeType": "YulIdentifier",
"src": "3640:5:8"
},
{
"name": "length",
"nativeSrc": "3647:6:8",
"nodeType": "YulIdentifier",
"src": "3647:6:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "3633:6:8",
"nodeType": "YulIdentifier",
"src": "3633:6:8"
},
"nativeSrc": "3633:21:8",
"nodeType": "YulFunctionCall",
"src": "3633:21:8"
},
"nativeSrc": "3633:21:8",
"nodeType": "YulExpressionStatement",
"src": "3633:21:8"
},
{
"nativeSrc": "3663:27:8",
"nodeType": "YulVariableDeclaration",
"src": "3663:27:8",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "3678:5:8",
"nodeType": "YulIdentifier",
"src": "3678:5:8"
},
{
"kind": "number",
"nativeSrc": "3685:4:8",
"nodeType": "YulLiteral",
"src": "3685:4:8",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3674:3:8",
"nodeType": "YulIdentifier",
"src": "3674:3:8"
},
"nativeSrc": "3674:16:8",
"nodeType": "YulFunctionCall",
"src": "3674:16:8"
},
"variables": [
{
"name": "dst",
"nativeSrc": "3667:3:8",
"nodeType": "YulTypedName",
"src": "3667:3:8",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "3728:83:8",
"nodeType": "YulBlock",
"src": "3728:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nativeSrc": "3730:77:8",
"nodeType": "YulIdentifier",
"src": "3730:77:8"
},
"nativeSrc": "3730:79:8",
"nodeType": "YulFunctionCall",
"src": "3730:79:8"
},
"nativeSrc": "3730:79:8",
"nodeType": "YulExpressionStatement",
"src": "3730:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "3709:3:8",
"nodeType": "YulIdentifier",
"src": "3709:3:8"
},
{
"name": "length",
"nativeSrc": "3714:6:8",
"nodeType": "YulIdentifier",
"src": "3714:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3705:3:8",
"nodeType": "YulIdentifier",
"src": "3705:3:8"
},
"nativeSrc": "3705:16:8",
"nodeType": "YulFunctionCall",
"src": "3705:16:8"
},
{
"name": "end",
"nativeSrc": "3723:3:8",
"nodeType": "YulIdentifier",
"src": "3723:3:8"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "3702:2:8",
"nodeType": "YulIdentifier",
"src": "3702:2:8"
},
"nativeSrc": "3702:25:8",
"nodeType": "YulFunctionCall",
"src": "3702:25:8"
},
"nativeSrc": "3699:112:8",
"nodeType": "YulIf",
"src": "3699:112:8"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nativeSrc": "3857:3:8",
"nodeType": "YulIdentifier",
"src": "3857:3:8"
},
{
"name": "dst",
"nativeSrc": "3862:3:8",
"nodeType": "YulIdentifier",
"src": "3862:3:8"
},
{
"name": "length",
"nativeSrc": "3867:6:8",
"nodeType": "YulIdentifier",
"src": "3867:6:8"
}
],
"functionName": {
"name": "copy_calldata_to_memory_with_cleanup",
"nativeSrc": "3820:36:8",
"nodeType": "YulIdentifier",
"src": "3820:36:8"
},
"nativeSrc": "3820:54:8",
"nodeType": "YulFunctionCall",
"src": "3820:54:8"
},
"nativeSrc": "3820:54:8",
"nodeType": "YulExpressionStatement",
"src": "3820:54:8"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr",
"nativeSrc": "3455:425:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "3512:3:8",
"nodeType": "YulTypedName",
"src": "3512:3:8",
"type": ""
},
{
"name": "length",
"nativeSrc": "3517:6:8",
"nodeType": "YulTypedName",
"src": "3517:6:8",
"type": ""
},
{
"name": "end",
"nativeSrc": "3525:3:8",
"nodeType": "YulTypedName",
"src": "3525:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nativeSrc": "3533:5:8",
"nodeType": "YulTypedName",
"src": "3533:5:8",
"type": ""
}
],
"src": "3455:425:8"
},
{
"body": {
"nativeSrc": "3962:278:8",
"nodeType": "YulBlock",
"src": "3962:278:8",
"statements": [
{
"body": {
"nativeSrc": "4011:83:8",
"nodeType": "YulBlock",
"src": "4011:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "4013:77:8",
"nodeType": "YulIdentifier",
"src": "4013:77:8"
},
"nativeSrc": "4013:79:8",
"nodeType": "YulFunctionCall",
"src": "4013:79:8"
},
"nativeSrc": "4013:79:8",
"nodeType": "YulExpressionStatement",
"src": "4013:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "3990:6:8",
"nodeType": "YulIdentifier",
"src": "3990:6:8"
},
{
"kind": "number",
"nativeSrc": "3998:4:8",
"nodeType": "YulLiteral",
"src": "3998:4:8",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3986:3:8",
"nodeType": "YulIdentifier",
"src": "3986:3:8"
},
"nativeSrc": "3986:17:8",
"nodeType": "YulFunctionCall",
"src": "3986:17:8"
},
{
"name": "end",
"nativeSrc": "4005:3:8",
"nodeType": "YulIdentifier",
"src": "4005:3:8"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "3982:3:8",
"nodeType": "YulIdentifier",
"src": "3982:3:8"
},
"nativeSrc": "3982:27:8",
"nodeType": "YulFunctionCall",
"src": "3982:27:8"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "3975:6:8",
"nodeType": "YulIdentifier",
"src": "3975:6:8"
},
"nativeSrc": "3975:35:8",
"nodeType": "YulFunctionCall",
"src": "3975:35:8"
},
"nativeSrc": "3972:122:8",
"nodeType": "YulIf",
"src": "3972:122:8"
},
{
"nativeSrc": "4103:34:8",
"nodeType": "YulVariableDeclaration",
"src": "4103:34:8",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "4130:6:8",
"nodeType": "YulIdentifier",
"src": "4130:6:8"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "4117:12:8",
"nodeType": "YulIdentifier",
"src": "4117:12:8"
},
"nativeSrc": "4117:20:8",
"nodeType": "YulFunctionCall",
"src": "4117:20:8"
},
"variables": [
{
"name": "length",
"nativeSrc": "4107:6:8",
"nodeType": "YulTypedName",
"src": "4107:6:8",
"type": ""
}
]
},
{
"nativeSrc": "4146:88:8",
"nodeType": "YulAssignment",
"src": "4146:88:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "4207:6:8",
"nodeType": "YulIdentifier",
"src": "4207:6:8"
},
{
"kind": "number",
"nativeSrc": "4215:4:8",
"nodeType": "YulLiteral",
"src": "4215:4:8",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4203:3:8",
"nodeType": "YulIdentifier",
"src": "4203:3:8"
},
"nativeSrc": "4203:17:8",
"nodeType": "YulFunctionCall",
"src": "4203:17:8"
},
{
"name": "length",
"nativeSrc": "4222:6:8",
"nodeType": "YulIdentifier",
"src": "4222:6:8"
},
{
"name": "end",
"nativeSrc": "4230:3:8",
"nodeType": "YulIdentifier",
"src": "4230:3:8"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr",
"nativeSrc": "4155:47:8",
"nodeType": "YulIdentifier",
"src": "4155:47:8"
},
"nativeSrc": "4155:79:8",
"nodeType": "YulFunctionCall",
"src": "4155:79:8"
},
"variableNames": [
{
"name": "array",
"nativeSrc": "4146:5:8",
"nodeType": "YulIdentifier",
"src": "4146:5:8"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr",
"nativeSrc": "3900:340:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "3940:6:8",
"nodeType": "YulTypedName",
"src": "3940:6:8",
"type": ""
},
{
"name": "end",
"nativeSrc": "3948:3:8",
"nodeType": "YulTypedName",
"src": "3948:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nativeSrc": "3956:5:8",
"nodeType": "YulTypedName",
"src": "3956:5:8",
"type": ""
}
],
"src": "3900:340:8"
},
{
"body": {
"nativeSrc": "4339:561:8",
"nodeType": "YulBlock",
"src": "4339:561:8",
"statements": [
{
"body": {
"nativeSrc": "4385:83:8",
"nodeType": "YulBlock",
"src": "4385:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "4387:77:8",
"nodeType": "YulIdentifier",
"src": "4387:77:8"
},
"nativeSrc": "4387:79:8",
"nodeType": "YulFunctionCall",
"src": "4387:79:8"
},
"nativeSrc": "4387:79:8",
"nodeType": "YulExpressionStatement",
"src": "4387:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "4360:7:8",
"nodeType": "YulIdentifier",
"src": "4360:7:8"
},
{
"name": "headStart",
"nativeSrc": "4369:9:8",
"nodeType": "YulIdentifier",
"src": "4369:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "4356:3:8",
"nodeType": "YulIdentifier",
"src": "4356:3:8"
},
"nativeSrc": "4356:23:8",
"nodeType": "YulFunctionCall",
"src": "4356:23:8"
},
{
"kind": "number",
"nativeSrc": "4381:2:8",
"nodeType": "YulLiteral",
"src": "4381:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "4352:3:8",
"nodeType": "YulIdentifier",
"src": "4352:3:8"
},
"nativeSrc": "4352:32:8",
"nodeType": "YulFunctionCall",
"src": "4352:32:8"
},
"nativeSrc": "4349:119:8",
"nodeType": "YulIf",
"src": "4349:119:8"
},
{
"nativeSrc": "4478:117:8",
"nodeType": "YulBlock",
"src": "4478:117:8",
"statements": [
{
"nativeSrc": "4493:15:8",
"nodeType": "YulVariableDeclaration",
"src": "4493:15:8",
"value": {
"kind": "number",
"nativeSrc": "4507:1:8",
"nodeType": "YulLiteral",
"src": "4507:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4497:6:8",
"nodeType": "YulTypedName",
"src": "4497:6:8",
"type": ""
}
]
},
{
"nativeSrc": "4522:63:8",
"nodeType": "YulAssignment",
"src": "4522:63:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4557:9:8",
"nodeType": "YulIdentifier",
"src": "4557:9:8"
},
{
"name": "offset",
"nativeSrc": "4568:6:8",
"nodeType": "YulIdentifier",
"src": "4568:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4553:3:8",
"nodeType": "YulIdentifier",
"src": "4553:3:8"
},
"nativeSrc": "4553:22:8",
"nodeType": "YulFunctionCall",
"src": "4553:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "4577:7:8",
"nodeType": "YulIdentifier",
"src": "4577:7:8"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "4532:20:8",
"nodeType": "YulIdentifier",
"src": "4532:20:8"
},
"nativeSrc": "4532:53:8",
"nodeType": "YulFunctionCall",
"src": "4532:53:8"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "4522:6:8",
"nodeType": "YulIdentifier",
"src": "4522:6:8"
}
]
}
]
},
{
"nativeSrc": "4605:288:8",
"nodeType": "YulBlock",
"src": "4605:288:8",
"statements": [
{
"nativeSrc": "4620:46:8",
"nodeType": "YulVariableDeclaration",
"src": "4620:46:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4651:9:8",
"nodeType": "YulIdentifier",
"src": "4651:9:8"
},
{
"kind": "number",
"nativeSrc": "4662:2:8",
"nodeType": "YulLiteral",
"src": "4662:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4647:3:8",
"nodeType": "YulIdentifier",
"src": "4647:3:8"
},
"nativeSrc": "4647:18:8",
"nodeType": "YulFunctionCall",
"src": "4647:18:8"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "4634:12:8",
"nodeType": "YulIdentifier",
"src": "4634:12:8"
},
"nativeSrc": "4634:32:8",
"nodeType": "YulFunctionCall",
"src": "4634:32:8"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4624:6:8",
"nodeType": "YulTypedName",
"src": "4624:6:8",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "4713:83:8",
"nodeType": "YulBlock",
"src": "4713:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "4715:77:8",
"nodeType": "YulIdentifier",
"src": "4715:77:8"
},
"nativeSrc": "4715:79:8",
"nodeType": "YulFunctionCall",
"src": "4715:79:8"
},
"nativeSrc": "4715:79:8",
"nodeType": "YulExpressionStatement",
"src": "4715:79:8"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "4685:6:8",
"nodeType": "YulIdentifier",
"src": "4685:6:8"
},
{
"kind": "number",
"nativeSrc": "4693:18:8",
"nodeType": "YulLiteral",
"src": "4693:18:8",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "4682:2:8",
"nodeType": "YulIdentifier",
"src": "4682:2:8"
},
"nativeSrc": "4682:30:8",
"nodeType": "YulFunctionCall",
"src": "4682:30:8"
},
"nativeSrc": "4679:117:8",
"nodeType": "YulIf",
"src": "4679:117:8"
},
{
"nativeSrc": "4810:73:8",
"nodeType": "YulAssignment",
"src": "4810:73:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4855:9:8",
"nodeType": "YulIdentifier",
"src": "4855:9:8"
},
{
"name": "offset",
"nativeSrc": "4866:6:8",
"nodeType": "YulIdentifier",
"src": "4866:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4851:3:8",
"nodeType": "YulIdentifier",
"src": "4851:3:8"
},
"nativeSrc": "4851:22:8",
"nodeType": "YulFunctionCall",
"src": "4851:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "4875:7:8",
"nodeType": "YulIdentifier",
"src": "4875:7:8"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nativeSrc": "4820:30:8",
"nodeType": "YulIdentifier",
"src": "4820:30:8"
},
"nativeSrc": "4820:63:8",
"nodeType": "YulFunctionCall",
"src": "4820:63:8"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "4810:6:8",
"nodeType": "YulIdentifier",
"src": "4810:6:8"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_string_memory_ptr",
"nativeSrc": "4246:654:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "4301:9:8",
"nodeType": "YulTypedName",
"src": "4301:9:8",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "4312:7:8",
"nodeType": "YulTypedName",
"src": "4312:7:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "4324:6:8",
"nodeType": "YulTypedName",
"src": "4324:6:8",
"type": ""
},
{
"name": "value1",
"nativeSrc": "4332:6:8",
"nodeType": "YulTypedName",
"src": "4332:6:8",
"type": ""
}
],
"src": "4246:654:8"
},
{
"body": {
"nativeSrc": "4982:433:8",
"nodeType": "YulBlock",
"src": "4982:433:8",
"statements": [
{
"body": {
"nativeSrc": "5028:83:8",
"nodeType": "YulBlock",
"src": "5028:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "5030:77:8",
"nodeType": "YulIdentifier",
"src": "5030:77:8"
},
"nativeSrc": "5030:79:8",
"nodeType": "YulFunctionCall",
"src": "5030:79:8"
},
"nativeSrc": "5030:79:8",
"nodeType": "YulExpressionStatement",
"src": "5030:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "5003:7:8",
"nodeType": "YulIdentifier",
"src": "5003:7:8"
},
{
"name": "headStart",
"nativeSrc": "5012:9:8",
"nodeType": "YulIdentifier",
"src": "5012:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "4999:3:8",
"nodeType": "YulIdentifier",
"src": "4999:3:8"
},
"nativeSrc": "4999:23:8",
"nodeType": "YulFunctionCall",
"src": "4999:23:8"
},
{
"kind": "number",
"nativeSrc": "5024:2:8",
"nodeType": "YulLiteral",
"src": "5024:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "4995:3:8",
"nodeType": "YulIdentifier",
"src": "4995:3:8"
},
"nativeSrc": "4995:32:8",
"nodeType": "YulFunctionCall",
"src": "4995:32:8"
},
"nativeSrc": "4992:119:8",
"nodeType": "YulIf",
"src": "4992:119:8"
},
{
"nativeSrc": "5121:287:8",
"nodeType": "YulBlock",
"src": "5121:287:8",
"statements": [
{
"nativeSrc": "5136:45:8",
"nodeType": "YulVariableDeclaration",
"src": "5136:45:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5167:9:8",
"nodeType": "YulIdentifier",
"src": "5167:9:8"
},
{
"kind": "number",
"nativeSrc": "5178:1:8",
"nodeType": "YulLiteral",
"src": "5178:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5163:3:8",
"nodeType": "YulIdentifier",
"src": "5163:3:8"
},
"nativeSrc": "5163:17:8",
"nodeType": "YulFunctionCall",
"src": "5163:17:8"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "5150:12:8",
"nodeType": "YulIdentifier",
"src": "5150:12:8"
},
"nativeSrc": "5150:31:8",
"nodeType": "YulFunctionCall",
"src": "5150:31:8"
},
"variables": [
{
"name": "offset",
"nativeSrc": "5140:6:8",
"nodeType": "YulTypedName",
"src": "5140:6:8",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "5228:83:8",
"nodeType": "YulBlock",
"src": "5228:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "5230:77:8",
"nodeType": "YulIdentifier",
"src": "5230:77:8"
},
"nativeSrc": "5230:79:8",
"nodeType": "YulFunctionCall",
"src": "5230:79:8"
},
"nativeSrc": "5230:79:8",
"nodeType": "YulExpressionStatement",
"src": "5230:79:8"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "5200:6:8",
"nodeType": "YulIdentifier",
"src": "5200:6:8"
},
{
"kind": "number",
"nativeSrc": "5208:18:8",
"nodeType": "YulLiteral",
"src": "5208:18:8",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "5197:2:8",
"nodeType": "YulIdentifier",
"src": "5197:2:8"
},
"nativeSrc": "5197:30:8",
"nodeType": "YulFunctionCall",
"src": "5197:30:8"
},
"nativeSrc": "5194:117:8",
"nodeType": "YulIf",
"src": "5194:117:8"
},
{
"nativeSrc": "5325:73:8",
"nodeType": "YulAssignment",
"src": "5325:73:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5370:9:8",
"nodeType": "YulIdentifier",
"src": "5370:9:8"
},
{
"name": "offset",
"nativeSrc": "5381:6:8",
"nodeType": "YulIdentifier",
"src": "5381:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5366:3:8",
"nodeType": "YulIdentifier",
"src": "5366:3:8"
},
"nativeSrc": "5366:22:8",
"nodeType": "YulFunctionCall",
"src": "5366:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "5390:7:8",
"nodeType": "YulIdentifier",
"src": "5390:7:8"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nativeSrc": "5335:30:8",
"nodeType": "YulIdentifier",
"src": "5335:30:8"
},
"nativeSrc": "5335:63:8",
"nodeType": "YulFunctionCall",
"src": "5335:63:8"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "5325:6:8",
"nodeType": "YulIdentifier",
"src": "5325:6:8"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptr",
"nativeSrc": "4906:509:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "4952:9:8",
"nodeType": "YulTypedName",
"src": "4952:9:8",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "4963:7:8",
"nodeType": "YulTypedName",
"src": "4963:7:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "4975:6:8",
"nodeType": "YulTypedName",
"src": "4975:6:8",
"type": ""
}
],
"src": "4906:509:8"
},
{
"body": {
"nativeSrc": "5486:53:8",
"nodeType": "YulBlock",
"src": "5486:53:8",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "5503:3:8",
"nodeType": "YulIdentifier",
"src": "5503:3:8"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "5526:5:8",
"nodeType": "YulIdentifier",
"src": "5526:5:8"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "5508:17:8",
"nodeType": "YulIdentifier",
"src": "5508:17:8"
},
"nativeSrc": "5508:24:8",
"nodeType": "YulFunctionCall",
"src": "5508:24:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "5496:6:8",
"nodeType": "YulIdentifier",
"src": "5496:6:8"
},
"nativeSrc": "5496:37:8",
"nodeType": "YulFunctionCall",
"src": "5496:37:8"
},
"nativeSrc": "5496:37:8",
"nodeType": "YulExpressionStatement",
"src": "5496:37:8"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "5421:118:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5474:5:8",
"nodeType": "YulTypedName",
"src": "5474:5:8",
"type": ""
},
{
"name": "pos",
"nativeSrc": "5481:3:8",
"nodeType": "YulTypedName",
"src": "5481:3:8",
"type": ""
}
],
"src": "5421:118:8"
},
{
"body": {
"nativeSrc": "5643:124:8",
"nodeType": "YulBlock",
"src": "5643:124:8",
"statements": [
{
"nativeSrc": "5653:26:8",
"nodeType": "YulAssignment",
"src": "5653:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "5665:9:8",
"nodeType": "YulIdentifier",
"src": "5665:9:8"
},
{
"kind": "number",
"nativeSrc": "5676:2:8",
"nodeType": "YulLiteral",
"src": "5676:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5661:3:8",
"nodeType": "YulIdentifier",
"src": "5661:3:8"
},
"nativeSrc": "5661:18:8",
"nodeType": "YulFunctionCall",
"src": "5661:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "5653:4:8",
"nodeType": "YulIdentifier",
"src": "5653:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "5733:6:8",
"nodeType": "YulIdentifier",
"src": "5733:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5746:9:8",
"nodeType": "YulIdentifier",
"src": "5746:9:8"
},
{
"kind": "number",
"nativeSrc": "5757:1:8",
"nodeType": "YulLiteral",
"src": "5757:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5742:3:8",
"nodeType": "YulIdentifier",
"src": "5742:3:8"
},
"nativeSrc": "5742:17:8",
"nodeType": "YulFunctionCall",
"src": "5742:17:8"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "5689:43:8",
"nodeType": "YulIdentifier",
"src": "5689:43:8"
},
"nativeSrc": "5689:71:8",
"nodeType": "YulFunctionCall",
"src": "5689:71:8"
},
"nativeSrc": "5689:71:8",
"nodeType": "YulExpressionStatement",
"src": "5689:71:8"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nativeSrc": "5545:222:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "5615:9:8",
"nodeType": "YulTypedName",
"src": "5615:9:8",
"type": ""
},
{
"name": "value0",
"nativeSrc": "5627:6:8",
"nodeType": "YulTypedName",
"src": "5627:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "5638:4:8",
"nodeType": "YulTypedName",
"src": "5638:4:8",
"type": ""
}
],
"src": "5545:222:8"
},
{
"body": {
"nativeSrc": "5839:263:8",
"nodeType": "YulBlock",
"src": "5839:263:8",
"statements": [
{
"body": {
"nativeSrc": "5885:83:8",
"nodeType": "YulBlock",
"src": "5885:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "5887:77:8",
"nodeType": "YulIdentifier",
"src": "5887:77:8"
},
"nativeSrc": "5887:79:8",
"nodeType": "YulFunctionCall",
"src": "5887:79:8"
},
"nativeSrc": "5887:79:8",
"nodeType": "YulExpressionStatement",
"src": "5887:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "5860:7:8",
"nodeType": "YulIdentifier",
"src": "5860:7:8"
},
{
"name": "headStart",
"nativeSrc": "5869:9:8",
"nodeType": "YulIdentifier",
"src": "5869:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "5856:3:8",
"nodeType": "YulIdentifier",
"src": "5856:3:8"
},
"nativeSrc": "5856:23:8",
"nodeType": "YulFunctionCall",
"src": "5856:23:8"
},
{
"kind": "number",
"nativeSrc": "5881:2:8",
"nodeType": "YulLiteral",
"src": "5881:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "5852:3:8",
"nodeType": "YulIdentifier",
"src": "5852:3:8"
},
"nativeSrc": "5852:32:8",
"nodeType": "YulFunctionCall",
"src": "5852:32:8"
},
"nativeSrc": "5849:119:8",
"nodeType": "YulIf",
"src": "5849:119:8"
},
{
"nativeSrc": "5978:117:8",
"nodeType": "YulBlock",
"src": "5978:117:8",
"statements": [
{
"nativeSrc": "5993:15:8",
"nodeType": "YulVariableDeclaration",
"src": "5993:15:8",
"value": {
"kind": "number",
"nativeSrc": "6007:1:8",
"nodeType": "YulLiteral",
"src": "6007:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "5997:6:8",
"nodeType": "YulTypedName",
"src": "5997:6:8",
"type": ""
}
]
},
{
"nativeSrc": "6022:63:8",
"nodeType": "YulAssignment",
"src": "6022:63:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6057:9:8",
"nodeType": "YulIdentifier",
"src": "6057:9:8"
},
{
"name": "offset",
"nativeSrc": "6068:6:8",
"nodeType": "YulIdentifier",
"src": "6068:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6053:3:8",
"nodeType": "YulIdentifier",
"src": "6053:3:8"
},
"nativeSrc": "6053:22:8",
"nodeType": "YulFunctionCall",
"src": "6053:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "6077:7:8",
"nodeType": "YulIdentifier",
"src": "6077:7:8"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "6032:20:8",
"nodeType": "YulIdentifier",
"src": "6032:20:8"
},
"nativeSrc": "6032:53:8",
"nodeType": "YulFunctionCall",
"src": "6032:53:8"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "6022:6:8",
"nodeType": "YulIdentifier",
"src": "6022:6:8"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nativeSrc": "5773:329:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "5809:9:8",
"nodeType": "YulTypedName",
"src": "5809:9:8",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "5820:7:8",
"nodeType": "YulTypedName",
"src": "5820:7:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "5832:6:8",
"nodeType": "YulTypedName",
"src": "5832:6:8",
"type": ""
}
],
"src": "5773:329:8"
},
{
"body": {
"nativeSrc": "6153:32:8",
"nodeType": "YulBlock",
"src": "6153:32:8",
"statements": [
{
"nativeSrc": "6163:16:8",
"nodeType": "YulAssignment",
"src": "6163:16:8",
"value": {
"name": "value",
"nativeSrc": "6174:5:8",
"nodeType": "YulIdentifier",
"src": "6174:5:8"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "6163:7:8",
"nodeType": "YulIdentifier",
"src": "6163:7:8"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nativeSrc": "6108:77:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "6135:5:8",
"nodeType": "YulTypedName",
"src": "6135:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "6145:7:8",
"nodeType": "YulTypedName",
"src": "6145:7:8",
"type": ""
}
],
"src": "6108:77:8"
},
{
"body": {
"nativeSrc": "6256:53:8",
"nodeType": "YulBlock",
"src": "6256:53:8",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "6273:3:8",
"nodeType": "YulIdentifier",
"src": "6273:3:8"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "6296:5:8",
"nodeType": "YulIdentifier",
"src": "6296:5:8"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nativeSrc": "6278:17:8",
"nodeType": "YulIdentifier",
"src": "6278:17:8"
},
"nativeSrc": "6278:24:8",
"nodeType": "YulFunctionCall",
"src": "6278:24:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "6266:6:8",
"nodeType": "YulIdentifier",
"src": "6266:6:8"
},
"nativeSrc": "6266:37:8",
"nodeType": "YulFunctionCall",
"src": "6266:37:8"
},
"nativeSrc": "6266:37:8",
"nodeType": "YulExpressionStatement",
"src": "6266:37:8"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nativeSrc": "6191:118:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "6244:5:8",
"nodeType": "YulTypedName",
"src": "6244:5:8",
"type": ""
},
{
"name": "pos",
"nativeSrc": "6251:3:8",
"nodeType": "YulTypedName",
"src": "6251:3:8",
"type": ""
}
],
"src": "6191:118:8"
},
{
"body": {
"nativeSrc": "6413:124:8",
"nodeType": "YulBlock",
"src": "6413:124:8",
"statements": [
{
"nativeSrc": "6423:26:8",
"nodeType": "YulAssignment",
"src": "6423:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "6435:9:8",
"nodeType": "YulIdentifier",
"src": "6435:9:8"
},
{
"kind": "number",
"nativeSrc": "6446:2:8",
"nodeType": "YulLiteral",
"src": "6446:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6431:3:8",
"nodeType": "YulIdentifier",
"src": "6431:3:8"
},
"nativeSrc": "6431:18:8",
"nodeType": "YulFunctionCall",
"src": "6431:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "6423:4:8",
"nodeType": "YulIdentifier",
"src": "6423:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "6503:6:8",
"nodeType": "YulIdentifier",
"src": "6503:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6516:9:8",
"nodeType": "YulIdentifier",
"src": "6516:9:8"
},
{
"kind": "number",
"nativeSrc": "6527:1:8",
"nodeType": "YulLiteral",
"src": "6527:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6512:3:8",
"nodeType": "YulIdentifier",
"src": "6512:3:8"
},
"nativeSrc": "6512:17:8",
"nodeType": "YulFunctionCall",
"src": "6512:17:8"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nativeSrc": "6459:43:8",
"nodeType": "YulIdentifier",
"src": "6459:43:8"
},
"nativeSrc": "6459:71:8",
"nodeType": "YulFunctionCall",
"src": "6459:71:8"
},
"nativeSrc": "6459:71:8",
"nodeType": "YulExpressionStatement",
"src": "6459:71:8"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
"nativeSrc": "6315:222:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "6385:9:8",
"nodeType": "YulTypedName",
"src": "6385:9:8",
"type": ""
},
{
"name": "value0",
"nativeSrc": "6397:6:8",
"nodeType": "YulTypedName",
"src": "6397:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "6408:4:8",
"nodeType": "YulTypedName",
"src": "6408:4:8",
"type": ""
}
],
"src": "6315:222:8"
},
{
"body": {
"nativeSrc": "6588:32:8",
"nodeType": "YulBlock",
"src": "6588:32:8",
"statements": [
{
"nativeSrc": "6598:16:8",
"nodeType": "YulAssignment",
"src": "6598:16:8",
"value": {
"name": "value",
"nativeSrc": "6609:5:8",
"nodeType": "YulIdentifier",
"src": "6609:5:8"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "6598:7:8",
"nodeType": "YulIdentifier",
"src": "6598:7:8"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "6543:77:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "6570:5:8",
"nodeType": "YulTypedName",
"src": "6570:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "6580:7:8",
"nodeType": "YulTypedName",
"src": "6580:7:8",
"type": ""
}
],
"src": "6543:77:8"
},
{
"body": {
"nativeSrc": "6691:53:8",
"nodeType": "YulBlock",
"src": "6691:53:8",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "6708:3:8",
"nodeType": "YulIdentifier",
"src": "6708:3:8"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "6731:5:8",
"nodeType": "YulIdentifier",
"src": "6731:5:8"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "6713:17:8",
"nodeType": "YulIdentifier",
"src": "6713:17:8"
},
"nativeSrc": "6713:24:8",
"nodeType": "YulFunctionCall",
"src": "6713:24:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "6701:6:8",
"nodeType": "YulIdentifier",
"src": "6701:6:8"
},
"nativeSrc": "6701:37:8",
"nodeType": "YulFunctionCall",
"src": "6701:37:8"
},
"nativeSrc": "6701:37:8",
"nodeType": "YulExpressionStatement",
"src": "6701:37:8"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "6626:118:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "6679:5:8",
"nodeType": "YulTypedName",
"src": "6679:5:8",
"type": ""
},
{
"name": "pos",
"nativeSrc": "6686:3:8",
"nodeType": "YulTypedName",
"src": "6686:3:8",
"type": ""
}
],
"src": "6626:118:8"
},
{
"body": {
"nativeSrc": "6848:124:8",
"nodeType": "YulBlock",
"src": "6848:124:8",
"statements": [
{
"nativeSrc": "6858:26:8",
"nodeType": "YulAssignment",
"src": "6858:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "6870:9:8",
"nodeType": "YulIdentifier",
"src": "6870:9:8"
},
{
"kind": "number",
"nativeSrc": "6881:2:8",
"nodeType": "YulLiteral",
"src": "6881:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6866:3:8",
"nodeType": "YulIdentifier",
"src": "6866:3:8"
},
"nativeSrc": "6866:18:8",
"nodeType": "YulFunctionCall",
"src": "6866:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "6858:4:8",
"nodeType": "YulIdentifier",
"src": "6858:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "6938:6:8",
"nodeType": "YulIdentifier",
"src": "6938:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6951:9:8",
"nodeType": "YulIdentifier",
"src": "6951:9:8"
},
{
"kind": "number",
"nativeSrc": "6962:1:8",
"nodeType": "YulLiteral",
"src": "6962:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6947:3:8",
"nodeType": "YulIdentifier",
"src": "6947:3:8"
},
"nativeSrc": "6947:17:8",
"nodeType": "YulFunctionCall",
"src": "6947:17:8"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "6894:43:8",
"nodeType": "YulIdentifier",
"src": "6894:43:8"
},
"nativeSrc": "6894:71:8",
"nodeType": "YulFunctionCall",
"src": "6894:71:8"
},
"nativeSrc": "6894:71:8",
"nodeType": "YulExpressionStatement",
"src": "6894:71:8"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nativeSrc": "6750:222:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "6820:9:8",
"nodeType": "YulTypedName",
"src": "6820:9:8",
"type": ""
},
{
"name": "value0",
"nativeSrc": "6832:6:8",
"nodeType": "YulTypedName",
"src": "6832:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "6843:4:8",
"nodeType": "YulTypedName",
"src": "6843:4:8",
"type": ""
}
],
"src": "6750:222:8"
},
{
"body": {
"nativeSrc": "7021:79:8",
"nodeType": "YulBlock",
"src": "7021:79:8",
"statements": [
{
"body": {
"nativeSrc": "7078:16:8",
"nodeType": "YulBlock",
"src": "7078:16:8",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7087:1:8",
"nodeType": "YulLiteral",
"src": "7087:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "7090:1:8",
"nodeType": "YulLiteral",
"src": "7090:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "7080:6:8",
"nodeType": "YulIdentifier",
"src": "7080:6:8"
},
"nativeSrc": "7080:12:8",
"nodeType": "YulFunctionCall",
"src": "7080:12:8"
},
"nativeSrc": "7080:12:8",
"nodeType": "YulExpressionStatement",
"src": "7080:12:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "7044:5:8",
"nodeType": "YulIdentifier",
"src": "7044:5:8"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "7069:5:8",
"nodeType": "YulIdentifier",
"src": "7069:5:8"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7051:17:8",
"nodeType": "YulIdentifier",
"src": "7051:17:8"
},
"nativeSrc": "7051:24:8",
"nodeType": "YulFunctionCall",
"src": "7051:24:8"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "7041:2:8",
"nodeType": "YulIdentifier",
"src": "7041:2:8"
},
"nativeSrc": "7041:35:8",
"nodeType": "YulFunctionCall",
"src": "7041:35:8"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "7034:6:8",
"nodeType": "YulIdentifier",
"src": "7034:6:8"
},
"nativeSrc": "7034:43:8",
"nodeType": "YulFunctionCall",
"src": "7034:43:8"
},
"nativeSrc": "7031:63:8",
"nodeType": "YulIf",
"src": "7031:63:8"
}
]
},
"name": "validator_revert_t_uint256",
"nativeSrc": "6978:122:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "7014:5:8",
"nodeType": "YulTypedName",
"src": "7014:5:8",
"type": ""
}
],
"src": "6978:122:8"
},
{
"body": {
"nativeSrc": "7158:87:8",
"nodeType": "YulBlock",
"src": "7158:87:8",
"statements": [
{
"nativeSrc": "7168:29:8",
"nodeType": "YulAssignment",
"src": "7168:29:8",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "7190:6:8",
"nodeType": "YulIdentifier",
"src": "7190:6:8"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "7177:12:8",
"nodeType": "YulIdentifier",
"src": "7177:12:8"
},
"nativeSrc": "7177:20:8",
"nodeType": "YulFunctionCall",
"src": "7177:20:8"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "7168:5:8",
"nodeType": "YulIdentifier",
"src": "7168:5:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "7233:5:8",
"nodeType": "YulIdentifier",
"src": "7233:5:8"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nativeSrc": "7206:26:8",
"nodeType": "YulIdentifier",
"src": "7206:26:8"
},
"nativeSrc": "7206:33:8",
"nodeType": "YulFunctionCall",
"src": "7206:33:8"
},
"nativeSrc": "7206:33:8",
"nodeType": "YulExpressionStatement",
"src": "7206:33:8"
}
]
},
"name": "abi_decode_t_uint256",
"nativeSrc": "7106:139:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "7136:6:8",
"nodeType": "YulTypedName",
"src": "7136:6:8",
"type": ""
},
{
"name": "end",
"nativeSrc": "7144:3:8",
"nodeType": "YulTypedName",
"src": "7144:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "7152:5:8",
"nodeType": "YulTypedName",
"src": "7152:5:8",
"type": ""
}
],
"src": "7106:139:8"
},
{
"body": {
"nativeSrc": "7351:519:8",
"nodeType": "YulBlock",
"src": "7351:519:8",
"statements": [
{
"body": {
"nativeSrc": "7397:83:8",
"nodeType": "YulBlock",
"src": "7397:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "7399:77:8",
"nodeType": "YulIdentifier",
"src": "7399:77:8"
},
"nativeSrc": "7399:79:8",
"nodeType": "YulFunctionCall",
"src": "7399:79:8"
},
"nativeSrc": "7399:79:8",
"nodeType": "YulExpressionStatement",
"src": "7399:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "7372:7:8",
"nodeType": "YulIdentifier",
"src": "7372:7:8"
},
{
"name": "headStart",
"nativeSrc": "7381:9:8",
"nodeType": "YulIdentifier",
"src": "7381:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "7368:3:8",
"nodeType": "YulIdentifier",
"src": "7368:3:8"
},
"nativeSrc": "7368:23:8",
"nodeType": "YulFunctionCall",
"src": "7368:23:8"
},
{
"kind": "number",
"nativeSrc": "7393:2:8",
"nodeType": "YulLiteral",
"src": "7393:2:8",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "7364:3:8",
"nodeType": "YulIdentifier",
"src": "7364:3:8"
},
"nativeSrc": "7364:32:8",
"nodeType": "YulFunctionCall",
"src": "7364:32:8"
},
"nativeSrc": "7361:119:8",
"nodeType": "YulIf",
"src": "7361:119:8"
},
{
"nativeSrc": "7490:117:8",
"nodeType": "YulBlock",
"src": "7490:117:8",
"statements": [
{
"nativeSrc": "7505:15:8",
"nodeType": "YulVariableDeclaration",
"src": "7505:15:8",
"value": {
"kind": "number",
"nativeSrc": "7519:1:8",
"nodeType": "YulLiteral",
"src": "7519:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "7509:6:8",
"nodeType": "YulTypedName",
"src": "7509:6:8",
"type": ""
}
]
},
{
"nativeSrc": "7534:63:8",
"nodeType": "YulAssignment",
"src": "7534:63:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "7569:9:8",
"nodeType": "YulIdentifier",
"src": "7569:9:8"
},
{
"name": "offset",
"nativeSrc": "7580:6:8",
"nodeType": "YulIdentifier",
"src": "7580:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7565:3:8",
"nodeType": "YulIdentifier",
"src": "7565:3:8"
},
"nativeSrc": "7565:22:8",
"nodeType": "YulFunctionCall",
"src": "7565:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "7589:7:8",
"nodeType": "YulIdentifier",
"src": "7589:7:8"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "7544:20:8",
"nodeType": "YulIdentifier",
"src": "7544:20:8"
},
"nativeSrc": "7544:53:8",
"nodeType": "YulFunctionCall",
"src": "7544:53:8"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "7534:6:8",
"nodeType": "YulIdentifier",
"src": "7534:6:8"
}
]
}
]
},
{
"nativeSrc": "7617:118:8",
"nodeType": "YulBlock",
"src": "7617:118:8",
"statements": [
{
"nativeSrc": "7632:16:8",
"nodeType": "YulVariableDeclaration",
"src": "7632:16:8",
"value": {
"kind": "number",
"nativeSrc": "7646:2:8",
"nodeType": "YulLiteral",
"src": "7646:2:8",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "7636:6:8",
"nodeType": "YulTypedName",
"src": "7636:6:8",
"type": ""
}
]
},
{
"nativeSrc": "7662:63:8",
"nodeType": "YulAssignment",
"src": "7662:63:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "7697:9:8",
"nodeType": "YulIdentifier",
"src": "7697:9:8"
},
{
"name": "offset",
"nativeSrc": "7708:6:8",
"nodeType": "YulIdentifier",
"src": "7708:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7693:3:8",
"nodeType": "YulIdentifier",
"src": "7693:3:8"
},
"nativeSrc": "7693:22:8",
"nodeType": "YulFunctionCall",
"src": "7693:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "7717:7:8",
"nodeType": "YulIdentifier",
"src": "7717:7:8"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "7672:20:8",
"nodeType": "YulIdentifier",
"src": "7672:20:8"
},
"nativeSrc": "7672:53:8",
"nodeType": "YulFunctionCall",
"src": "7672:53:8"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "7662:6:8",
"nodeType": "YulIdentifier",
"src": "7662:6:8"
}
]
}
]
},
{
"nativeSrc": "7745:118:8",
"nodeType": "YulBlock",
"src": "7745:118:8",
"statements": [
{
"nativeSrc": "7760:16:8",
"nodeType": "YulVariableDeclaration",
"src": "7760:16:8",
"value": {
"kind": "number",
"nativeSrc": "7774:2:8",
"nodeType": "YulLiteral",
"src": "7774:2:8",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nativeSrc": "7764:6:8",
"nodeType": "YulTypedName",
"src": "7764:6:8",
"type": ""
}
]
},
{
"nativeSrc": "7790:63:8",
"nodeType": "YulAssignment",
"src": "7790:63:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "7825:9:8",
"nodeType": "YulIdentifier",
"src": "7825:9:8"
},
{
"name": "offset",
"nativeSrc": "7836:6:8",
"nodeType": "YulIdentifier",
"src": "7836:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7821:3:8",
"nodeType": "YulIdentifier",
"src": "7821:3:8"
},
"nativeSrc": "7821:22:8",
"nodeType": "YulFunctionCall",
"src": "7821:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "7845:7:8",
"nodeType": "YulIdentifier",
"src": "7845:7:8"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "7800:20:8",
"nodeType": "YulIdentifier",
"src": "7800:20:8"
},
"nativeSrc": "7800:53:8",
"nodeType": "YulFunctionCall",
"src": "7800:53:8"
},
"variableNames": [
{
"name": "value2",
"nativeSrc": "7790:6:8",
"nodeType": "YulIdentifier",
"src": "7790:6:8"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256t_address",
"nativeSrc": "7251:619:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "7305:9:8",
"nodeType": "YulTypedName",
"src": "7305:9:8",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "7316:7:8",
"nodeType": "YulTypedName",
"src": "7316:7:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "7328:6:8",
"nodeType": "YulTypedName",
"src": "7328:6:8",
"type": ""
},
{
"name": "value1",
"nativeSrc": "7336:6:8",
"nodeType": "YulTypedName",
"src": "7336:6:8",
"type": ""
},
{
"name": "value2",
"nativeSrc": "7344:6:8",
"nodeType": "YulTypedName",
"src": "7344:6:8",
"type": ""
}
],
"src": "7251:619:8"
},
{
"body": {
"nativeSrc": "7919:79:8",
"nodeType": "YulBlock",
"src": "7919:79:8",
"statements": [
{
"body": {
"nativeSrc": "7976:16:8",
"nodeType": "YulBlock",
"src": "7976:16:8",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7985:1:8",
"nodeType": "YulLiteral",
"src": "7985:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "7988:1:8",
"nodeType": "YulLiteral",
"src": "7988:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "7978:6:8",
"nodeType": "YulIdentifier",
"src": "7978:6:8"
},
"nativeSrc": "7978:12:8",
"nodeType": "YulFunctionCall",
"src": "7978:12:8"
},
"nativeSrc": "7978:12:8",
"nodeType": "YulExpressionStatement",
"src": "7978:12:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "7942:5:8",
"nodeType": "YulIdentifier",
"src": "7942:5:8"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "7967:5:8",
"nodeType": "YulIdentifier",
"src": "7967:5:8"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nativeSrc": "7949:17:8",
"nodeType": "YulIdentifier",
"src": "7949:17:8"
},
"nativeSrc": "7949:24:8",
"nodeType": "YulFunctionCall",
"src": "7949:24:8"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "7939:2:8",
"nodeType": "YulIdentifier",
"src": "7939:2:8"
},
"nativeSrc": "7939:35:8",
"nodeType": "YulFunctionCall",
"src": "7939:35:8"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "7932:6:8",
"nodeType": "YulIdentifier",
"src": "7932:6:8"
},
"nativeSrc": "7932:43:8",
"nodeType": "YulFunctionCall",
"src": "7932:43:8"
},
"nativeSrc": "7929:63:8",
"nodeType": "YulIf",
"src": "7929:63:8"
}
]
},
"name": "validator_revert_t_bytes32",
"nativeSrc": "7876:122:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "7912:5:8",
"nodeType": "YulTypedName",
"src": "7912:5:8",
"type": ""
}
],
"src": "7876:122:8"
},
{
"body": {
"nativeSrc": "8056:87:8",
"nodeType": "YulBlock",
"src": "8056:87:8",
"statements": [
{
"nativeSrc": "8066:29:8",
"nodeType": "YulAssignment",
"src": "8066:29:8",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "8088:6:8",
"nodeType": "YulIdentifier",
"src": "8088:6:8"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "8075:12:8",
"nodeType": "YulIdentifier",
"src": "8075:12:8"
},
"nativeSrc": "8075:20:8",
"nodeType": "YulFunctionCall",
"src": "8075:20:8"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "8066:5:8",
"nodeType": "YulIdentifier",
"src": "8066:5:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "8131:5:8",
"nodeType": "YulIdentifier",
"src": "8131:5:8"
}
],
"functionName": {
"name": "validator_revert_t_bytes32",
"nativeSrc": "8104:26:8",
"nodeType": "YulIdentifier",
"src": "8104:26:8"
},
"nativeSrc": "8104:33:8",
"nodeType": "YulFunctionCall",
"src": "8104:33:8"
},
"nativeSrc": "8104:33:8",
"nodeType": "YulExpressionStatement",
"src": "8104:33:8"
}
]
},
"name": "abi_decode_t_bytes32",
"nativeSrc": "8004:139:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "8034:6:8",
"nodeType": "YulTypedName",
"src": "8034:6:8",
"type": ""
},
{
"name": "end",
"nativeSrc": "8042:3:8",
"nodeType": "YulTypedName",
"src": "8042:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "8050:5:8",
"nodeType": "YulTypedName",
"src": "8050:5:8",
"type": ""
}
],
"src": "8004:139:8"
},
{
"body": {
"nativeSrc": "8215:263:8",
"nodeType": "YulBlock",
"src": "8215:263:8",
"statements": [
{
"body": {
"nativeSrc": "8261:83:8",
"nodeType": "YulBlock",
"src": "8261:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "8263:77:8",
"nodeType": "YulIdentifier",
"src": "8263:77:8"
},
"nativeSrc": "8263:79:8",
"nodeType": "YulFunctionCall",
"src": "8263:79:8"
},
"nativeSrc": "8263:79:8",
"nodeType": "YulExpressionStatement",
"src": "8263:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "8236:7:8",
"nodeType": "YulIdentifier",
"src": "8236:7:8"
},
{
"name": "headStart",
"nativeSrc": "8245:9:8",
"nodeType": "YulIdentifier",
"src": "8245:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "8232:3:8",
"nodeType": "YulIdentifier",
"src": "8232:3:8"
},
"nativeSrc": "8232:23:8",
"nodeType": "YulFunctionCall",
"src": "8232:23:8"
},
{
"kind": "number",
"nativeSrc": "8257:2:8",
"nodeType": "YulLiteral",
"src": "8257:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "8228:3:8",
"nodeType": "YulIdentifier",
"src": "8228:3:8"
},
"nativeSrc": "8228:32:8",
"nodeType": "YulFunctionCall",
"src": "8228:32:8"
},
"nativeSrc": "8225:119:8",
"nodeType": "YulIf",
"src": "8225:119:8"
},
{
"nativeSrc": "8354:117:8",
"nodeType": "YulBlock",
"src": "8354:117:8",
"statements": [
{
"nativeSrc": "8369:15:8",
"nodeType": "YulVariableDeclaration",
"src": "8369:15:8",
"value": {
"kind": "number",
"nativeSrc": "8383:1:8",
"nodeType": "YulLiteral",
"src": "8383:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "8373:6:8",
"nodeType": "YulTypedName",
"src": "8373:6:8",
"type": ""
}
]
},
{
"nativeSrc": "8398:63:8",
"nodeType": "YulAssignment",
"src": "8398:63:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "8433:9:8",
"nodeType": "YulIdentifier",
"src": "8433:9:8"
},
{
"name": "offset",
"nativeSrc": "8444:6:8",
"nodeType": "YulIdentifier",
"src": "8444:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8429:3:8",
"nodeType": "YulIdentifier",
"src": "8429:3:8"
},
"nativeSrc": "8429:22:8",
"nodeType": "YulFunctionCall",
"src": "8429:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "8453:7:8",
"nodeType": "YulIdentifier",
"src": "8453:7:8"
}
],
"functionName": {
"name": "abi_decode_t_bytes32",
"nativeSrc": "8408:20:8",
"nodeType": "YulIdentifier",
"src": "8408:20:8"
},
"nativeSrc": "8408:53:8",
"nodeType": "YulFunctionCall",
"src": "8408:53:8"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "8398:6:8",
"nodeType": "YulIdentifier",
"src": "8398:6:8"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes32",
"nativeSrc": "8149:329:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "8185:9:8",
"nodeType": "YulTypedName",
"src": "8185:9:8",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "8196:7:8",
"nodeType": "YulTypedName",
"src": "8196:7:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "8208:6:8",
"nodeType": "YulTypedName",
"src": "8208:6:8",
"type": ""
}
],
"src": "8149:329:8"
},
{
"body": {
"nativeSrc": "8567:391:8",
"nodeType": "YulBlock",
"src": "8567:391:8",
"statements": [
{
"body": {
"nativeSrc": "8613:83:8",
"nodeType": "YulBlock",
"src": "8613:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "8615:77:8",
"nodeType": "YulIdentifier",
"src": "8615:77:8"
},
"nativeSrc": "8615:79:8",
"nodeType": "YulFunctionCall",
"src": "8615:79:8"
},
"nativeSrc": "8615:79:8",
"nodeType": "YulExpressionStatement",
"src": "8615:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "8588:7:8",
"nodeType": "YulIdentifier",
"src": "8588:7:8"
},
{
"name": "headStart",
"nativeSrc": "8597:9:8",
"nodeType": "YulIdentifier",
"src": "8597:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "8584:3:8",
"nodeType": "YulIdentifier",
"src": "8584:3:8"
},
"nativeSrc": "8584:23:8",
"nodeType": "YulFunctionCall",
"src": "8584:23:8"
},
{
"kind": "number",
"nativeSrc": "8609:2:8",
"nodeType": "YulLiteral",
"src": "8609:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "8580:3:8",
"nodeType": "YulIdentifier",
"src": "8580:3:8"
},
"nativeSrc": "8580:32:8",
"nodeType": "YulFunctionCall",
"src": "8580:32:8"
},
"nativeSrc": "8577:119:8",
"nodeType": "YulIf",
"src": "8577:119:8"
},
{
"nativeSrc": "8706:117:8",
"nodeType": "YulBlock",
"src": "8706:117:8",
"statements": [
{
"nativeSrc": "8721:15:8",
"nodeType": "YulVariableDeclaration",
"src": "8721:15:8",
"value": {
"kind": "number",
"nativeSrc": "8735:1:8",
"nodeType": "YulLiteral",
"src": "8735:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "8725:6:8",
"nodeType": "YulTypedName",
"src": "8725:6:8",
"type": ""
}
]
},
{
"nativeSrc": "8750:63:8",
"nodeType": "YulAssignment",
"src": "8750:63:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "8785:9:8",
"nodeType": "YulIdentifier",
"src": "8785:9:8"
},
{
"name": "offset",
"nativeSrc": "8796:6:8",
"nodeType": "YulIdentifier",
"src": "8796:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8781:3:8",
"nodeType": "YulIdentifier",
"src": "8781:3:8"
},
"nativeSrc": "8781:22:8",
"nodeType": "YulFunctionCall",
"src": "8781:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "8805:7:8",
"nodeType": "YulIdentifier",
"src": "8805:7:8"
}
],
"functionName": {
"name": "abi_decode_t_bytes32",
"nativeSrc": "8760:20:8",
"nodeType": "YulIdentifier",
"src": "8760:20:8"
},
"nativeSrc": "8760:53:8",
"nodeType": "YulFunctionCall",
"src": "8760:53:8"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "8750:6:8",
"nodeType": "YulIdentifier",
"src": "8750:6:8"
}
]
}
]
},
{
"nativeSrc": "8833:118:8",
"nodeType": "YulBlock",
"src": "8833:118:8",
"statements": [
{
"nativeSrc": "8848:16:8",
"nodeType": "YulVariableDeclaration",
"src": "8848:16:8",
"value": {
"kind": "number",
"nativeSrc": "8862:2:8",
"nodeType": "YulLiteral",
"src": "8862:2:8",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "8852:6:8",
"nodeType": "YulTypedName",
"src": "8852:6:8",
"type": ""
}
]
},
{
"nativeSrc": "8878:63:8",
"nodeType": "YulAssignment",
"src": "8878:63:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "8913:9:8",
"nodeType": "YulIdentifier",
"src": "8913:9:8"
},
{
"name": "offset",
"nativeSrc": "8924:6:8",
"nodeType": "YulIdentifier",
"src": "8924:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8909:3:8",
"nodeType": "YulIdentifier",
"src": "8909:3:8"
},
"nativeSrc": "8909:22:8",
"nodeType": "YulFunctionCall",
"src": "8909:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "8933:7:8",
"nodeType": "YulIdentifier",
"src": "8933:7:8"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "8888:20:8",
"nodeType": "YulIdentifier",
"src": "8888:20:8"
},
"nativeSrc": "8888:53:8",
"nodeType": "YulFunctionCall",
"src": "8888:53:8"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "8878:6:8",
"nodeType": "YulIdentifier",
"src": "8878:6:8"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes32t_address",
"nativeSrc": "8484:474:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "8529:9:8",
"nodeType": "YulTypedName",
"src": "8529:9:8",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "8540:7:8",
"nodeType": "YulTypedName",
"src": "8540:7:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "8552:6:8",
"nodeType": "YulTypedName",
"src": "8552:6:8",
"type": ""
},
{
"name": "value1",
"nativeSrc": "8560:6:8",
"nodeType": "YulTypedName",
"src": "8560:6:8",
"type": ""
}
],
"src": "8484:474:8"
},
{
"body": {
"nativeSrc": "9047:391:8",
"nodeType": "YulBlock",
"src": "9047:391:8",
"statements": [
{
"body": {
"nativeSrc": "9093:83:8",
"nodeType": "YulBlock",
"src": "9093:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "9095:77:8",
"nodeType": "YulIdentifier",
"src": "9095:77:8"
},
"nativeSrc": "9095:79:8",
"nodeType": "YulFunctionCall",
"src": "9095:79:8"
},
"nativeSrc": "9095:79:8",
"nodeType": "YulExpressionStatement",
"src": "9095:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "9068:7:8",
"nodeType": "YulIdentifier",
"src": "9068:7:8"
},
{
"name": "headStart",
"nativeSrc": "9077:9:8",
"nodeType": "YulIdentifier",
"src": "9077:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "9064:3:8",
"nodeType": "YulIdentifier",
"src": "9064:3:8"
},
"nativeSrc": "9064:23:8",
"nodeType": "YulFunctionCall",
"src": "9064:23:8"
},
{
"kind": "number",
"nativeSrc": "9089:2:8",
"nodeType": "YulLiteral",
"src": "9089:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "9060:3:8",
"nodeType": "YulIdentifier",
"src": "9060:3:8"
},
"nativeSrc": "9060:32:8",
"nodeType": "YulFunctionCall",
"src": "9060:32:8"
},
"nativeSrc": "9057:119:8",
"nodeType": "YulIf",
"src": "9057:119:8"
},
{
"nativeSrc": "9186:117:8",
"nodeType": "YulBlock",
"src": "9186:117:8",
"statements": [
{
"nativeSrc": "9201:15:8",
"nodeType": "YulVariableDeclaration",
"src": "9201:15:8",
"value": {
"kind": "number",
"nativeSrc": "9215:1:8",
"nodeType": "YulLiteral",
"src": "9215:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "9205:6:8",
"nodeType": "YulTypedName",
"src": "9205:6:8",
"type": ""
}
]
},
{
"nativeSrc": "9230:63:8",
"nodeType": "YulAssignment",
"src": "9230:63:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "9265:9:8",
"nodeType": "YulIdentifier",
"src": "9265:9:8"
},
{
"name": "offset",
"nativeSrc": "9276:6:8",
"nodeType": "YulIdentifier",
"src": "9276:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9261:3:8",
"nodeType": "YulIdentifier",
"src": "9261:3:8"
},
"nativeSrc": "9261:22:8",
"nodeType": "YulFunctionCall",
"src": "9261:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "9285:7:8",
"nodeType": "YulIdentifier",
"src": "9285:7:8"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "9240:20:8",
"nodeType": "YulIdentifier",
"src": "9240:20:8"
},
"nativeSrc": "9240:53:8",
"nodeType": "YulFunctionCall",
"src": "9240:53:8"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "9230:6:8",
"nodeType": "YulIdentifier",
"src": "9230:6:8"
}
]
}
]
},
{
"nativeSrc": "9313:118:8",
"nodeType": "YulBlock",
"src": "9313:118:8",
"statements": [
{
"nativeSrc": "9328:16:8",
"nodeType": "YulVariableDeclaration",
"src": "9328:16:8",
"value": {
"kind": "number",
"nativeSrc": "9342:2:8",
"nodeType": "YulLiteral",
"src": "9342:2:8",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "9332:6:8",
"nodeType": "YulTypedName",
"src": "9332:6:8",
"type": ""
}
]
},
{
"nativeSrc": "9358:63:8",
"nodeType": "YulAssignment",
"src": "9358:63:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "9393:9:8",
"nodeType": "YulIdentifier",
"src": "9393:9:8"
},
{
"name": "offset",
"nativeSrc": "9404:6:8",
"nodeType": "YulIdentifier",
"src": "9404:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9389:3:8",
"nodeType": "YulIdentifier",
"src": "9389:3:8"
},
"nativeSrc": "9389:22:8",
"nodeType": "YulFunctionCall",
"src": "9389:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "9413:7:8",
"nodeType": "YulIdentifier",
"src": "9413:7:8"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "9368:20:8",
"nodeType": "YulIdentifier",
"src": "9368:20:8"
},
"nativeSrc": "9368:53:8",
"nodeType": "YulFunctionCall",
"src": "9368:53:8"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "9358:6:8",
"nodeType": "YulIdentifier",
"src": "9358:6:8"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nativeSrc": "8964:474:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "9009:9:8",
"nodeType": "YulTypedName",
"src": "9009:9:8",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "9020:7:8",
"nodeType": "YulTypedName",
"src": "9020:7:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "9032:6:8",
"nodeType": "YulTypedName",
"src": "9032:6:8",
"type": ""
},
{
"name": "value1",
"nativeSrc": "9040:6:8",
"nodeType": "YulTypedName",
"src": "9040:6:8",
"type": ""
}
],
"src": "8964:474:8"
},
{
"body": {
"nativeSrc": "9527:391:8",
"nodeType": "YulBlock",
"src": "9527:391:8",
"statements": [
{
"body": {
"nativeSrc": "9573:83:8",
"nodeType": "YulBlock",
"src": "9573:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "9575:77:8",
"nodeType": "YulIdentifier",
"src": "9575:77:8"
},
"nativeSrc": "9575:79:8",
"nodeType": "YulFunctionCall",
"src": "9575:79:8"
},
"nativeSrc": "9575:79:8",
"nodeType": "YulExpressionStatement",
"src": "9575:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "9548:7:8",
"nodeType": "YulIdentifier",
"src": "9548:7:8"
},
{
"name": "headStart",
"nativeSrc": "9557:9:8",
"nodeType": "YulIdentifier",
"src": "9557:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "9544:3:8",
"nodeType": "YulIdentifier",
"src": "9544:3:8"
},
"nativeSrc": "9544:23:8",
"nodeType": "YulFunctionCall",
"src": "9544:23:8"
},
{
"kind": "number",
"nativeSrc": "9569:2:8",
"nodeType": "YulLiteral",
"src": "9569:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "9540:3:8",
"nodeType": "YulIdentifier",
"src": "9540:3:8"
},
"nativeSrc": "9540:32:8",
"nodeType": "YulFunctionCall",
"src": "9540:32:8"
},
"nativeSrc": "9537:119:8",
"nodeType": "YulIf",
"src": "9537:119:8"
},
{
"nativeSrc": "9666:117:8",
"nodeType": "YulBlock",
"src": "9666:117:8",
"statements": [
{
"nativeSrc": "9681:15:8",
"nodeType": "YulVariableDeclaration",
"src": "9681:15:8",
"value": {
"kind": "number",
"nativeSrc": "9695:1:8",
"nodeType": "YulLiteral",
"src": "9695:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "9685:6:8",
"nodeType": "YulTypedName",
"src": "9685:6:8",
"type": ""
}
]
},
{
"nativeSrc": "9710:63:8",
"nodeType": "YulAssignment",
"src": "9710:63:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "9745:9:8",
"nodeType": "YulIdentifier",
"src": "9745:9:8"
},
{
"name": "offset",
"nativeSrc": "9756:6:8",
"nodeType": "YulIdentifier",
"src": "9756:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9741:3:8",
"nodeType": "YulIdentifier",
"src": "9741:3:8"
},
"nativeSrc": "9741:22:8",
"nodeType": "YulFunctionCall",
"src": "9741:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "9765:7:8",
"nodeType": "YulIdentifier",
"src": "9765:7:8"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "9720:20:8",
"nodeType": "YulIdentifier",
"src": "9720:20:8"
},
"nativeSrc": "9720:53:8",
"nodeType": "YulFunctionCall",
"src": "9720:53:8"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "9710:6:8",
"nodeType": "YulIdentifier",
"src": "9710:6:8"
}
]
}
]
},
{
"nativeSrc": "9793:118:8",
"nodeType": "YulBlock",
"src": "9793:118:8",
"statements": [
{
"nativeSrc": "9808:16:8",
"nodeType": "YulVariableDeclaration",
"src": "9808:16:8",
"value": {
"kind": "number",
"nativeSrc": "9822:2:8",
"nodeType": "YulLiteral",
"src": "9822:2:8",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "9812:6:8",
"nodeType": "YulTypedName",
"src": "9812:6:8",
"type": ""
}
]
},
{
"nativeSrc": "9838:63:8",
"nodeType": "YulAssignment",
"src": "9838:63:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "9873:9:8",
"nodeType": "YulIdentifier",
"src": "9873:9:8"
},
{
"name": "offset",
"nativeSrc": "9884:6:8",
"nodeType": "YulIdentifier",
"src": "9884:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9869:3:8",
"nodeType": "YulIdentifier",
"src": "9869:3:8"
},
"nativeSrc": "9869:22:8",
"nodeType": "YulFunctionCall",
"src": "9869:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "9893:7:8",
"nodeType": "YulIdentifier",
"src": "9893:7:8"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "9848:20:8",
"nodeType": "YulIdentifier",
"src": "9848:20:8"
},
"nativeSrc": "9848:53:8",
"nodeType": "YulFunctionCall",
"src": "9848:53:8"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "9838:6:8",
"nodeType": "YulIdentifier",
"src": "9838:6:8"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address",
"nativeSrc": "9444:474:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "9489:9:8",
"nodeType": "YulTypedName",
"src": "9489:9:8",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "9500:7:8",
"nodeType": "YulTypedName",
"src": "9500:7:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "9512:6:8",
"nodeType": "YulTypedName",
"src": "9512:6:8",
"type": ""
},
{
"name": "value1",
"nativeSrc": "9520:6:8",
"nodeType": "YulTypedName",
"src": "9520:6:8",
"type": ""
}
],
"src": "9444:474:8"
},
{
"body": {
"nativeSrc": "9983:40:8",
"nodeType": "YulBlock",
"src": "9983:40:8",
"statements": [
{
"nativeSrc": "9994:22:8",
"nodeType": "YulAssignment",
"src": "9994:22:8",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "10010:5:8",
"nodeType": "YulIdentifier",
"src": "10010:5:8"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "10004:5:8",
"nodeType": "YulIdentifier",
"src": "10004:5:8"
},
"nativeSrc": "10004:12:8",
"nodeType": "YulFunctionCall",
"src": "10004:12:8"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "9994:6:8",
"nodeType": "YulIdentifier",
"src": "9994:6:8"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "9924:99:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "9966:5:8",
"nodeType": "YulTypedName",
"src": "9966:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "9976:6:8",
"nodeType": "YulTypedName",
"src": "9976:6:8",
"type": ""
}
],
"src": "9924:99:8"
},
{
"body": {
"nativeSrc": "10125:73:8",
"nodeType": "YulBlock",
"src": "10125:73:8",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "10142:3:8",
"nodeType": "YulIdentifier",
"src": "10142:3:8"
},
{
"name": "length",
"nativeSrc": "10147:6:8",
"nodeType": "YulIdentifier",
"src": "10147:6:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "10135:6:8",
"nodeType": "YulIdentifier",
"src": "10135:6:8"
},
"nativeSrc": "10135:19:8",
"nodeType": "YulFunctionCall",
"src": "10135:19:8"
},
"nativeSrc": "10135:19:8",
"nodeType": "YulExpressionStatement",
"src": "10135:19:8"
},
{
"nativeSrc": "10163:29:8",
"nodeType": "YulAssignment",
"src": "10163:29:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "10182:3:8",
"nodeType": "YulIdentifier",
"src": "10182:3:8"
},
{
"kind": "number",
"nativeSrc": "10187:4:8",
"nodeType": "YulLiteral",
"src": "10187:4:8",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10178:3:8",
"nodeType": "YulIdentifier",
"src": "10178:3:8"
},
"nativeSrc": "10178:14:8",
"nodeType": "YulFunctionCall",
"src": "10178:14:8"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "10163:11:8",
"nodeType": "YulIdentifier",
"src": "10163:11:8"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "10029:169:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "10097:3:8",
"nodeType": "YulTypedName",
"src": "10097:3:8",
"type": ""
},
{
"name": "length",
"nativeSrc": "10102:6:8",
"nodeType": "YulTypedName",
"src": "10102:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "10113:11:8",
"nodeType": "YulTypedName",
"src": "10113:11:8",
"type": ""
}
],
"src": "10029:169:8"
},
{
"body": {
"nativeSrc": "10266:77:8",
"nodeType": "YulBlock",
"src": "10266:77:8",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nativeSrc": "10283:3:8",
"nodeType": "YulIdentifier",
"src": "10283:3:8"
},
{
"name": "src",
"nativeSrc": "10288:3:8",
"nodeType": "YulIdentifier",
"src": "10288:3:8"
},
{
"name": "length",
"nativeSrc": "10293:6:8",
"nodeType": "YulIdentifier",
"src": "10293:6:8"
}
],
"functionName": {
"name": "mcopy",
"nativeSrc": "10277:5:8",
"nodeType": "YulIdentifier",
"src": "10277:5:8"
},
"nativeSrc": "10277:23:8",
"nodeType": "YulFunctionCall",
"src": "10277:23:8"
},
"nativeSrc": "10277:23:8",
"nodeType": "YulExpressionStatement",
"src": "10277:23:8"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "10320:3:8",
"nodeType": "YulIdentifier",
"src": "10320:3:8"
},
{
"name": "length",
"nativeSrc": "10325:6:8",
"nodeType": "YulIdentifier",
"src": "10325:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10316:3:8",
"nodeType": "YulIdentifier",
"src": "10316:3:8"
},
"nativeSrc": "10316:16:8",
"nodeType": "YulFunctionCall",
"src": "10316:16:8"
},
{
"kind": "number",
"nativeSrc": "10334:1:8",
"nodeType": "YulLiteral",
"src": "10334:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "10309:6:8",
"nodeType": "YulIdentifier",
"src": "10309:6:8"
},
"nativeSrc": "10309:27:8",
"nodeType": "YulFunctionCall",
"src": "10309:27:8"
},
"nativeSrc": "10309:27:8",
"nodeType": "YulExpressionStatement",
"src": "10309:27:8"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "10204:139:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "10248:3:8",
"nodeType": "YulTypedName",
"src": "10248:3:8",
"type": ""
},
{
"name": "dst",
"nativeSrc": "10253:3:8",
"nodeType": "YulTypedName",
"src": "10253:3:8",
"type": ""
},
{
"name": "length",
"nativeSrc": "10258:6:8",
"nodeType": "YulTypedName",
"src": "10258:6:8",
"type": ""
}
],
"src": "10204:139:8"
},
{
"body": {
"nativeSrc": "10441:285:8",
"nodeType": "YulBlock",
"src": "10441:285:8",
"statements": [
{
"nativeSrc": "10451:53:8",
"nodeType": "YulVariableDeclaration",
"src": "10451:53:8",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "10498:5:8",
"nodeType": "YulIdentifier",
"src": "10498:5:8"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "10465:32:8",
"nodeType": "YulIdentifier",
"src": "10465:32:8"
},
"nativeSrc": "10465:39:8",
"nodeType": "YulFunctionCall",
"src": "10465:39:8"
},
"variables": [
{
"name": "length",
"nativeSrc": "10455:6:8",
"nodeType": "YulTypedName",
"src": "10455:6:8",
"type": ""
}
]
},
{
"nativeSrc": "10513:78:8",
"nodeType": "YulAssignment",
"src": "10513:78:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "10579:3:8",
"nodeType": "YulIdentifier",
"src": "10579:3:8"
},
{
"name": "length",
"nativeSrc": "10584:6:8",
"nodeType": "YulIdentifier",
"src": "10584:6:8"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "10520:58:8",
"nodeType": "YulIdentifier",
"src": "10520:58:8"
},
"nativeSrc": "10520:71:8",
"nodeType": "YulFunctionCall",
"src": "10520:71:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "10513:3:8",
"nodeType": "YulIdentifier",
"src": "10513:3:8"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "10639:5:8",
"nodeType": "YulIdentifier",
"src": "10639:5:8"
},
{
"kind": "number",
"nativeSrc": "10646:4:8",
"nodeType": "YulLiteral",
"src": "10646:4:8",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10635:3:8",
"nodeType": "YulIdentifier",
"src": "10635:3:8"
},
"nativeSrc": "10635:16:8",
"nodeType": "YulFunctionCall",
"src": "10635:16:8"
},
{
"name": "pos",
"nativeSrc": "10653:3:8",
"nodeType": "YulIdentifier",
"src": "10653:3:8"
},
{
"name": "length",
"nativeSrc": "10658:6:8",
"nodeType": "YulIdentifier",
"src": "10658:6:8"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "10600:34:8",
"nodeType": "YulIdentifier",
"src": "10600:34:8"
},
"nativeSrc": "10600:65:8",
"nodeType": "YulFunctionCall",
"src": "10600:65:8"
},
"nativeSrc": "10600:65:8",
"nodeType": "YulExpressionStatement",
"src": "10600:65:8"
},
{
"nativeSrc": "10674:46:8",
"nodeType": "YulAssignment",
"src": "10674:46:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "10685:3:8",
"nodeType": "YulIdentifier",
"src": "10685:3:8"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "10712:6:8",
"nodeType": "YulIdentifier",
"src": "10712:6:8"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "10690:21:8",
"nodeType": "YulIdentifier",
"src": "10690:21:8"
},
"nativeSrc": "10690:29:8",
"nodeType": "YulFunctionCall",
"src": "10690:29:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10681:3:8",
"nodeType": "YulIdentifier",
"src": "10681:3:8"
},
"nativeSrc": "10681:39:8",
"nodeType": "YulFunctionCall",
"src": "10681:39:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "10674:3:8",
"nodeType": "YulIdentifier",
"src": "10674:3:8"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nativeSrc": "10349:377:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "10422:5:8",
"nodeType": "YulTypedName",
"src": "10422:5:8",
"type": ""
},
{
"name": "pos",
"nativeSrc": "10429:3:8",
"nodeType": "YulTypedName",
"src": "10429:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "10437:3:8",
"nodeType": "YulTypedName",
"src": "10437:3:8",
"type": ""
}
],
"src": "10349:377:8"
},
{
"body": {
"nativeSrc": "10916:424:8",
"nodeType": "YulBlock",
"src": "10916:424:8",
"statements": [
{
"nativeSrc": "10926:27:8",
"nodeType": "YulAssignment",
"src": "10926:27:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "10938:9:8",
"nodeType": "YulIdentifier",
"src": "10938:9:8"
},
{
"kind": "number",
"nativeSrc": "10949:3:8",
"nodeType": "YulLiteral",
"src": "10949:3:8",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10934:3:8",
"nodeType": "YulIdentifier",
"src": "10934:3:8"
},
"nativeSrc": "10934:19:8",
"nodeType": "YulFunctionCall",
"src": "10934:19:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "10926:4:8",
"nodeType": "YulIdentifier",
"src": "10926:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "11001:6:8",
"nodeType": "YulIdentifier",
"src": "11001:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "11014:9:8",
"nodeType": "YulIdentifier",
"src": "11014:9:8"
},
{
"kind": "number",
"nativeSrc": "11025:1:8",
"nodeType": "YulLiteral",
"src": "11025:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "11010:3:8",
"nodeType": "YulIdentifier",
"src": "11010:3:8"
},
"nativeSrc": "11010:17:8",
"nodeType": "YulFunctionCall",
"src": "11010:17:8"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "10963:37:8",
"nodeType": "YulIdentifier",
"src": "10963:37:8"
},
"nativeSrc": "10963:65:8",
"nodeType": "YulFunctionCall",
"src": "10963:65:8"
},
"nativeSrc": "10963:65:8",
"nodeType": "YulExpressionStatement",
"src": "10963:65:8"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "11076:6:8",
"nodeType": "YulIdentifier",
"src": "11076:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "11089:9:8",
"nodeType": "YulIdentifier",
"src": "11089:9:8"
},
{
"kind": "number",
"nativeSrc": "11100:2:8",
"nodeType": "YulLiteral",
"src": "11100:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "11085:3:8",
"nodeType": "YulIdentifier",
"src": "11085:3:8"
},
"nativeSrc": "11085:18:8",
"nodeType": "YulFunctionCall",
"src": "11085:18:8"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "11038:37:8",
"nodeType": "YulIdentifier",
"src": "11038:37:8"
},
"nativeSrc": "11038:66:8",
"nodeType": "YulFunctionCall",
"src": "11038:66:8"
},
"nativeSrc": "11038:66:8",
"nodeType": "YulExpressionStatement",
"src": "11038:66:8"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "11152:6:8",
"nodeType": "YulIdentifier",
"src": "11152:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "11165:9:8",
"nodeType": "YulIdentifier",
"src": "11165:9:8"
},
{
"kind": "number",
"nativeSrc": "11176:2:8",
"nodeType": "YulLiteral",
"src": "11176:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "11161:3:8",
"nodeType": "YulIdentifier",
"src": "11161:3:8"
},
"nativeSrc": "11161:18:8",
"nodeType": "YulFunctionCall",
"src": "11161:18:8"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "11114:37:8",
"nodeType": "YulIdentifier",
"src": "11114:37:8"
},
"nativeSrc": "11114:66:8",
"nodeType": "YulFunctionCall",
"src": "11114:66:8"
},
"nativeSrc": "11114:66:8",
"nodeType": "YulExpressionStatement",
"src": "11114:66:8"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "11201:9:8",
"nodeType": "YulIdentifier",
"src": "11201:9:8"
},
{
"kind": "number",
"nativeSrc": "11212:2:8",
"nodeType": "YulLiteral",
"src": "11212:2:8",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "11197:3:8",
"nodeType": "YulIdentifier",
"src": "11197:3:8"
},
"nativeSrc": "11197:18:8",
"nodeType": "YulFunctionCall",
"src": "11197:18:8"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "11221:4:8",
"nodeType": "YulIdentifier",
"src": "11221:4:8"
},
{
"name": "headStart",
"nativeSrc": "11227:9:8",
"nodeType": "YulIdentifier",
"src": "11227:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "11217:3:8",
"nodeType": "YulIdentifier",
"src": "11217:3:8"
},
"nativeSrc": "11217:20:8",
"nodeType": "YulFunctionCall",
"src": "11217:20:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "11190:6:8",
"nodeType": "YulIdentifier",
"src": "11190:6:8"
},
"nativeSrc": "11190:48:8",
"nodeType": "YulFunctionCall",
"src": "11190:48:8"
},
"nativeSrc": "11190:48:8",
"nodeType": "YulExpressionStatement",
"src": "11190:48:8"
},
{
"nativeSrc": "11247:86:8",
"nodeType": "YulAssignment",
"src": "11247:86:8",
"value": {
"arguments": [
{
"name": "value3",
"nativeSrc": "11319:6:8",
"nodeType": "YulIdentifier",
"src": "11319:6:8"
},
{
"name": "tail",
"nativeSrc": "11328:4:8",
"nodeType": "YulIdentifier",
"src": "11328:4:8"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nativeSrc": "11255:63:8",
"nodeType": "YulIdentifier",
"src": "11255:63:8"
},
"nativeSrc": "11255:78:8",
"nodeType": "YulFunctionCall",
"src": "11255:78:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "11247:4:8",
"nodeType": "YulIdentifier",
"src": "11247:4:8"
}
]
}
]
},
"name": "abi_encode_tuple_t_bool_t_bool_t_bool_t_string_memory_ptr__to_t_bool_t_bool_t_bool_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "10732:608:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "10864:9:8",
"nodeType": "YulTypedName",
"src": "10864:9:8",
"type": ""
},
{
"name": "value3",
"nativeSrc": "10876:6:8",
"nodeType": "YulTypedName",
"src": "10876:6:8",
"type": ""
},
{
"name": "value2",
"nativeSrc": "10884:6:8",
"nodeType": "YulTypedName",
"src": "10884:6:8",
"type": ""
},
{
"name": "value1",
"nativeSrc": "10892:6:8",
"nodeType": "YulTypedName",
"src": "10892:6:8",
"type": ""
},
{
"name": "value0",
"nativeSrc": "10900:6:8",
"nodeType": "YulTypedName",
"src": "10900:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "10911:4:8",
"nodeType": "YulTypedName",
"src": "10911:4:8",
"type": ""
}
],
"src": "10732:608:8"
},
{
"body": {
"nativeSrc": "11405:51:8",
"nodeType": "YulBlock",
"src": "11405:51:8",
"statements": [
{
"nativeSrc": "11415:35:8",
"nodeType": "YulAssignment",
"src": "11415:35:8",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "11444:5:8",
"nodeType": "YulIdentifier",
"src": "11444:5:8"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "11426:17:8",
"nodeType": "YulIdentifier",
"src": "11426:17:8"
},
"nativeSrc": "11426:24:8",
"nodeType": "YulFunctionCall",
"src": "11426:24:8"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "11415:7:8",
"nodeType": "YulIdentifier",
"src": "11415:7:8"
}
]
}
]
},
"name": "cleanup_t_contract$_IERC20_$564",
"nativeSrc": "11346:110:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "11387:5:8",
"nodeType": "YulTypedName",
"src": "11387:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "11397:7:8",
"nodeType": "YulTypedName",
"src": "11397:7:8",
"type": ""
}
],
"src": "11346:110:8"
},
{
"body": {
"nativeSrc": "11519:93:8",
"nodeType": "YulBlock",
"src": "11519:93:8",
"statements": [
{
"body": {
"nativeSrc": "11590:16:8",
"nodeType": "YulBlock",
"src": "11590:16:8",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "11599:1:8",
"nodeType": "YulLiteral",
"src": "11599:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "11602:1:8",
"nodeType": "YulLiteral",
"src": "11602:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "11592:6:8",
"nodeType": "YulIdentifier",
"src": "11592:6:8"
},
"nativeSrc": "11592:12:8",
"nodeType": "YulFunctionCall",
"src": "11592:12:8"
},
"nativeSrc": "11592:12:8",
"nodeType": "YulExpressionStatement",
"src": "11592:12:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "11542:5:8",
"nodeType": "YulIdentifier",
"src": "11542:5:8"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "11581:5:8",
"nodeType": "YulIdentifier",
"src": "11581:5:8"
}
],
"functionName": {
"name": "cleanup_t_contract$_IERC20_$564",
"nativeSrc": "11549:31:8",
"nodeType": "YulIdentifier",
"src": "11549:31:8"
},
"nativeSrc": "11549:38:8",
"nodeType": "YulFunctionCall",
"src": "11549:38:8"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "11539:2:8",
"nodeType": "YulIdentifier",
"src": "11539:2:8"
},
"nativeSrc": "11539:49:8",
"nodeType": "YulFunctionCall",
"src": "11539:49:8"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "11532:6:8",
"nodeType": "YulIdentifier",
"src": "11532:6:8"
},
"nativeSrc": "11532:57:8",
"nodeType": "YulFunctionCall",
"src": "11532:57:8"
},
"nativeSrc": "11529:77:8",
"nodeType": "YulIf",
"src": "11529:77:8"
}
]
},
"name": "validator_revert_t_contract$_IERC20_$564",
"nativeSrc": "11462:150:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "11512:5:8",
"nodeType": "YulTypedName",
"src": "11512:5:8",
"type": ""
}
],
"src": "11462:150:8"
},
{
"body": {
"nativeSrc": "11684:101:8",
"nodeType": "YulBlock",
"src": "11684:101:8",
"statements": [
{
"nativeSrc": "11694:29:8",
"nodeType": "YulAssignment",
"src": "11694:29:8",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "11716:6:8",
"nodeType": "YulIdentifier",
"src": "11716:6:8"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "11703:12:8",
"nodeType": "YulIdentifier",
"src": "11703:12:8"
},
"nativeSrc": "11703:20:8",
"nodeType": "YulFunctionCall",
"src": "11703:20:8"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "11694:5:8",
"nodeType": "YulIdentifier",
"src": "11694:5:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "11773:5:8",
"nodeType": "YulIdentifier",
"src": "11773:5:8"
}
],
"functionName": {
"name": "validator_revert_t_contract$_IERC20_$564",
"nativeSrc": "11732:40:8",
"nodeType": "YulIdentifier",
"src": "11732:40:8"
},
"nativeSrc": "11732:47:8",
"nodeType": "YulFunctionCall",
"src": "11732:47:8"
},
"nativeSrc": "11732:47:8",
"nodeType": "YulExpressionStatement",
"src": "11732:47:8"
}
]
},
"name": "abi_decode_t_contract$_IERC20_$564",
"nativeSrc": "11618:167:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "11662:6:8",
"nodeType": "YulTypedName",
"src": "11662:6:8",
"type": ""
},
{
"name": "end",
"nativeSrc": "11670:3:8",
"nodeType": "YulTypedName",
"src": "11670:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "11678:5:8",
"nodeType": "YulTypedName",
"src": "11678:5:8",
"type": ""
}
],
"src": "11618:167:8"
},
{
"body": {
"nativeSrc": "11871:277:8",
"nodeType": "YulBlock",
"src": "11871:277:8",
"statements": [
{
"body": {
"nativeSrc": "11917:83:8",
"nodeType": "YulBlock",
"src": "11917:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "11919:77:8",
"nodeType": "YulIdentifier",
"src": "11919:77:8"
},
"nativeSrc": "11919:79:8",
"nodeType": "YulFunctionCall",
"src": "11919:79:8"
},
"nativeSrc": "11919:79:8",
"nodeType": "YulExpressionStatement",
"src": "11919:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "11892:7:8",
"nodeType": "YulIdentifier",
"src": "11892:7:8"
},
{
"name": "headStart",
"nativeSrc": "11901:9:8",
"nodeType": "YulIdentifier",
"src": "11901:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "11888:3:8",
"nodeType": "YulIdentifier",
"src": "11888:3:8"
},
"nativeSrc": "11888:23:8",
"nodeType": "YulFunctionCall",
"src": "11888:23:8"
},
{
"kind": "number",
"nativeSrc": "11913:2:8",
"nodeType": "YulLiteral",
"src": "11913:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "11884:3:8",
"nodeType": "YulIdentifier",
"src": "11884:3:8"
},
"nativeSrc": "11884:32:8",
"nodeType": "YulFunctionCall",
"src": "11884:32:8"
},
"nativeSrc": "11881:119:8",
"nodeType": "YulIf",
"src": "11881:119:8"
},
{
"nativeSrc": "12010:131:8",
"nodeType": "YulBlock",
"src": "12010:131:8",
"statements": [
{
"nativeSrc": "12025:15:8",
"nodeType": "YulVariableDeclaration",
"src": "12025:15:8",
"value": {
"kind": "number",
"nativeSrc": "12039:1:8",
"nodeType": "YulLiteral",
"src": "12039:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "12029:6:8",
"nodeType": "YulTypedName",
"src": "12029:6:8",
"type": ""
}
]
},
{
"nativeSrc": "12054:77:8",
"nodeType": "YulAssignment",
"src": "12054:77:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "12103:9:8",
"nodeType": "YulIdentifier",
"src": "12103:9:8"
},
{
"name": "offset",
"nativeSrc": "12114:6:8",
"nodeType": "YulIdentifier",
"src": "12114:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12099:3:8",
"nodeType": "YulIdentifier",
"src": "12099:3:8"
},
"nativeSrc": "12099:22:8",
"nodeType": "YulFunctionCall",
"src": "12099:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "12123:7:8",
"nodeType": "YulIdentifier",
"src": "12123:7:8"
}
],
"functionName": {
"name": "abi_decode_t_contract$_IERC20_$564",
"nativeSrc": "12064:34:8",
"nodeType": "YulIdentifier",
"src": "12064:34:8"
},
"nativeSrc": "12064:67:8",
"nodeType": "YulFunctionCall",
"src": "12064:67:8"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "12054:6:8",
"nodeType": "YulIdentifier",
"src": "12054:6:8"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_contract$_IERC20_$564",
"nativeSrc": "11791:357:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "11841:9:8",
"nodeType": "YulTypedName",
"src": "11841:9:8",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "11852:7:8",
"nodeType": "YulTypedName",
"src": "11852:7:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "11864:6:8",
"nodeType": "YulTypedName",
"src": "11864:6:8",
"type": ""
}
],
"src": "11791:357:8"
},
{
"body": {
"nativeSrc": "12186:28:8",
"nodeType": "YulBlock",
"src": "12186:28:8",
"statements": [
{
"nativeSrc": "12196:12:8",
"nodeType": "YulAssignment",
"src": "12196:12:8",
"value": {
"name": "value",
"nativeSrc": "12203:5:8",
"nodeType": "YulIdentifier",
"src": "12203:5:8"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "12196:3:8",
"nodeType": "YulIdentifier",
"src": "12196:3:8"
}
]
}
]
},
"name": "identity",
"nativeSrc": "12154:60:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "12172:5:8",
"nodeType": "YulTypedName",
"src": "12172:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "12182:3:8",
"nodeType": "YulTypedName",
"src": "12182:3:8",
"type": ""
}
],
"src": "12154:60:8"
},
{
"body": {
"nativeSrc": "12280:82:8",
"nodeType": "YulBlock",
"src": "12280:82:8",
"statements": [
{
"nativeSrc": "12290:66:8",
"nodeType": "YulAssignment",
"src": "12290:66:8",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "12348:5:8",
"nodeType": "YulIdentifier",
"src": "12348:5:8"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "12330:17:8",
"nodeType": "YulIdentifier",
"src": "12330:17:8"
},
"nativeSrc": "12330:24:8",
"nodeType": "YulFunctionCall",
"src": "12330:24:8"
}
],
"functionName": {
"name": "identity",
"nativeSrc": "12321:8:8",
"nodeType": "YulIdentifier",
"src": "12321:8:8"
},
"nativeSrc": "12321:34:8",
"nodeType": "YulFunctionCall",
"src": "12321:34:8"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "12303:17:8",
"nodeType": "YulIdentifier",
"src": "12303:17:8"
},
"nativeSrc": "12303:53:8",
"nodeType": "YulFunctionCall",
"src": "12303:53:8"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "12290:9:8",
"nodeType": "YulIdentifier",
"src": "12290:9:8"
}
]
}
]
},
"name": "convert_t_uint160_to_t_uint160",
"nativeSrc": "12220:142:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "12260:5:8",
"nodeType": "YulTypedName",
"src": "12260:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "12270:9:8",
"nodeType": "YulTypedName",
"src": "12270:9:8",
"type": ""
}
],
"src": "12220:142:8"
},
{
"body": {
"nativeSrc": "12428:66:8",
"nodeType": "YulBlock",
"src": "12428:66:8",
"statements": [
{
"nativeSrc": "12438:50:8",
"nodeType": "YulAssignment",
"src": "12438:50:8",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "12482:5:8",
"nodeType": "YulIdentifier",
"src": "12482:5:8"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_uint160",
"nativeSrc": "12451:30:8",
"nodeType": "YulIdentifier",
"src": "12451:30:8"
},
"nativeSrc": "12451:37:8",
"nodeType": "YulFunctionCall",
"src": "12451:37:8"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "12438:9:8",
"nodeType": "YulIdentifier",
"src": "12438:9:8"
}
]
}
]
},
"name": "convert_t_uint160_to_t_address",
"nativeSrc": "12368:126:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "12408:5:8",
"nodeType": "YulTypedName",
"src": "12408:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "12418:9:8",
"nodeType": "YulTypedName",
"src": "12418:9:8",
"type": ""
}
],
"src": "12368:126:8"
},
{
"body": {
"nativeSrc": "12574:66:8",
"nodeType": "YulBlock",
"src": "12574:66:8",
"statements": [
{
"nativeSrc": "12584:50:8",
"nodeType": "YulAssignment",
"src": "12584:50:8",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "12628:5:8",
"nodeType": "YulIdentifier",
"src": "12628:5:8"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_address",
"nativeSrc": "12597:30:8",
"nodeType": "YulIdentifier",
"src": "12597:30:8"
},
"nativeSrc": "12597:37:8",
"nodeType": "YulFunctionCall",
"src": "12597:37:8"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "12584:9:8",
"nodeType": "YulIdentifier",
"src": "12584:9:8"
}
]
}
]
},
"name": "convert_t_contract$_IERC20_$564_to_t_address",
"nativeSrc": "12500:140:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "12554:5:8",
"nodeType": "YulTypedName",
"src": "12554:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "12564:9:8",
"nodeType": "YulTypedName",
"src": "12564:9:8",
"type": ""
}
],
"src": "12500:140:8"
},
{
"body": {
"nativeSrc": "12725:80:8",
"nodeType": "YulBlock",
"src": "12725:80:8",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "12742:3:8",
"nodeType": "YulIdentifier",
"src": "12742:3:8"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "12792:5:8",
"nodeType": "YulIdentifier",
"src": "12792:5:8"
}
],
"functionName": {
"name": "convert_t_contract$_IERC20_$564_to_t_address",
"nativeSrc": "12747:44:8",
"nodeType": "YulIdentifier",
"src": "12747:44:8"
},
"nativeSrc": "12747:51:8",
"nodeType": "YulFunctionCall",
"src": "12747:51:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "12735:6:8",
"nodeType": "YulIdentifier",
"src": "12735:6:8"
},
"nativeSrc": "12735:64:8",
"nodeType": "YulFunctionCall",
"src": "12735:64:8"
},
"nativeSrc": "12735:64:8",
"nodeType": "YulExpressionStatement",
"src": "12735:64:8"
}
]
},
"name": "abi_encode_t_contract$_IERC20_$564_to_t_address_fromStack",
"nativeSrc": "12646:159:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "12713:5:8",
"nodeType": "YulTypedName",
"src": "12713:5:8",
"type": ""
},
{
"name": "pos",
"nativeSrc": "12720:3:8",
"nodeType": "YulTypedName",
"src": "12720:3:8",
"type": ""
}
],
"src": "12646:159:8"
},
{
"body": {
"nativeSrc": "12923:138:8",
"nodeType": "YulBlock",
"src": "12923:138:8",
"statements": [
{
"nativeSrc": "12933:26:8",
"nodeType": "YulAssignment",
"src": "12933:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "12945:9:8",
"nodeType": "YulIdentifier",
"src": "12945:9:8"
},
{
"kind": "number",
"nativeSrc": "12956:2:8",
"nodeType": "YulLiteral",
"src": "12956:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12941:3:8",
"nodeType": "YulIdentifier",
"src": "12941:3:8"
},
"nativeSrc": "12941:18:8",
"nodeType": "YulFunctionCall",
"src": "12941:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "12933:4:8",
"nodeType": "YulIdentifier",
"src": "12933:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "13027:6:8",
"nodeType": "YulIdentifier",
"src": "13027:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "13040:9:8",
"nodeType": "YulIdentifier",
"src": "13040:9:8"
},
{
"kind": "number",
"nativeSrc": "13051:1:8",
"nodeType": "YulLiteral",
"src": "13051:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "13036:3:8",
"nodeType": "YulIdentifier",
"src": "13036:3:8"
},
"nativeSrc": "13036:17:8",
"nodeType": "YulFunctionCall",
"src": "13036:17:8"
}
],
"functionName": {
"name": "abi_encode_t_contract$_IERC20_$564_to_t_address_fromStack",
"nativeSrc": "12969:57:8",
"nodeType": "YulIdentifier",
"src": "12969:57:8"
},
"nativeSrc": "12969:85:8",
"nodeType": "YulFunctionCall",
"src": "12969:85:8"
},
"nativeSrc": "12969:85:8",
"nodeType": "YulExpressionStatement",
"src": "12969:85:8"
}
]
},
"name": "abi_encode_tuple_t_contract$_IERC20_$564__to_t_address__fromStack_reversed",
"nativeSrc": "12811:250:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "12895:9:8",
"nodeType": "YulTypedName",
"src": "12895:9:8",
"type": ""
},
{
"name": "value0",
"nativeSrc": "12907:6:8",
"nodeType": "YulTypedName",
"src": "12907:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "12918:4:8",
"nodeType": "YulTypedName",
"src": "12918:4:8",
"type": ""
}
],
"src": "12811:250:8"
},
{
"body": {
"nativeSrc": "13107:76:8",
"nodeType": "YulBlock",
"src": "13107:76:8",
"statements": [
{
"body": {
"nativeSrc": "13161:16:8",
"nodeType": "YulBlock",
"src": "13161:16:8",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "13170:1:8",
"nodeType": "YulLiteral",
"src": "13170:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "13173:1:8",
"nodeType": "YulLiteral",
"src": "13173:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "13163:6:8",
"nodeType": "YulIdentifier",
"src": "13163:6:8"
},
"nativeSrc": "13163:12:8",
"nodeType": "YulFunctionCall",
"src": "13163:12:8"
},
"nativeSrc": "13163:12:8",
"nodeType": "YulExpressionStatement",
"src": "13163:12:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "13130:5:8",
"nodeType": "YulIdentifier",
"src": "13130:5:8"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "13152:5:8",
"nodeType": "YulIdentifier",
"src": "13152:5:8"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nativeSrc": "13137:14:8",
"nodeType": "YulIdentifier",
"src": "13137:14:8"
},
"nativeSrc": "13137:21:8",
"nodeType": "YulFunctionCall",
"src": "13137:21:8"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "13127:2:8",
"nodeType": "YulIdentifier",
"src": "13127:2:8"
},
"nativeSrc": "13127:32:8",
"nodeType": "YulFunctionCall",
"src": "13127:32:8"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "13120:6:8",
"nodeType": "YulIdentifier",
"src": "13120:6:8"
},
"nativeSrc": "13120:40:8",
"nodeType": "YulFunctionCall",
"src": "13120:40:8"
},
"nativeSrc": "13117:60:8",
"nodeType": "YulIf",
"src": "13117:60:8"
}
]
},
"name": "validator_revert_t_bool",
"nativeSrc": "13067:116:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "13100:5:8",
"nodeType": "YulTypedName",
"src": "13100:5:8",
"type": ""
}
],
"src": "13067:116:8"
},
{
"body": {
"nativeSrc": "13238:84:8",
"nodeType": "YulBlock",
"src": "13238:84:8",
"statements": [
{
"nativeSrc": "13248:29:8",
"nodeType": "YulAssignment",
"src": "13248:29:8",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "13270:6:8",
"nodeType": "YulIdentifier",
"src": "13270:6:8"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "13257:12:8",
"nodeType": "YulIdentifier",
"src": "13257:12:8"
},
"nativeSrc": "13257:20:8",
"nodeType": "YulFunctionCall",
"src": "13257:20:8"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "13248:5:8",
"nodeType": "YulIdentifier",
"src": "13248:5:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "13310:5:8",
"nodeType": "YulIdentifier",
"src": "13310:5:8"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nativeSrc": "13286:23:8",
"nodeType": "YulIdentifier",
"src": "13286:23:8"
},
"nativeSrc": "13286:30:8",
"nodeType": "YulFunctionCall",
"src": "13286:30:8"
},
"nativeSrc": "13286:30:8",
"nodeType": "YulExpressionStatement",
"src": "13286:30:8"
}
]
},
"name": "abi_decode_t_bool",
"nativeSrc": "13189:133:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "13216:6:8",
"nodeType": "YulTypedName",
"src": "13216:6:8",
"type": ""
},
{
"name": "end",
"nativeSrc": "13224:3:8",
"nodeType": "YulTypedName",
"src": "13224:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "13232:5:8",
"nodeType": "YulTypedName",
"src": "13232:5:8",
"type": ""
}
],
"src": "13189:133:8"
},
{
"body": {
"nativeSrc": "13425:516:8",
"nodeType": "YulBlock",
"src": "13425:516:8",
"statements": [
{
"body": {
"nativeSrc": "13471:83:8",
"nodeType": "YulBlock",
"src": "13471:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "13473:77:8",
"nodeType": "YulIdentifier",
"src": "13473:77:8"
},
"nativeSrc": "13473:79:8",
"nodeType": "YulFunctionCall",
"src": "13473:79:8"
},
"nativeSrc": "13473:79:8",
"nodeType": "YulExpressionStatement",
"src": "13473:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "13446:7:8",
"nodeType": "YulIdentifier",
"src": "13446:7:8"
},
{
"name": "headStart",
"nativeSrc": "13455:9:8",
"nodeType": "YulIdentifier",
"src": "13455:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "13442:3:8",
"nodeType": "YulIdentifier",
"src": "13442:3:8"
},
"nativeSrc": "13442:23:8",
"nodeType": "YulFunctionCall",
"src": "13442:23:8"
},
{
"kind": "number",
"nativeSrc": "13467:2:8",
"nodeType": "YulLiteral",
"src": "13467:2:8",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "13438:3:8",
"nodeType": "YulIdentifier",
"src": "13438:3:8"
},
"nativeSrc": "13438:32:8",
"nodeType": "YulFunctionCall",
"src": "13438:32:8"
},
"nativeSrc": "13435:119:8",
"nodeType": "YulIf",
"src": "13435:119:8"
},
{
"nativeSrc": "13564:117:8",
"nodeType": "YulBlock",
"src": "13564:117:8",
"statements": [
{
"nativeSrc": "13579:15:8",
"nodeType": "YulVariableDeclaration",
"src": "13579:15:8",
"value": {
"kind": "number",
"nativeSrc": "13593:1:8",
"nodeType": "YulLiteral",
"src": "13593:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "13583:6:8",
"nodeType": "YulTypedName",
"src": "13583:6:8",
"type": ""
}
]
},
{
"nativeSrc": "13608:63:8",
"nodeType": "YulAssignment",
"src": "13608:63:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "13643:9:8",
"nodeType": "YulIdentifier",
"src": "13643:9:8"
},
{
"name": "offset",
"nativeSrc": "13654:6:8",
"nodeType": "YulIdentifier",
"src": "13654:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "13639:3:8",
"nodeType": "YulIdentifier",
"src": "13639:3:8"
},
"nativeSrc": "13639:22:8",
"nodeType": "YulFunctionCall",
"src": "13639:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "13663:7:8",
"nodeType": "YulIdentifier",
"src": "13663:7:8"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "13618:20:8",
"nodeType": "YulIdentifier",
"src": "13618:20:8"
},
"nativeSrc": "13618:53:8",
"nodeType": "YulFunctionCall",
"src": "13618:53:8"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "13608:6:8",
"nodeType": "YulIdentifier",
"src": "13608:6:8"
}
]
}
]
},
{
"nativeSrc": "13691:118:8",
"nodeType": "YulBlock",
"src": "13691:118:8",
"statements": [
{
"nativeSrc": "13706:16:8",
"nodeType": "YulVariableDeclaration",
"src": "13706:16:8",
"value": {
"kind": "number",
"nativeSrc": "13720:2:8",
"nodeType": "YulLiteral",
"src": "13720:2:8",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "13710:6:8",
"nodeType": "YulTypedName",
"src": "13710:6:8",
"type": ""
}
]
},
{
"nativeSrc": "13736:63:8",
"nodeType": "YulAssignment",
"src": "13736:63:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "13771:9:8",
"nodeType": "YulIdentifier",
"src": "13771:9:8"
},
{
"name": "offset",
"nativeSrc": "13782:6:8",
"nodeType": "YulIdentifier",
"src": "13782:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "13767:3:8",
"nodeType": "YulIdentifier",
"src": "13767:3:8"
},
"nativeSrc": "13767:22:8",
"nodeType": "YulFunctionCall",
"src": "13767:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "13791:7:8",
"nodeType": "YulIdentifier",
"src": "13791:7:8"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "13746:20:8",
"nodeType": "YulIdentifier",
"src": "13746:20:8"
},
"nativeSrc": "13746:53:8",
"nodeType": "YulFunctionCall",
"src": "13746:53:8"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "13736:6:8",
"nodeType": "YulIdentifier",
"src": "13736:6:8"
}
]
}
]
},
{
"nativeSrc": "13819:115:8",
"nodeType": "YulBlock",
"src": "13819:115:8",
"statements": [
{
"nativeSrc": "13834:16:8",
"nodeType": "YulVariableDeclaration",
"src": "13834:16:8",
"value": {
"kind": "number",
"nativeSrc": "13848:2:8",
"nodeType": "YulLiteral",
"src": "13848:2:8",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nativeSrc": "13838:6:8",
"nodeType": "YulTypedName",
"src": "13838:6:8",
"type": ""
}
]
},
{
"nativeSrc": "13864:60:8",
"nodeType": "YulAssignment",
"src": "13864:60:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "13896:9:8",
"nodeType": "YulIdentifier",
"src": "13896:9:8"
},
{
"name": "offset",
"nativeSrc": "13907:6:8",
"nodeType": "YulIdentifier",
"src": "13907:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "13892:3:8",
"nodeType": "YulIdentifier",
"src": "13892:3:8"
},
"nativeSrc": "13892:22:8",
"nodeType": "YulFunctionCall",
"src": "13892:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "13916:7:8",
"nodeType": "YulIdentifier",
"src": "13916:7:8"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nativeSrc": "13874:17:8",
"nodeType": "YulIdentifier",
"src": "13874:17:8"
},
"nativeSrc": "13874:50:8",
"nodeType": "YulFunctionCall",
"src": "13874:50:8"
},
"variableNames": [
{
"name": "value2",
"nativeSrc": "13864:6:8",
"nodeType": "YulIdentifier",
"src": "13864:6:8"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256t_bool",
"nativeSrc": "13328:613:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "13379:9:8",
"nodeType": "YulTypedName",
"src": "13379:9:8",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "13390:7:8",
"nodeType": "YulTypedName",
"src": "13390:7:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "13402:6:8",
"nodeType": "YulTypedName",
"src": "13402:6:8",
"type": ""
},
{
"name": "value1",
"nativeSrc": "13410:6:8",
"nodeType": "YulTypedName",
"src": "13410:6:8",
"type": ""
},
{
"name": "value2",
"nativeSrc": "13418:6:8",
"nodeType": "YulTypedName",
"src": "13418:6:8",
"type": ""
}
],
"src": "13328:613:8"
},
{
"body": {
"nativeSrc": "13975:152:8",
"nodeType": "YulBlock",
"src": "13975:152:8",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "13992:1:8",
"nodeType": "YulLiteral",
"src": "13992:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "13995:77:8",
"nodeType": "YulLiteral",
"src": "13995:77:8",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "13985:6:8",
"nodeType": "YulIdentifier",
"src": "13985:6:8"
},
"nativeSrc": "13985:88:8",
"nodeType": "YulFunctionCall",
"src": "13985:88:8"
},
"nativeSrc": "13985:88:8",
"nodeType": "YulExpressionStatement",
"src": "13985:88:8"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "14089:1:8",
"nodeType": "YulLiteral",
"src": "14089:1:8",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "14092:4:8",
"nodeType": "YulLiteral",
"src": "14092:4:8",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "14082:6:8",
"nodeType": "YulIdentifier",
"src": "14082:6:8"
},
"nativeSrc": "14082:15:8",
"nodeType": "YulFunctionCall",
"src": "14082:15:8"
},
"nativeSrc": "14082:15:8",
"nodeType": "YulExpressionStatement",
"src": "14082:15:8"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "14113:1:8",
"nodeType": "YulLiteral",
"src": "14113:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "14116:4:8",
"nodeType": "YulLiteral",
"src": "14116:4:8",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "14106:6:8",
"nodeType": "YulIdentifier",
"src": "14106:6:8"
},
"nativeSrc": "14106:15:8",
"nodeType": "YulFunctionCall",
"src": "14106:15:8"
},
"nativeSrc": "14106:15:8",
"nodeType": "YulExpressionStatement",
"src": "14106:15:8"
}
]
},
"name": "panic_error_0x22",
"nativeSrc": "13947:180:8",
"nodeType": "YulFunctionDefinition",
"src": "13947:180:8"
},
{
"body": {
"nativeSrc": "14184:269:8",
"nodeType": "YulBlock",
"src": "14184:269:8",
"statements": [
{
"nativeSrc": "14194:22:8",
"nodeType": "YulAssignment",
"src": "14194:22:8",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "14208:4:8",
"nodeType": "YulIdentifier",
"src": "14208:4:8"
},
{
"kind": "number",
"nativeSrc": "14214:1:8",
"nodeType": "YulLiteral",
"src": "14214:1:8",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nativeSrc": "14204:3:8",
"nodeType": "YulIdentifier",
"src": "14204:3:8"
},
"nativeSrc": "14204:12:8",
"nodeType": "YulFunctionCall",
"src": "14204:12:8"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "14194:6:8",
"nodeType": "YulIdentifier",
"src": "14194:6:8"
}
]
},
{
"nativeSrc": "14225:38:8",
"nodeType": "YulVariableDeclaration",
"src": "14225:38:8",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "14255:4:8",
"nodeType": "YulIdentifier",
"src": "14255:4:8"
},
{
"kind": "number",
"nativeSrc": "14261:1:8",
"nodeType": "YulLiteral",
"src": "14261:1:8",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "14251:3:8",
"nodeType": "YulIdentifier",
"src": "14251:3:8"
},
"nativeSrc": "14251:12:8",
"nodeType": "YulFunctionCall",
"src": "14251:12:8"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "14229:18:8",
"nodeType": "YulTypedName",
"src": "14229:18:8",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "14302:51:8",
"nodeType": "YulBlock",
"src": "14302:51:8",
"statements": [
{
"nativeSrc": "14316:27:8",
"nodeType": "YulAssignment",
"src": "14316:27:8",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "14330:6:8",
"nodeType": "YulIdentifier",
"src": "14330:6:8"
},
{
"kind": "number",
"nativeSrc": "14338:4:8",
"nodeType": "YulLiteral",
"src": "14338:4:8",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "14326:3:8",
"nodeType": "YulIdentifier",
"src": "14326:3:8"
},
"nativeSrc": "14326:17:8",
"nodeType": "YulFunctionCall",
"src": "14326:17:8"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "14316:6:8",
"nodeType": "YulIdentifier",
"src": "14316:6:8"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "14282:18:8",
"nodeType": "YulIdentifier",
"src": "14282:18:8"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "14275:6:8",
"nodeType": "YulIdentifier",
"src": "14275:6:8"
},
"nativeSrc": "14275:26:8",
"nodeType": "YulFunctionCall",
"src": "14275:26:8"
},
"nativeSrc": "14272:81:8",
"nodeType": "YulIf",
"src": "14272:81:8"
},
{
"body": {
"nativeSrc": "14405:42:8",
"nodeType": "YulBlock",
"src": "14405:42:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nativeSrc": "14419:16:8",
"nodeType": "YulIdentifier",
"src": "14419:16:8"
},
"nativeSrc": "14419:18:8",
"nodeType": "YulFunctionCall",
"src": "14419:18:8"
},
"nativeSrc": "14419:18:8",
"nodeType": "YulExpressionStatement",
"src": "14419:18:8"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "14369:18:8",
"nodeType": "YulIdentifier",
"src": "14369:18:8"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "14392:6:8",
"nodeType": "YulIdentifier",
"src": "14392:6:8"
},
{
"kind": "number",
"nativeSrc": "14400:2:8",
"nodeType": "YulLiteral",
"src": "14400:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "14389:2:8",
"nodeType": "YulIdentifier",
"src": "14389:2:8"
},
"nativeSrc": "14389:14:8",
"nodeType": "YulFunctionCall",
"src": "14389:14:8"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "14366:2:8",
"nodeType": "YulIdentifier",
"src": "14366:2:8"
},
"nativeSrc": "14366:38:8",
"nodeType": "YulFunctionCall",
"src": "14366:38:8"
},
"nativeSrc": "14363:84:8",
"nodeType": "YulIf",
"src": "14363:84:8"
}
]
},
"name": "extract_byte_array_length",
"nativeSrc": "14133:320:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "14168:4:8",
"nodeType": "YulTypedName",
"src": "14168:4:8",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "14177:6:8",
"nodeType": "YulTypedName",
"src": "14177:6:8",
"type": ""
}
],
"src": "14133:320:8"
},
{
"body": {
"nativeSrc": "14573:34:8",
"nodeType": "YulBlock",
"src": "14573:34:8",
"statements": [
{
"nativeSrc": "14583:18:8",
"nodeType": "YulAssignment",
"src": "14583:18:8",
"value": {
"name": "pos",
"nativeSrc": "14598:3:8",
"nodeType": "YulIdentifier",
"src": "14598:3:8"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "14583:11:8",
"nodeType": "YulIdentifier",
"src": "14583:11:8"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "14459:148:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "14545:3:8",
"nodeType": "YulTypedName",
"src": "14545:3:8",
"type": ""
},
{
"name": "length",
"nativeSrc": "14550:6:8",
"nodeType": "YulTypedName",
"src": "14550:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "14561:11:8",
"nodeType": "YulTypedName",
"src": "14561:11:8",
"type": ""
}
],
"src": "14459:148:8"
},
{
"body": {
"nativeSrc": "14667:87:8",
"nodeType": "YulBlock",
"src": "14667:87:8",
"statements": [
{
"nativeSrc": "14677:11:8",
"nodeType": "YulAssignment",
"src": "14677:11:8",
"value": {
"name": "ptr",
"nativeSrc": "14685:3:8",
"nodeType": "YulIdentifier",
"src": "14685:3:8"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "14677:4:8",
"nodeType": "YulIdentifier",
"src": "14677:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "14705:1:8",
"nodeType": "YulLiteral",
"src": "14705:1:8",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nativeSrc": "14708:3:8",
"nodeType": "YulIdentifier",
"src": "14708:3:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "14698:6:8",
"nodeType": "YulIdentifier",
"src": "14698:6:8"
},
"nativeSrc": "14698:14:8",
"nodeType": "YulFunctionCall",
"src": "14698:14:8"
},
"nativeSrc": "14698:14:8",
"nodeType": "YulExpressionStatement",
"src": "14698:14:8"
},
{
"nativeSrc": "14721:26:8",
"nodeType": "YulAssignment",
"src": "14721:26:8",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "14739:1:8",
"nodeType": "YulLiteral",
"src": "14739:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "14742:4:8",
"nodeType": "YulLiteral",
"src": "14742:4:8",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nativeSrc": "14729:9:8",
"nodeType": "YulIdentifier",
"src": "14729:9:8"
},
"nativeSrc": "14729:18:8",
"nodeType": "YulFunctionCall",
"src": "14729:18:8"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "14721:4:8",
"nodeType": "YulIdentifier",
"src": "14721:4:8"
}
]
}
]
},
"name": "array_dataslot_t_string_storage",
"nativeSrc": "14613:141:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nativeSrc": "14654:3:8",
"nodeType": "YulTypedName",
"src": "14654:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nativeSrc": "14662:4:8",
"nodeType": "YulTypedName",
"src": "14662:4:8",
"type": ""
}
],
"src": "14613:141:8"
},
{
"body": {
"nativeSrc": "14891:767:8",
"nodeType": "YulBlock",
"src": "14891:767:8",
"statements": [
{
"nativeSrc": "14901:29:8",
"nodeType": "YulVariableDeclaration",
"src": "14901:29:8",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "14924:5:8",
"nodeType": "YulIdentifier",
"src": "14924:5:8"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "14918:5:8",
"nodeType": "YulIdentifier",
"src": "14918:5:8"
},
"nativeSrc": "14918:12:8",
"nodeType": "YulFunctionCall",
"src": "14918:12:8"
},
"variables": [
{
"name": "slotValue",
"nativeSrc": "14905:9:8",
"nodeType": "YulTypedName",
"src": "14905:9:8",
"type": ""
}
]
},
{
"nativeSrc": "14939:50:8",
"nodeType": "YulVariableDeclaration",
"src": "14939:50:8",
"value": {
"arguments": [
{
"name": "slotValue",
"nativeSrc": "14979:9:8",
"nodeType": "YulIdentifier",
"src": "14979:9:8"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nativeSrc": "14953:25:8",
"nodeType": "YulIdentifier",
"src": "14953:25:8"
},
"nativeSrc": "14953:36:8",
"nodeType": "YulFunctionCall",
"src": "14953:36:8"
},
"variables": [
{
"name": "length",
"nativeSrc": "14943:6:8",
"nodeType": "YulTypedName",
"src": "14943:6:8",
"type": ""
}
]
},
{
"nativeSrc": "14998:96:8",
"nodeType": "YulAssignment",
"src": "14998:96:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "15082:3:8",
"nodeType": "YulIdentifier",
"src": "15082:3:8"
},
{
"name": "length",
"nativeSrc": "15087:6:8",
"nodeType": "YulIdentifier",
"src": "15087:6:8"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "15005:76:8",
"nodeType": "YulIdentifier",
"src": "15005:76:8"
},
"nativeSrc": "15005:89:8",
"nodeType": "YulFunctionCall",
"src": "15005:89:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "14998:3:8",
"nodeType": "YulIdentifier",
"src": "14998:3:8"
}
]
},
{
"cases": [
{
"body": {
"nativeSrc": "15143:159:8",
"nodeType": "YulBlock",
"src": "15143:159:8",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "15196:3:8",
"nodeType": "YulIdentifier",
"src": "15196:3:8"
},
{
"arguments": [
{
"name": "slotValue",
"nativeSrc": "15205:9:8",
"nodeType": "YulIdentifier",
"src": "15205:9:8"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "15220:4:8",
"nodeType": "YulLiteral",
"src": "15220:4:8",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "not",
"nativeSrc": "15216:3:8",
"nodeType": "YulIdentifier",
"src": "15216:3:8"
},
"nativeSrc": "15216:9:8",
"nodeType": "YulFunctionCall",
"src": "15216:9:8"
}
],
"functionName": {
"name": "and",
"nativeSrc": "15201:3:8",
"nodeType": "YulIdentifier",
"src": "15201:3:8"
},
"nativeSrc": "15201:25:8",
"nodeType": "YulFunctionCall",
"src": "15201:25:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "15189:6:8",
"nodeType": "YulIdentifier",
"src": "15189:6:8"
},
"nativeSrc": "15189:38:8",
"nodeType": "YulFunctionCall",
"src": "15189:38:8"
},
"nativeSrc": "15189:38:8",
"nodeType": "YulExpressionStatement",
"src": "15189:38:8"
},
{
"nativeSrc": "15240:52:8",
"nodeType": "YulAssignment",
"src": "15240:52:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "15251:3:8",
"nodeType": "YulIdentifier",
"src": "15251:3:8"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "15260:6:8",
"nodeType": "YulIdentifier",
"src": "15260:6:8"
},
{
"arguments": [
{
"arguments": [
{
"name": "length",
"nativeSrc": "15282:6:8",
"nodeType": "YulIdentifier",
"src": "15282:6:8"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "15275:6:8",
"nodeType": "YulIdentifier",
"src": "15275:6:8"
},
"nativeSrc": "15275:14:8",
"nodeType": "YulFunctionCall",
"src": "15275:14:8"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "15268:6:8",
"nodeType": "YulIdentifier",
"src": "15268:6:8"
},
"nativeSrc": "15268:22:8",
"nodeType": "YulFunctionCall",
"src": "15268:22:8"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "15256:3:8",
"nodeType": "YulIdentifier",
"src": "15256:3:8"
},
"nativeSrc": "15256:35:8",
"nodeType": "YulFunctionCall",
"src": "15256:35:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "15247:3:8",
"nodeType": "YulIdentifier",
"src": "15247:3:8"
},
"nativeSrc": "15247:45:8",
"nodeType": "YulFunctionCall",
"src": "15247:45:8"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "15240:3:8",
"nodeType": "YulIdentifier",
"src": "15240:3:8"
}
]
}
]
},
"nativeSrc": "15136:166:8",
"nodeType": "YulCase",
"src": "15136:166:8",
"value": {
"kind": "number",
"nativeSrc": "15141:1:8",
"nodeType": "YulLiteral",
"src": "15141:1:8",
"type": "",
"value": "0"
}
},
{
"body": {
"nativeSrc": "15318:334:8",
"nodeType": "YulBlock",
"src": "15318:334:8",
"statements": [
{
"nativeSrc": "15363:53:8",
"nodeType": "YulVariableDeclaration",
"src": "15363:53:8",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "15410:5:8",
"nodeType": "YulIdentifier",
"src": "15410:5:8"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nativeSrc": "15378:31:8",
"nodeType": "YulIdentifier",
"src": "15378:31:8"
},
"nativeSrc": "15378:38:8",
"nodeType": "YulFunctionCall",
"src": "15378:38:8"
},
"variables": [
{
"name": "dataPos",
"nativeSrc": "15367:7:8",
"nodeType": "YulTypedName",
"src": "15367:7:8",
"type": ""
}
]
},
{
"nativeSrc": "15429:10:8",
"nodeType": "YulVariableDeclaration",
"src": "15429:10:8",
"value": {
"kind": "number",
"nativeSrc": "15438:1:8",
"nodeType": "YulLiteral",
"src": "15438:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "15433:1:8",
"nodeType": "YulTypedName",
"src": "15433:1:8",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "15496:110:8",
"nodeType": "YulBlock",
"src": "15496:110:8",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nativeSrc": "15525:3:8",
"nodeType": "YulIdentifier",
"src": "15525:3:8"
},
{
"name": "i",
"nativeSrc": "15530:1:8",
"nodeType": "YulIdentifier",
"src": "15530:1:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "15521:3:8",
"nodeType": "YulIdentifier",
"src": "15521:3:8"
},
"nativeSrc": "15521:11:8",
"nodeType": "YulFunctionCall",
"src": "15521:11:8"
},
{
"arguments": [
{
"name": "dataPos",
"nativeSrc": "15540:7:8",
"nodeType": "YulIdentifier",
"src": "15540:7:8"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "15534:5:8",
"nodeType": "YulIdentifier",
"src": "15534:5:8"
},
"nativeSrc": "15534:14:8",
"nodeType": "YulFunctionCall",
"src": "15534:14:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "15514:6:8",
"nodeType": "YulIdentifier",
"src": "15514:6:8"
},
"nativeSrc": "15514:35:8",
"nodeType": "YulFunctionCall",
"src": "15514:35:8"
},
"nativeSrc": "15514:35:8",
"nodeType": "YulExpressionStatement",
"src": "15514:35:8"
},
{
"nativeSrc": "15566:26:8",
"nodeType": "YulAssignment",
"src": "15566:26:8",
"value": {
"arguments": [
{
"name": "dataPos",
"nativeSrc": "15581:7:8",
"nodeType": "YulIdentifier",
"src": "15581:7:8"
},
{
"kind": "number",
"nativeSrc": "15590:1:8",
"nodeType": "YulLiteral",
"src": "15590:1:8",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "15577:3:8",
"nodeType": "YulIdentifier",
"src": "15577:3:8"
},
"nativeSrc": "15577:15:8",
"nodeType": "YulFunctionCall",
"src": "15577:15:8"
},
"variableNames": [
{
"name": "dataPos",
"nativeSrc": "15566:7:8",
"nodeType": "YulIdentifier",
"src": "15566:7:8"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "15463:1:8",
"nodeType": "YulIdentifier",
"src": "15463:1:8"
},
{
"name": "length",
"nativeSrc": "15466:6:8",
"nodeType": "YulIdentifier",
"src": "15466:6:8"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "15460:2:8",
"nodeType": "YulIdentifier",
"src": "15460:2:8"
},
"nativeSrc": "15460:13:8",
"nodeType": "YulFunctionCall",
"src": "15460:13:8"
},
"nativeSrc": "15452:154:8",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "15474:21:8",
"nodeType": "YulBlock",
"src": "15474:21:8",
"statements": [
{
"nativeSrc": "15476:17:8",
"nodeType": "YulAssignment",
"src": "15476:17:8",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "15485:1:8",
"nodeType": "YulIdentifier",
"src": "15485:1:8"
},
{
"kind": "number",
"nativeSrc": "15488:4:8",
"nodeType": "YulLiteral",
"src": "15488:4:8",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "15481:3:8",
"nodeType": "YulIdentifier",
"src": "15481:3:8"
},
"nativeSrc": "15481:12:8",
"nodeType": "YulFunctionCall",
"src": "15481:12:8"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "15476:1:8",
"nodeType": "YulIdentifier",
"src": "15476:1:8"
}
]
}
]
},
"pre": {
"nativeSrc": "15456:3:8",
"nodeType": "YulBlock",
"src": "15456:3:8",
"statements": []
},
"src": "15452:154:8"
},
{
"nativeSrc": "15619:23:8",
"nodeType": "YulAssignment",
"src": "15619:23:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "15630:3:8",
"nodeType": "YulIdentifier",
"src": "15630:3:8"
},
{
"name": "length",
"nativeSrc": "15635:6:8",
"nodeType": "YulIdentifier",
"src": "15635:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "15626:3:8",
"nodeType": "YulIdentifier",
"src": "15626:3:8"
},
"nativeSrc": "15626:16:8",
"nodeType": "YulFunctionCall",
"src": "15626:16:8"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "15619:3:8",
"nodeType": "YulIdentifier",
"src": "15619:3:8"
}
]
}
]
},
"nativeSrc": "15311:341:8",
"nodeType": "YulCase",
"src": "15311:341:8",
"value": {
"kind": "number",
"nativeSrc": "15316:1:8",
"nodeType": "YulLiteral",
"src": "15316:1:8",
"type": "",
"value": "1"
}
}
],
"expression": {
"arguments": [
{
"name": "slotValue",
"nativeSrc": "15114:9:8",
"nodeType": "YulIdentifier",
"src": "15114:9:8"
},
{
"kind": "number",
"nativeSrc": "15125:1:8",
"nodeType": "YulLiteral",
"src": "15125:1:8",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "15110:3:8",
"nodeType": "YulIdentifier",
"src": "15110:3:8"
},
"nativeSrc": "15110:17:8",
"nodeType": "YulFunctionCall",
"src": "15110:17:8"
},
"nativeSrc": "15103:549:8",
"nodeType": "YulSwitch",
"src": "15103:549:8"
}
]
},
"name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "14784:874:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "14872:5:8",
"nodeType": "YulTypedName",
"src": "14872:5:8",
"type": ""
},
{
"name": "pos",
"nativeSrc": "14879:3:8",
"nodeType": "YulTypedName",
"src": "14879:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "14887:3:8",
"nodeType": "YulTypedName",
"src": "14887:3:8",
"type": ""
}
],
"src": "14784:874:8"
},
{
"body": {
"nativeSrc": "15797:136:8",
"nodeType": "YulBlock",
"src": "15797:136:8",
"statements": [
{
"nativeSrc": "15808:99:8",
"nodeType": "YulAssignment",
"src": "15808:99:8",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "15894:6:8",
"nodeType": "YulIdentifier",
"src": "15894:6:8"
},
{
"name": "pos",
"nativeSrc": "15903:3:8",
"nodeType": "YulIdentifier",
"src": "15903:3:8"
}
],
"functionName": {
"name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "15815:78:8",
"nodeType": "YulIdentifier",
"src": "15815:78:8"
},
"nativeSrc": "15815:92:8",
"nodeType": "YulFunctionCall",
"src": "15815:92:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "15808:3:8",
"nodeType": "YulIdentifier",
"src": "15808:3:8"
}
]
},
{
"nativeSrc": "15917:10:8",
"nodeType": "YulAssignment",
"src": "15917:10:8",
"value": {
"name": "pos",
"nativeSrc": "15924:3:8",
"nodeType": "YulIdentifier",
"src": "15924:3:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "15917:3:8",
"nodeType": "YulIdentifier",
"src": "15917:3:8"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_string_storage__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nativeSrc": "15664:269:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "15776:3:8",
"nodeType": "YulTypedName",
"src": "15776:3:8",
"type": ""
},
{
"name": "value0",
"nativeSrc": "15782:6:8",
"nodeType": "YulTypedName",
"src": "15782:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "15793:3:8",
"nodeType": "YulTypedName",
"src": "15793:3:8",
"type": ""
}
],
"src": "15664:269:8"
},
{
"body": {
"nativeSrc": "15983:49:8",
"nodeType": "YulBlock",
"src": "15983:49:8",
"statements": [
{
"nativeSrc": "15993:33:8",
"nodeType": "YulAssignment",
"src": "15993:33:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "16011:5:8",
"nodeType": "YulIdentifier",
"src": "16011:5:8"
},
{
"kind": "number",
"nativeSrc": "16018:2:8",
"nodeType": "YulLiteral",
"src": "16018:2:8",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "16007:3:8",
"nodeType": "YulIdentifier",
"src": "16007:3:8"
},
"nativeSrc": "16007:14:8",
"nodeType": "YulFunctionCall",
"src": "16007:14:8"
},
{
"kind": "number",
"nativeSrc": "16023:2:8",
"nodeType": "YulLiteral",
"src": "16023:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "div",
"nativeSrc": "16003:3:8",
"nodeType": "YulIdentifier",
"src": "16003:3:8"
},
"nativeSrc": "16003:23:8",
"nodeType": "YulFunctionCall",
"src": "16003:23:8"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "15993:6:8",
"nodeType": "YulIdentifier",
"src": "15993:6:8"
}
]
}
]
},
"name": "divide_by_32_ceil",
"nativeSrc": "15939:93:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "15966:5:8",
"nodeType": "YulTypedName",
"src": "15966:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "15976:6:8",
"nodeType": "YulTypedName",
"src": "15976:6:8",
"type": ""
}
],
"src": "15939:93:8"
},
{
"body": {
"nativeSrc": "16091:54:8",
"nodeType": "YulBlock",
"src": "16091:54:8",
"statements": [
{
"nativeSrc": "16101:37:8",
"nodeType": "YulAssignment",
"src": "16101:37:8",
"value": {
"arguments": [
{
"name": "bits",
"nativeSrc": "16126:4:8",
"nodeType": "YulIdentifier",
"src": "16126:4:8"
},
{
"name": "value",
"nativeSrc": "16132:5:8",
"nodeType": "YulIdentifier",
"src": "16132:5:8"
}
],
"functionName": {
"name": "shl",
"nativeSrc": "16122:3:8",
"nodeType": "YulIdentifier",
"src": "16122:3:8"
},
"nativeSrc": "16122:16:8",
"nodeType": "YulFunctionCall",
"src": "16122:16:8"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "16101:8:8",
"nodeType": "YulIdentifier",
"src": "16101:8:8"
}
]
}
]
},
"name": "shift_left_dynamic",
"nativeSrc": "16038:107:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nativeSrc": "16066:4:8",
"nodeType": "YulTypedName",
"src": "16066:4:8",
"type": ""
},
{
"name": "value",
"nativeSrc": "16072:5:8",
"nodeType": "YulTypedName",
"src": "16072:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "16082:8:8",
"nodeType": "YulTypedName",
"src": "16082:8:8",
"type": ""
}
],
"src": "16038:107:8"
},
{
"body": {
"nativeSrc": "16227:317:8",
"nodeType": "YulBlock",
"src": "16227:317:8",
"statements": [
{
"nativeSrc": "16237:35:8",
"nodeType": "YulVariableDeclaration",
"src": "16237:35:8",
"value": {
"arguments": [
{
"name": "shiftBytes",
"nativeSrc": "16258:10:8",
"nodeType": "YulIdentifier",
"src": "16258:10:8"
},
{
"kind": "number",
"nativeSrc": "16270:1:8",
"nodeType": "YulLiteral",
"src": "16270:1:8",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "16254:3:8",
"nodeType": "YulIdentifier",
"src": "16254:3:8"
},
"nativeSrc": "16254:18:8",
"nodeType": "YulFunctionCall",
"src": "16254:18:8"
},
"variables": [
{
"name": "shiftBits",
"nativeSrc": "16241:9:8",
"nodeType": "YulTypedName",
"src": "16241:9:8",
"type": ""
}
]
},
{
"nativeSrc": "16281:109:8",
"nodeType": "YulVariableDeclaration",
"src": "16281:109:8",
"value": {
"arguments": [
{
"name": "shiftBits",
"nativeSrc": "16312:9:8",
"nodeType": "YulIdentifier",
"src": "16312:9:8"
},
{
"kind": "number",
"nativeSrc": "16323:66:8",
"nodeType": "YulLiteral",
"src": "16323:66:8",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "16293:18:8",
"nodeType": "YulIdentifier",
"src": "16293:18:8"
},
"nativeSrc": "16293:97:8",
"nodeType": "YulFunctionCall",
"src": "16293:97:8"
},
"variables": [
{
"name": "mask",
"nativeSrc": "16285:4:8",
"nodeType": "YulTypedName",
"src": "16285:4:8",
"type": ""
}
]
},
{
"nativeSrc": "16399:51:8",
"nodeType": "YulAssignment",
"src": "16399:51:8",
"value": {
"arguments": [
{
"name": "shiftBits",
"nativeSrc": "16430:9:8",
"nodeType": "YulIdentifier",
"src": "16430:9:8"
},
{
"name": "toInsert",
"nativeSrc": "16441:8:8",
"nodeType": "YulIdentifier",
"src": "16441:8:8"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "16411:18:8",
"nodeType": "YulIdentifier",
"src": "16411:18:8"
},
"nativeSrc": "16411:39:8",
"nodeType": "YulFunctionCall",
"src": "16411:39:8"
},
"variableNames": [
{
"name": "toInsert",
"nativeSrc": "16399:8:8",
"nodeType": "YulIdentifier",
"src": "16399:8:8"
}
]
},
{
"nativeSrc": "16459:30:8",
"nodeType": "YulAssignment",
"src": "16459:30:8",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "16472:5:8",
"nodeType": "YulIdentifier",
"src": "16472:5:8"
},
{
"arguments": [
{
"name": "mask",
"nativeSrc": "16483:4:8",
"nodeType": "YulIdentifier",
"src": "16483:4:8"
}
],
"functionName": {
"name": "not",
"nativeSrc": "16479:3:8",
"nodeType": "YulIdentifier",
"src": "16479:3:8"
},
"nativeSrc": "16479:9:8",
"nodeType": "YulFunctionCall",
"src": "16479:9:8"
}
],
"functionName": {
"name": "and",
"nativeSrc": "16468:3:8",
"nodeType": "YulIdentifier",
"src": "16468:3:8"
},
"nativeSrc": "16468:21:8",
"nodeType": "YulFunctionCall",
"src": "16468:21:8"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "16459:5:8",
"nodeType": "YulIdentifier",
"src": "16459:5:8"
}
]
},
{
"nativeSrc": "16498:40:8",
"nodeType": "YulAssignment",
"src": "16498:40:8",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "16511:5:8",
"nodeType": "YulIdentifier",
"src": "16511:5:8"
},
{
"arguments": [
{
"name": "toInsert",
"nativeSrc": "16522:8:8",
"nodeType": "YulIdentifier",
"src": "16522:8:8"
},
{
"name": "mask",
"nativeSrc": "16532:4:8",
"nodeType": "YulIdentifier",
"src": "16532:4:8"
}
],
"functionName": {
"name": "and",
"nativeSrc": "16518:3:8",
"nodeType": "YulIdentifier",
"src": "16518:3:8"
},
"nativeSrc": "16518:19:8",
"nodeType": "YulFunctionCall",
"src": "16518:19:8"
}
],
"functionName": {
"name": "or",
"nativeSrc": "16508:2:8",
"nodeType": "YulIdentifier",
"src": "16508:2:8"
},
"nativeSrc": "16508:30:8",
"nodeType": "YulFunctionCall",
"src": "16508:30:8"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "16498:6:8",
"nodeType": "YulIdentifier",
"src": "16498:6:8"
}
]
}
]
},
"name": "update_byte_slice_dynamic32",
"nativeSrc": "16151:393:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "16188:5:8",
"nodeType": "YulTypedName",
"src": "16188:5:8",
"type": ""
},
{
"name": "shiftBytes",
"nativeSrc": "16195:10:8",
"nodeType": "YulTypedName",
"src": "16195:10:8",
"type": ""
},
{
"name": "toInsert",
"nativeSrc": "16207:8:8",
"nodeType": "YulTypedName",
"src": "16207:8:8",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "16220:6:8",
"nodeType": "YulTypedName",
"src": "16220:6:8",
"type": ""
}
],
"src": "16151:393:8"
},
{
"body": {
"nativeSrc": "16610:82:8",
"nodeType": "YulBlock",
"src": "16610:82:8",
"statements": [
{
"nativeSrc": "16620:66:8",
"nodeType": "YulAssignment",
"src": "16620:66:8",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "16678:5:8",
"nodeType": "YulIdentifier",
"src": "16678:5:8"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "16660:17:8",
"nodeType": "YulIdentifier",
"src": "16660:17:8"
},
"nativeSrc": "16660:24:8",
"nodeType": "YulFunctionCall",
"src": "16660:24:8"
}
],
"functionName": {
"name": "identity",
"nativeSrc": "16651:8:8",
"nodeType": "YulIdentifier",
"src": "16651:8:8"
},
"nativeSrc": "16651:34:8",
"nodeType": "YulFunctionCall",
"src": "16651:34:8"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "16633:17:8",
"nodeType": "YulIdentifier",
"src": "16633:17:8"
},
"nativeSrc": "16633:53:8",
"nodeType": "YulFunctionCall",
"src": "16633:53:8"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "16620:9:8",
"nodeType": "YulIdentifier",
"src": "16620:9:8"
}
]
}
]
},
"name": "convert_t_uint256_to_t_uint256",
"nativeSrc": "16550:142:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "16590:5:8",
"nodeType": "YulTypedName",
"src": "16590:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "16600:9:8",
"nodeType": "YulTypedName",
"src": "16600:9:8",
"type": ""
}
],
"src": "16550:142:8"
},
{
"body": {
"nativeSrc": "16745:28:8",
"nodeType": "YulBlock",
"src": "16745:28:8",
"statements": [
{
"nativeSrc": "16755:12:8",
"nodeType": "YulAssignment",
"src": "16755:12:8",
"value": {
"name": "value",
"nativeSrc": "16762:5:8",
"nodeType": "YulIdentifier",
"src": "16762:5:8"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "16755:3:8",
"nodeType": "YulIdentifier",
"src": "16755:3:8"
}
]
}
]
},
"name": "prepare_store_t_uint256",
"nativeSrc": "16698:75:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "16731:5:8",
"nodeType": "YulTypedName",
"src": "16731:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "16741:3:8",
"nodeType": "YulTypedName",
"src": "16741:3:8",
"type": ""
}
],
"src": "16698:75:8"
},
{
"body": {
"nativeSrc": "16855:193:8",
"nodeType": "YulBlock",
"src": "16855:193:8",
"statements": [
{
"nativeSrc": "16865:63:8",
"nodeType": "YulVariableDeclaration",
"src": "16865:63:8",
"value": {
"arguments": [
{
"name": "value_0",
"nativeSrc": "16920:7:8",
"nodeType": "YulIdentifier",
"src": "16920:7:8"
}
],
"functionName": {
"name": "convert_t_uint256_to_t_uint256",
"nativeSrc": "16889:30:8",
"nodeType": "YulIdentifier",
"src": "16889:30:8"
},
"nativeSrc": "16889:39:8",
"nodeType": "YulFunctionCall",
"src": "16889:39:8"
},
"variables": [
{
"name": "convertedValue_0",
"nativeSrc": "16869:16:8",
"nodeType": "YulTypedName",
"src": "16869:16:8",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "16944:4:8",
"nodeType": "YulIdentifier",
"src": "16944:4:8"
},
{
"arguments": [
{
"arguments": [
{
"name": "slot",
"nativeSrc": "16984:4:8",
"nodeType": "YulIdentifier",
"src": "16984:4:8"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "16978:5:8",
"nodeType": "YulIdentifier",
"src": "16978:5:8"
},
"nativeSrc": "16978:11:8",
"nodeType": "YulFunctionCall",
"src": "16978:11:8"
},
{
"name": "offset",
"nativeSrc": "16991:6:8",
"nodeType": "YulIdentifier",
"src": "16991:6:8"
},
{
"arguments": [
{
"name": "convertedValue_0",
"nativeSrc": "17023:16:8",
"nodeType": "YulIdentifier",
"src": "17023:16:8"
}
],
"functionName": {
"name": "prepare_store_t_uint256",
"nativeSrc": "16999:23:8",
"nodeType": "YulIdentifier",
"src": "16999:23:8"
},
"nativeSrc": "16999:41:8",
"nodeType": "YulFunctionCall",
"src": "16999:41:8"
}
],
"functionName": {
"name": "update_byte_slice_dynamic32",
"nativeSrc": "16950:27:8",
"nodeType": "YulIdentifier",
"src": "16950:27:8"
},
"nativeSrc": "16950:91:8",
"nodeType": "YulFunctionCall",
"src": "16950:91:8"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "16937:6:8",
"nodeType": "YulIdentifier",
"src": "16937:6:8"
},
"nativeSrc": "16937:105:8",
"nodeType": "YulFunctionCall",
"src": "16937:105:8"
},
"nativeSrc": "16937:105:8",
"nodeType": "YulExpressionStatement",
"src": "16937:105:8"
}
]
},
"name": "update_storage_value_t_uint256_to_t_uint256",
"nativeSrc": "16779:269:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "16832:4:8",
"nodeType": "YulTypedName",
"src": "16832:4:8",
"type": ""
},
{
"name": "offset",
"nativeSrc": "16838:6:8",
"nodeType": "YulTypedName",
"src": "16838:6:8",
"type": ""
},
{
"name": "value_0",
"nativeSrc": "16846:7:8",
"nodeType": "YulTypedName",
"src": "16846:7:8",
"type": ""
}
],
"src": "16779:269:8"
},
{
"body": {
"nativeSrc": "17103:24:8",
"nodeType": "YulBlock",
"src": "17103:24:8",
"statements": [
{
"nativeSrc": "17113:8:8",
"nodeType": "YulAssignment",
"src": "17113:8:8",
"value": {
"kind": "number",
"nativeSrc": "17120:1:8",
"nodeType": "YulLiteral",
"src": "17120:1:8",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "17113:3:8",
"nodeType": "YulIdentifier",
"src": "17113:3:8"
}
]
}
]
},
"name": "zero_value_for_split_t_uint256",
"nativeSrc": "17054:73:8",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nativeSrc": "17099:3:8",
"nodeType": "YulTypedName",
"src": "17099:3:8",
"type": ""
}
],
"src": "17054:73:8"
},
{
"body": {
"nativeSrc": "17186:136:8",
"nodeType": "YulBlock",
"src": "17186:136:8",
"statements": [
{
"nativeSrc": "17196:46:8",
"nodeType": "YulVariableDeclaration",
"src": "17196:46:8",
"value": {
"arguments": [],
"functionName": {
"name": "zero_value_for_split_t_uint256",
"nativeSrc": "17210:30:8",
"nodeType": "YulIdentifier",
"src": "17210:30:8"
},
"nativeSrc": "17210:32:8",
"nodeType": "YulFunctionCall",
"src": "17210:32:8"
},
"variables": [
{
"name": "zero_0",
"nativeSrc": "17200:6:8",
"nodeType": "YulTypedName",
"src": "17200:6:8",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "17295:4:8",
"nodeType": "YulIdentifier",
"src": "17295:4:8"
},
{
"name": "offset",
"nativeSrc": "17301:6:8",
"nodeType": "YulIdentifier",
"src": "17301:6:8"
},
{
"name": "zero_0",
"nativeSrc": "17309:6:8",
"nodeType": "YulIdentifier",
"src": "17309:6:8"
}
],
"functionName": {
"name": "update_storage_value_t_uint256_to_t_uint256",
"nativeSrc": "17251:43:8",
"nodeType": "YulIdentifier",
"src": "17251:43:8"
},
"nativeSrc": "17251:65:8",
"nodeType": "YulFunctionCall",
"src": "17251:65:8"
},
"nativeSrc": "17251:65:8",
"nodeType": "YulExpressionStatement",
"src": "17251:65:8"
}
]
},
"name": "storage_set_to_zero_t_uint256",
"nativeSrc": "17133:189:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "17172:4:8",
"nodeType": "YulTypedName",
"src": "17172:4:8",
"type": ""
},
{
"name": "offset",
"nativeSrc": "17178:6:8",
"nodeType": "YulTypedName",
"src": "17178:6:8",
"type": ""
}
],
"src": "17133:189:8"
},
{
"body": {
"nativeSrc": "17378:136:8",
"nodeType": "YulBlock",
"src": "17378:136:8",
"statements": [
{
"body": {
"nativeSrc": "17445:63:8",
"nodeType": "YulBlock",
"src": "17445:63:8",
"statements": [
{
"expression": {
"arguments": [
{
"name": "start",
"nativeSrc": "17489:5:8",
"nodeType": "YulIdentifier",
"src": "17489:5:8"
},
{
"kind": "number",
"nativeSrc": "17496:1:8",
"nodeType": "YulLiteral",
"src": "17496:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "storage_set_to_zero_t_uint256",
"nativeSrc": "17459:29:8",
"nodeType": "YulIdentifier",
"src": "17459:29:8"
},
"nativeSrc": "17459:39:8",
"nodeType": "YulFunctionCall",
"src": "17459:39:8"
},
"nativeSrc": "17459:39:8",
"nodeType": "YulExpressionStatement",
"src": "17459:39:8"
}
]
},
"condition": {
"arguments": [
{
"name": "start",
"nativeSrc": "17398:5:8",
"nodeType": "YulIdentifier",
"src": "17398:5:8"
},
{
"name": "end",
"nativeSrc": "17405:3:8",
"nodeType": "YulIdentifier",
"src": "17405:3:8"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "17395:2:8",
"nodeType": "YulIdentifier",
"src": "17395:2:8"
},
"nativeSrc": "17395:14:8",
"nodeType": "YulFunctionCall",
"src": "17395:14:8"
},
"nativeSrc": "17388:120:8",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "17410:26:8",
"nodeType": "YulBlock",
"src": "17410:26:8",
"statements": [
{
"nativeSrc": "17412:22:8",
"nodeType": "YulAssignment",
"src": "17412:22:8",
"value": {
"arguments": [
{
"name": "start",
"nativeSrc": "17425:5:8",
"nodeType": "YulIdentifier",
"src": "17425:5:8"
},
{
"kind": "number",
"nativeSrc": "17432:1:8",
"nodeType": "YulLiteral",
"src": "17432:1:8",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "17421:3:8",
"nodeType": "YulIdentifier",
"src": "17421:3:8"
},
"nativeSrc": "17421:13:8",
"nodeType": "YulFunctionCall",
"src": "17421:13:8"
},
"variableNames": [
{
"name": "start",
"nativeSrc": "17412:5:8",
"nodeType": "YulIdentifier",
"src": "17412:5:8"
}
]
}
]
},
"pre": {
"nativeSrc": "17392:2:8",
"nodeType": "YulBlock",
"src": "17392:2:8",
"statements": []
},
"src": "17388:120:8"
}
]
},
"name": "clear_storage_range_t_bytes1",
"nativeSrc": "17328:186:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nativeSrc": "17366:5:8",
"nodeType": "YulTypedName",
"src": "17366:5:8",
"type": ""
},
{
"name": "end",
"nativeSrc": "17373:3:8",
"nodeType": "YulTypedName",
"src": "17373:3:8",
"type": ""
}
],
"src": "17328:186:8"
},
{
"body": {
"nativeSrc": "17599:464:8",
"nodeType": "YulBlock",
"src": "17599:464:8",
"statements": [
{
"body": {
"nativeSrc": "17625:431:8",
"nodeType": "YulBlock",
"src": "17625:431:8",
"statements": [
{
"nativeSrc": "17639:54:8",
"nodeType": "YulVariableDeclaration",
"src": "17639:54:8",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "17687:5:8",
"nodeType": "YulIdentifier",
"src": "17687:5:8"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nativeSrc": "17655:31:8",
"nodeType": "YulIdentifier",
"src": "17655:31:8"
},
"nativeSrc": "17655:38:8",
"nodeType": "YulFunctionCall",
"src": "17655:38:8"
},
"variables": [
{
"name": "dataArea",
"nativeSrc": "17643:8:8",
"nodeType": "YulTypedName",
"src": "17643:8:8",
"type": ""
}
]
},
{
"nativeSrc": "17706:63:8",
"nodeType": "YulVariableDeclaration",
"src": "17706:63:8",
"value": {
"arguments": [
{
"name": "dataArea",
"nativeSrc": "17729:8:8",
"nodeType": "YulIdentifier",
"src": "17729:8:8"
},
{
"arguments": [
{
"name": "startIndex",
"nativeSrc": "17757:10:8",
"nodeType": "YulIdentifier",
"src": "17757:10:8"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nativeSrc": "17739:17:8",
"nodeType": "YulIdentifier",
"src": "17739:17:8"
},
"nativeSrc": "17739:29:8",
"nodeType": "YulFunctionCall",
"src": "17739:29:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "17725:3:8",
"nodeType": "YulIdentifier",
"src": "17725:3:8"
},
"nativeSrc": "17725:44:8",
"nodeType": "YulFunctionCall",
"src": "17725:44:8"
},
"variables": [
{
"name": "deleteStart",
"nativeSrc": "17710:11:8",
"nodeType": "YulTypedName",
"src": "17710:11:8",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "17926:27:8",
"nodeType": "YulBlock",
"src": "17926:27:8",
"statements": [
{
"nativeSrc": "17928:23:8",
"nodeType": "YulAssignment",
"src": "17928:23:8",
"value": {
"name": "dataArea",
"nativeSrc": "17943:8:8",
"nodeType": "YulIdentifier",
"src": "17943:8:8"
},
"variableNames": [
{
"name": "deleteStart",
"nativeSrc": "17928:11:8",
"nodeType": "YulIdentifier",
"src": "17928:11:8"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nativeSrc": "17910:10:8",
"nodeType": "YulIdentifier",
"src": "17910:10:8"
},
{
"kind": "number",
"nativeSrc": "17922:2:8",
"nodeType": "YulLiteral",
"src": "17922:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "17907:2:8",
"nodeType": "YulIdentifier",
"src": "17907:2:8"
},
"nativeSrc": "17907:18:8",
"nodeType": "YulFunctionCall",
"src": "17907:18:8"
},
"nativeSrc": "17904:49:8",
"nodeType": "YulIf",
"src": "17904:49:8"
},
{
"expression": {
"arguments": [
{
"name": "deleteStart",
"nativeSrc": "17995:11:8",
"nodeType": "YulIdentifier",
"src": "17995:11:8"
},
{
"arguments": [
{
"name": "dataArea",
"nativeSrc": "18012:8:8",
"nodeType": "YulIdentifier",
"src": "18012:8:8"
},
{
"arguments": [
{
"name": "len",
"nativeSrc": "18040:3:8",
"nodeType": "YulIdentifier",
"src": "18040:3:8"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nativeSrc": "18022:17:8",
"nodeType": "YulIdentifier",
"src": "18022:17:8"
},
"nativeSrc": "18022:22:8",
"nodeType": "YulFunctionCall",
"src": "18022:22:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "18008:3:8",
"nodeType": "YulIdentifier",
"src": "18008:3:8"
},
"nativeSrc": "18008:37:8",
"nodeType": "YulFunctionCall",
"src": "18008:37:8"
}
],
"functionName": {
"name": "clear_storage_range_t_bytes1",
"nativeSrc": "17966:28:8",
"nodeType": "YulIdentifier",
"src": "17966:28:8"
},
"nativeSrc": "17966:80:8",
"nodeType": "YulFunctionCall",
"src": "17966:80:8"
},
"nativeSrc": "17966:80:8",
"nodeType": "YulExpressionStatement",
"src": "17966:80:8"
}
]
},
"condition": {
"arguments": [
{
"name": "len",
"nativeSrc": "17616:3:8",
"nodeType": "YulIdentifier",
"src": "17616:3:8"
},
{
"kind": "number",
"nativeSrc": "17621:2:8",
"nodeType": "YulLiteral",
"src": "17621:2:8",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "17613:2:8",
"nodeType": "YulIdentifier",
"src": "17613:2:8"
},
"nativeSrc": "17613:11:8",
"nodeType": "YulFunctionCall",
"src": "17613:11:8"
},
"nativeSrc": "17610:446:8",
"nodeType": "YulIf",
"src": "17610:446:8"
}
]
},
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nativeSrc": "17520:543:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nativeSrc": "17575:5:8",
"nodeType": "YulTypedName",
"src": "17575:5:8",
"type": ""
},
{
"name": "len",
"nativeSrc": "17582:3:8",
"nodeType": "YulTypedName",
"src": "17582:3:8",
"type": ""
},
{
"name": "startIndex",
"nativeSrc": "17587:10:8",
"nodeType": "YulTypedName",
"src": "17587:10:8",
"type": ""
}
],
"src": "17520:543:8"
},
{
"body": {
"nativeSrc": "18132:54:8",
"nodeType": "YulBlock",
"src": "18132:54:8",
"statements": [
{
"nativeSrc": "18142:37:8",
"nodeType": "YulAssignment",
"src": "18142:37:8",
"value": {
"arguments": [
{
"name": "bits",
"nativeSrc": "18167:4:8",
"nodeType": "YulIdentifier",
"src": "18167:4:8"
},
{
"name": "value",
"nativeSrc": "18173:5:8",
"nodeType": "YulIdentifier",
"src": "18173:5:8"
}
],
"functionName": {
"name": "shr",
"nativeSrc": "18163:3:8",
"nodeType": "YulIdentifier",
"src": "18163:3:8"
},
"nativeSrc": "18163:16:8",
"nodeType": "YulFunctionCall",
"src": "18163:16:8"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "18142:8:8",
"nodeType": "YulIdentifier",
"src": "18142:8:8"
}
]
}
]
},
"name": "shift_right_unsigned_dynamic",
"nativeSrc": "18069:117:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nativeSrc": "18107:4:8",
"nodeType": "YulTypedName",
"src": "18107:4:8",
"type": ""
},
{
"name": "value",
"nativeSrc": "18113:5:8",
"nodeType": "YulTypedName",
"src": "18113:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "18123:8:8",
"nodeType": "YulTypedName",
"src": "18123:8:8",
"type": ""
}
],
"src": "18069:117:8"
},
{
"body": {
"nativeSrc": "18243:118:8",
"nodeType": "YulBlock",
"src": "18243:118:8",
"statements": [
{
"nativeSrc": "18253:68:8",
"nodeType": "YulVariableDeclaration",
"src": "18253:68:8",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nativeSrc": "18302:1:8",
"nodeType": "YulLiteral",
"src": "18302:1:8",
"type": "",
"value": "8"
},
{
"name": "bytes",
"nativeSrc": "18305:5:8",
"nodeType": "YulIdentifier",
"src": "18305:5:8"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "18298:3:8",
"nodeType": "YulIdentifier",
"src": "18298:3:8"
},
"nativeSrc": "18298:13:8",
"nodeType": "YulFunctionCall",
"src": "18298:13:8"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "18317:1:8",
"nodeType": "YulLiteral",
"src": "18317:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nativeSrc": "18313:3:8",
"nodeType": "YulIdentifier",
"src": "18313:3:8"
},
"nativeSrc": "18313:6:8",
"nodeType": "YulFunctionCall",
"src": "18313:6:8"
}
],
"functionName": {
"name": "shift_right_unsigned_dynamic",
"nativeSrc": "18269:28:8",
"nodeType": "YulIdentifier",
"src": "18269:28:8"
},
"nativeSrc": "18269:51:8",
"nodeType": "YulFunctionCall",
"src": "18269:51:8"
}
],
"functionName": {
"name": "not",
"nativeSrc": "18265:3:8",
"nodeType": "YulIdentifier",
"src": "18265:3:8"
},
"nativeSrc": "18265:56:8",
"nodeType": "YulFunctionCall",
"src": "18265:56:8"
},
"variables": [
{
"name": "mask",
"nativeSrc": "18257:4:8",
"nodeType": "YulTypedName",
"src": "18257:4:8",
"type": ""
}
]
},
{
"nativeSrc": "18330:25:8",
"nodeType": "YulAssignment",
"src": "18330:25:8",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "18344:4:8",
"nodeType": "YulIdentifier",
"src": "18344:4:8"
},
{
"name": "mask",
"nativeSrc": "18350:4:8",
"nodeType": "YulIdentifier",
"src": "18350:4:8"
}
],
"functionName": {
"name": "and",
"nativeSrc": "18340:3:8",
"nodeType": "YulIdentifier",
"src": "18340:3:8"
},
"nativeSrc": "18340:15:8",
"nodeType": "YulFunctionCall",
"src": "18340:15:8"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "18330:6:8",
"nodeType": "YulIdentifier",
"src": "18330:6:8"
}
]
}
]
},
"name": "mask_bytes_dynamic",
"nativeSrc": "18192:169:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "18220:4:8",
"nodeType": "YulTypedName",
"src": "18220:4:8",
"type": ""
},
{
"name": "bytes",
"nativeSrc": "18226:5:8",
"nodeType": "YulTypedName",
"src": "18226:5:8",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "18236:6:8",
"nodeType": "YulTypedName",
"src": "18236:6:8",
"type": ""
}
],
"src": "18192:169:8"
},
{
"body": {
"nativeSrc": "18447:214:8",
"nodeType": "YulBlock",
"src": "18447:214:8",
"statements": [
{
"nativeSrc": "18580:37:8",
"nodeType": "YulAssignment",
"src": "18580:37:8",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "18607:4:8",
"nodeType": "YulIdentifier",
"src": "18607:4:8"
},
{
"name": "len",
"nativeSrc": "18613:3:8",
"nodeType": "YulIdentifier",
"src": "18613:3:8"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nativeSrc": "18588:18:8",
"nodeType": "YulIdentifier",
"src": "18588:18:8"
},
"nativeSrc": "18588:29:8",
"nodeType": "YulFunctionCall",
"src": "18588:29:8"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "18580:4:8",
"nodeType": "YulIdentifier",
"src": "18580:4:8"
}
]
},
{
"nativeSrc": "18626:29:8",
"nodeType": "YulAssignment",
"src": "18626:29:8",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "18637:4:8",
"nodeType": "YulIdentifier",
"src": "18637:4:8"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "18647:1:8",
"nodeType": "YulLiteral",
"src": "18647:1:8",
"type": "",
"value": "2"
},
{
"name": "len",
"nativeSrc": "18650:3:8",
"nodeType": "YulIdentifier",
"src": "18650:3:8"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "18643:3:8",
"nodeType": "YulIdentifier",
"src": "18643:3:8"
},
"nativeSrc": "18643:11:8",
"nodeType": "YulFunctionCall",
"src": "18643:11:8"
}
],
"functionName": {
"name": "or",
"nativeSrc": "18634:2:8",
"nodeType": "YulIdentifier",
"src": "18634:2:8"
},
"nativeSrc": "18634:21:8",
"nodeType": "YulFunctionCall",
"src": "18634:21:8"
},
"variableNames": [
{
"name": "used",
"nativeSrc": "18626:4:8",
"nodeType": "YulIdentifier",
"src": "18626:4:8"
}
]
}
]
},
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nativeSrc": "18366:295:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "18428:4:8",
"nodeType": "YulTypedName",
"src": "18428:4:8",
"type": ""
},
{
"name": "len",
"nativeSrc": "18434:3:8",
"nodeType": "YulTypedName",
"src": "18434:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "used",
"nativeSrc": "18442:4:8",
"nodeType": "YulTypedName",
"src": "18442:4:8",
"type": ""
}
],
"src": "18366:295:8"
},
{
"body": {
"nativeSrc": "18758:1303:8",
"nodeType": "YulBlock",
"src": "18758:1303:8",
"statements": [
{
"nativeSrc": "18769:51:8",
"nodeType": "YulVariableDeclaration",
"src": "18769:51:8",
"value": {
"arguments": [
{
"name": "src",
"nativeSrc": "18816:3:8",
"nodeType": "YulIdentifier",
"src": "18816:3:8"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "18783:32:8",
"nodeType": "YulIdentifier",
"src": "18783:32:8"
},
"nativeSrc": "18783:37:8",
"nodeType": "YulFunctionCall",
"src": "18783:37:8"
},
"variables": [
{
"name": "newLen",
"nativeSrc": "18773:6:8",
"nodeType": "YulTypedName",
"src": "18773:6:8",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "18905:22:8",
"nodeType": "YulBlock",
"src": "18905:22:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "18907:16:8",
"nodeType": "YulIdentifier",
"src": "18907:16:8"
},
"nativeSrc": "18907:18:8",
"nodeType": "YulFunctionCall",
"src": "18907:18:8"
},
"nativeSrc": "18907:18:8",
"nodeType": "YulExpressionStatement",
"src": "18907:18:8"
}
]
},
"condition": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "18877:6:8",
"nodeType": "YulIdentifier",
"src": "18877:6:8"
},
{
"kind": "number",
"nativeSrc": "18885:18:8",
"nodeType": "YulLiteral",
"src": "18885:18:8",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "18874:2:8",
"nodeType": "YulIdentifier",
"src": "18874:2:8"
},
"nativeSrc": "18874:30:8",
"nodeType": "YulFunctionCall",
"src": "18874:30:8"
},
"nativeSrc": "18871:56:8",
"nodeType": "YulIf",
"src": "18871:56:8"
},
{
"nativeSrc": "18937:52:8",
"nodeType": "YulVariableDeclaration",
"src": "18937:52:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "slot",
"nativeSrc": "18983:4:8",
"nodeType": "YulIdentifier",
"src": "18983:4:8"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "18977:5:8",
"nodeType": "YulIdentifier",
"src": "18977:5:8"
},
"nativeSrc": "18977:11:8",
"nodeType": "YulFunctionCall",
"src": "18977:11:8"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nativeSrc": "18951:25:8",
"nodeType": "YulIdentifier",
"src": "18951:25:8"
},
"nativeSrc": "18951:38:8",
"nodeType": "YulFunctionCall",
"src": "18951:38:8"
},
"variables": [
{
"name": "oldLen",
"nativeSrc": "18941:6:8",
"nodeType": "YulTypedName",
"src": "18941:6:8",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "19082:4:8",
"nodeType": "YulIdentifier",
"src": "19082:4:8"
},
{
"name": "oldLen",
"nativeSrc": "19088:6:8",
"nodeType": "YulIdentifier",
"src": "19088:6:8"
},
{
"name": "newLen",
"nativeSrc": "19096:6:8",
"nodeType": "YulIdentifier",
"src": "19096:6:8"
}
],
"functionName": {
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nativeSrc": "19036:45:8",
"nodeType": "YulIdentifier",
"src": "19036:45:8"
},
"nativeSrc": "19036:67:8",
"nodeType": "YulFunctionCall",
"src": "19036:67:8"
},
"nativeSrc": "19036:67:8",
"nodeType": "YulExpressionStatement",
"src": "19036:67:8"
},
{
"nativeSrc": "19113:18:8",
"nodeType": "YulVariableDeclaration",
"src": "19113:18:8",
"value": {
"kind": "number",
"nativeSrc": "19130:1:8",
"nodeType": "YulLiteral",
"src": "19130:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "srcOffset",
"nativeSrc": "19117:9:8",
"nodeType": "YulTypedName",
"src": "19117:9:8",
"type": ""
}
]
},
{
"nativeSrc": "19141:17:8",
"nodeType": "YulAssignment",
"src": "19141:17:8",
"value": {
"kind": "number",
"nativeSrc": "19154:4:8",
"nodeType": "YulLiteral",
"src": "19154:4:8",
"type": "",
"value": "0x20"
},
"variableNames": [
{
"name": "srcOffset",
"nativeSrc": "19141:9:8",
"nodeType": "YulIdentifier",
"src": "19141:9:8"
}
]
},
{
"cases": [
{
"body": {
"nativeSrc": "19205:611:8",
"nodeType": "YulBlock",
"src": "19205:611:8",
"statements": [
{
"nativeSrc": "19219:37:8",
"nodeType": "YulVariableDeclaration",
"src": "19219:37:8",
"value": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "19238:6:8",
"nodeType": "YulIdentifier",
"src": "19238:6:8"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "19250:4:8",
"nodeType": "YulLiteral",
"src": "19250:4:8",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "not",
"nativeSrc": "19246:3:8",
"nodeType": "YulIdentifier",
"src": "19246:3:8"
},
"nativeSrc": "19246:9:8",
"nodeType": "YulFunctionCall",
"src": "19246:9:8"
}
],
"functionName": {
"name": "and",
"nativeSrc": "19234:3:8",
"nodeType": "YulIdentifier",
"src": "19234:3:8"
},
"nativeSrc": "19234:22:8",
"nodeType": "YulFunctionCall",
"src": "19234:22:8"
},
"variables": [
{
"name": "loopEnd",
"nativeSrc": "19223:7:8",
"nodeType": "YulTypedName",
"src": "19223:7:8",
"type": ""
}
]
},
{
"nativeSrc": "19270:51:8",
"nodeType": "YulVariableDeclaration",
"src": "19270:51:8",
"value": {
"arguments": [
{
"name": "slot",
"nativeSrc": "19316:4:8",
"nodeType": "YulIdentifier",
"src": "19316:4:8"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nativeSrc": "19284:31:8",
"nodeType": "YulIdentifier",
"src": "19284:31:8"
},
"nativeSrc": "19284:37:8",
"nodeType": "YulFunctionCall",
"src": "19284:37:8"
},
"variables": [
{
"name": "dstPtr",
"nativeSrc": "19274:6:8",
"nodeType": "YulTypedName",
"src": "19274:6:8",
"type": ""
}
]
},
{
"nativeSrc": "19334:10:8",
"nodeType": "YulVariableDeclaration",
"src": "19334:10:8",
"value": {
"kind": "number",
"nativeSrc": "19343:1:8",
"nodeType": "YulLiteral",
"src": "19343:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "19338:1:8",
"nodeType": "YulTypedName",
"src": "19338:1:8",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "19402:163:8",
"nodeType": "YulBlock",
"src": "19402:163:8",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "19427:6:8",
"nodeType": "YulIdentifier",
"src": "19427:6:8"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "19445:3:8",
"nodeType": "YulIdentifier",
"src": "19445:3:8"
},
{
"name": "srcOffset",
"nativeSrc": "19450:9:8",
"nodeType": "YulIdentifier",
"src": "19450:9:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "19441:3:8",
"nodeType": "YulIdentifier",
"src": "19441:3:8"
},
"nativeSrc": "19441:19:8",
"nodeType": "YulFunctionCall",
"src": "19441:19:8"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "19435:5:8",
"nodeType": "YulIdentifier",
"src": "19435:5:8"
},
"nativeSrc": "19435:26:8",
"nodeType": "YulFunctionCall",
"src": "19435:26:8"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "19420:6:8",
"nodeType": "YulIdentifier",
"src": "19420:6:8"
},
"nativeSrc": "19420:42:8",
"nodeType": "YulFunctionCall",
"src": "19420:42:8"
},
"nativeSrc": "19420:42:8",
"nodeType": "YulExpressionStatement",
"src": "19420:42:8"
},
{
"nativeSrc": "19479:24:8",
"nodeType": "YulAssignment",
"src": "19479:24:8",
"value": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "19493:6:8",
"nodeType": "YulIdentifier",
"src": "19493:6:8"
},
{
"kind": "number",
"nativeSrc": "19501:1:8",
"nodeType": "YulLiteral",
"src": "19501:1:8",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "19489:3:8",
"nodeType": "YulIdentifier",
"src": "19489:3:8"
},
"nativeSrc": "19489:14:8",
"nodeType": "YulFunctionCall",
"src": "19489:14:8"
},
"variableNames": [
{
"name": "dstPtr",
"nativeSrc": "19479:6:8",
"nodeType": "YulIdentifier",
"src": "19479:6:8"
}
]
},
{
"nativeSrc": "19520:31:8",
"nodeType": "YulAssignment",
"src": "19520:31:8",
"value": {
"arguments": [
{
"name": "srcOffset",
"nativeSrc": "19537:9:8",
"nodeType": "YulIdentifier",
"src": "19537:9:8"
},
{
"kind": "number",
"nativeSrc": "19548:2:8",
"nodeType": "YulLiteral",
"src": "19548:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "19533:3:8",
"nodeType": "YulIdentifier",
"src": "19533:3:8"
},
"nativeSrc": "19533:18:8",
"nodeType": "YulFunctionCall",
"src": "19533:18:8"
},
"variableNames": [
{
"name": "srcOffset",
"nativeSrc": "19520:9:8",
"nodeType": "YulIdentifier",
"src": "19520:9:8"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "19368:1:8",
"nodeType": "YulIdentifier",
"src": "19368:1:8"
},
{
"name": "loopEnd",
"nativeSrc": "19371:7:8",
"nodeType": "YulIdentifier",
"src": "19371:7:8"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "19365:2:8",
"nodeType": "YulIdentifier",
"src": "19365:2:8"
},
"nativeSrc": "19365:14:8",
"nodeType": "YulFunctionCall",
"src": "19365:14:8"
},
"nativeSrc": "19357:208:8",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "19380:21:8",
"nodeType": "YulBlock",
"src": "19380:21:8",
"statements": [
{
"nativeSrc": "19382:17:8",
"nodeType": "YulAssignment",
"src": "19382:17:8",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "19391:1:8",
"nodeType": "YulIdentifier",
"src": "19391:1:8"
},
{
"kind": "number",
"nativeSrc": "19394:4:8",
"nodeType": "YulLiteral",
"src": "19394:4:8",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "19387:3:8",
"nodeType": "YulIdentifier",
"src": "19387:3:8"
},
"nativeSrc": "19387:12:8",
"nodeType": "YulFunctionCall",
"src": "19387:12:8"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "19382:1:8",
"nodeType": "YulIdentifier",
"src": "19382:1:8"
}
]
}
]
},
"pre": {
"nativeSrc": "19361:3:8",
"nodeType": "YulBlock",
"src": "19361:3:8",
"statements": []
},
"src": "19357:208:8"
},
{
"body": {
"nativeSrc": "19601:156:8",
"nodeType": "YulBlock",
"src": "19601:156:8",
"statements": [
{
"nativeSrc": "19619:43:8",
"nodeType": "YulVariableDeclaration",
"src": "19619:43:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "19646:3:8",
"nodeType": "YulIdentifier",
"src": "19646:3:8"
},
{
"name": "srcOffset",
"nativeSrc": "19651:9:8",
"nodeType": "YulIdentifier",
"src": "19651:9:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "19642:3:8",
"nodeType": "YulIdentifier",
"src": "19642:3:8"
},
"nativeSrc": "19642:19:8",
"nodeType": "YulFunctionCall",
"src": "19642:19:8"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "19636:5:8",
"nodeType": "YulIdentifier",
"src": "19636:5:8"
},
"nativeSrc": "19636:26:8",
"nodeType": "YulFunctionCall",
"src": "19636:26:8"
},
"variables": [
{
"name": "lastValue",
"nativeSrc": "19623:9:8",
"nodeType": "YulTypedName",
"src": "19623:9:8",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "19686:6:8",
"nodeType": "YulIdentifier",
"src": "19686:6:8"
},
{
"arguments": [
{
"name": "lastValue",
"nativeSrc": "19713:9:8",
"nodeType": "YulIdentifier",
"src": "19713:9:8"
},
{
"arguments": [
{
"name": "newLen",
"nativeSrc": "19728:6:8",
"nodeType": "YulIdentifier",
"src": "19728:6:8"
},
{
"kind": "number",
"nativeSrc": "19736:4:8",
"nodeType": "YulLiteral",
"src": "19736:4:8",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "19724:3:8",
"nodeType": "YulIdentifier",
"src": "19724:3:8"
},
"nativeSrc": "19724:17:8",
"nodeType": "YulFunctionCall",
"src": "19724:17:8"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nativeSrc": "19694:18:8",
"nodeType": "YulIdentifier",
"src": "19694:18:8"
},
"nativeSrc": "19694:48:8",
"nodeType": "YulFunctionCall",
"src": "19694:48:8"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "19679:6:8",
"nodeType": "YulIdentifier",
"src": "19679:6:8"
},
"nativeSrc": "19679:64:8",
"nodeType": "YulFunctionCall",
"src": "19679:64:8"
},
"nativeSrc": "19679:64:8",
"nodeType": "YulExpressionStatement",
"src": "19679:64:8"
}
]
},
"condition": {
"arguments": [
{
"name": "loopEnd",
"nativeSrc": "19584:7:8",
"nodeType": "YulIdentifier",
"src": "19584:7:8"
},
{
"name": "newLen",
"nativeSrc": "19593:6:8",
"nodeType": "YulIdentifier",
"src": "19593:6:8"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "19581:2:8",
"nodeType": "YulIdentifier",
"src": "19581:2:8"
},
"nativeSrc": "19581:19:8",
"nodeType": "YulFunctionCall",
"src": "19581:19:8"
},
"nativeSrc": "19578:179:8",
"nodeType": "YulIf",
"src": "19578:179:8"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "19777:4:8",
"nodeType": "YulIdentifier",
"src": "19777:4:8"
},
{
"arguments": [
{
"arguments": [
{
"name": "newLen",
"nativeSrc": "19791:6:8",
"nodeType": "YulIdentifier",
"src": "19791:6:8"
},
{
"kind": "number",
"nativeSrc": "19799:1:8",
"nodeType": "YulLiteral",
"src": "19799:1:8",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "19787:3:8",
"nodeType": "YulIdentifier",
"src": "19787:3:8"
},
"nativeSrc": "19787:14:8",
"nodeType": "YulFunctionCall",
"src": "19787:14:8"
},
{
"kind": "number",
"nativeSrc": "19803:1:8",
"nodeType": "YulLiteral",
"src": "19803:1:8",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "19783:3:8",
"nodeType": "YulIdentifier",
"src": "19783:3:8"
},
"nativeSrc": "19783:22:8",
"nodeType": "YulFunctionCall",
"src": "19783:22:8"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "19770:6:8",
"nodeType": "YulIdentifier",
"src": "19770:6:8"
},
"nativeSrc": "19770:36:8",
"nodeType": "YulFunctionCall",
"src": "19770:36:8"
},
"nativeSrc": "19770:36:8",
"nodeType": "YulExpressionStatement",
"src": "19770:36:8"
}
]
},
"nativeSrc": "19198:618:8",
"nodeType": "YulCase",
"src": "19198:618:8",
"value": {
"kind": "number",
"nativeSrc": "19203:1:8",
"nodeType": "YulLiteral",
"src": "19203:1:8",
"type": "",
"value": "1"
}
},
{
"body": {
"nativeSrc": "19833:222:8",
"nodeType": "YulBlock",
"src": "19833:222:8",
"statements": [
{
"nativeSrc": "19847:14:8",
"nodeType": "YulVariableDeclaration",
"src": "19847:14:8",
"value": {
"kind": "number",
"nativeSrc": "19860:1:8",
"nodeType": "YulLiteral",
"src": "19860:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "value",
"nativeSrc": "19851:5:8",
"nodeType": "YulTypedName",
"src": "19851:5:8",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "19884:67:8",
"nodeType": "YulBlock",
"src": "19884:67:8",
"statements": [
{
"nativeSrc": "19902:35:8",
"nodeType": "YulAssignment",
"src": "19902:35:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "19921:3:8",
"nodeType": "YulIdentifier",
"src": "19921:3:8"
},
{
"name": "srcOffset",
"nativeSrc": "19926:9:8",
"nodeType": "YulIdentifier",
"src": "19926:9:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "19917:3:8",
"nodeType": "YulIdentifier",
"src": "19917:3:8"
},
"nativeSrc": "19917:19:8",
"nodeType": "YulFunctionCall",
"src": "19917:19:8"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "19911:5:8",
"nodeType": "YulIdentifier",
"src": "19911:5:8"
},
"nativeSrc": "19911:26:8",
"nodeType": "YulFunctionCall",
"src": "19911:26:8"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "19902:5:8",
"nodeType": "YulIdentifier",
"src": "19902:5:8"
}
]
}
]
},
"condition": {
"name": "newLen",
"nativeSrc": "19877:6:8",
"nodeType": "YulIdentifier",
"src": "19877:6:8"
},
"nativeSrc": "19874:77:8",
"nodeType": "YulIf",
"src": "19874:77:8"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "19971:4:8",
"nodeType": "YulIdentifier",
"src": "19971:4:8"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "20030:5:8",
"nodeType": "YulIdentifier",
"src": "20030:5:8"
},
{
"name": "newLen",
"nativeSrc": "20037:6:8",
"nodeType": "YulIdentifier",
"src": "20037:6:8"
}
],
"functionName": {
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nativeSrc": "19977:52:8",
"nodeType": "YulIdentifier",
"src": "19977:52:8"
},
"nativeSrc": "19977:67:8",
"nodeType": "YulFunctionCall",
"src": "19977:67:8"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "19964:6:8",
"nodeType": "YulIdentifier",
"src": "19964:6:8"
},
"nativeSrc": "19964:81:8",
"nodeType": "YulFunctionCall",
"src": "19964:81:8"
},
"nativeSrc": "19964:81:8",
"nodeType": "YulExpressionStatement",
"src": "19964:81:8"
}
]
},
"nativeSrc": "19825:230:8",
"nodeType": "YulCase",
"src": "19825:230:8",
"value": "default"
}
],
"expression": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "19178:6:8",
"nodeType": "YulIdentifier",
"src": "19178:6:8"
},
{
"kind": "number",
"nativeSrc": "19186:2:8",
"nodeType": "YulLiteral",
"src": "19186:2:8",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "19175:2:8",
"nodeType": "YulIdentifier",
"src": "19175:2:8"
},
"nativeSrc": "19175:14:8",
"nodeType": "YulFunctionCall",
"src": "19175:14:8"
},
"nativeSrc": "19168:887:8",
"nodeType": "YulSwitch",
"src": "19168:887:8"
}
]
},
"name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
"nativeSrc": "18666:1395:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "18747:4:8",
"nodeType": "YulTypedName",
"src": "18747:4:8",
"type": ""
},
{
"name": "src",
"nativeSrc": "18753:3:8",
"nodeType": "YulTypedName",
"src": "18753:3:8",
"type": ""
}
],
"src": "18666:1395:8"
},
{
"body": {
"nativeSrc": "20177:280:8",
"nodeType": "YulBlock",
"src": "20177:280:8",
"statements": [
{
"nativeSrc": "20187:53:8",
"nodeType": "YulVariableDeclaration",
"src": "20187:53:8",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "20234:5:8",
"nodeType": "YulIdentifier",
"src": "20234:5:8"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "20201:32:8",
"nodeType": "YulIdentifier",
"src": "20201:32:8"
},
"nativeSrc": "20201:39:8",
"nodeType": "YulFunctionCall",
"src": "20201:39:8"
},
"variables": [
{
"name": "length",
"nativeSrc": "20191:6:8",
"nodeType": "YulTypedName",
"src": "20191:6:8",
"type": ""
}
]
},
{
"nativeSrc": "20249:96:8",
"nodeType": "YulAssignment",
"src": "20249:96:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "20333:3:8",
"nodeType": "YulIdentifier",
"src": "20333:3:8"
},
{
"name": "length",
"nativeSrc": "20338:6:8",
"nodeType": "YulIdentifier",
"src": "20338:6:8"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "20256:76:8",
"nodeType": "YulIdentifier",
"src": "20256:76:8"
},
"nativeSrc": "20256:89:8",
"nodeType": "YulFunctionCall",
"src": "20256:89:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "20249:3:8",
"nodeType": "YulIdentifier",
"src": "20249:3:8"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "20393:5:8",
"nodeType": "YulIdentifier",
"src": "20393:5:8"
},
{
"kind": "number",
"nativeSrc": "20400:4:8",
"nodeType": "YulLiteral",
"src": "20400:4:8",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "20389:3:8",
"nodeType": "YulIdentifier",
"src": "20389:3:8"
},
"nativeSrc": "20389:16:8",
"nodeType": "YulFunctionCall",
"src": "20389:16:8"
},
{
"name": "pos",
"nativeSrc": "20407:3:8",
"nodeType": "YulIdentifier",
"src": "20407:3:8"
},
{
"name": "length",
"nativeSrc": "20412:6:8",
"nodeType": "YulIdentifier",
"src": "20412:6:8"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "20354:34:8",
"nodeType": "YulIdentifier",
"src": "20354:34:8"
},
"nativeSrc": "20354:65:8",
"nodeType": "YulFunctionCall",
"src": "20354:65:8"
},
"nativeSrc": "20354:65:8",
"nodeType": "YulExpressionStatement",
"src": "20354:65:8"
},
{
"nativeSrc": "20428:23:8",
"nodeType": "YulAssignment",
"src": "20428:23:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "20439:3:8",
"nodeType": "YulIdentifier",
"src": "20439:3:8"
},
{
"name": "length",
"nativeSrc": "20444:6:8",
"nodeType": "YulIdentifier",
"src": "20444:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "20435:3:8",
"nodeType": "YulIdentifier",
"src": "20435:3:8"
},
"nativeSrc": "20435:16:8",
"nodeType": "YulFunctionCall",
"src": "20435:16:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "20428:3:8",
"nodeType": "YulIdentifier",
"src": "20428:3:8"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "20067:390:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "20158:5:8",
"nodeType": "YulTypedName",
"src": "20158:5:8",
"type": ""
},
{
"name": "pos",
"nativeSrc": "20165:3:8",
"nodeType": "YulTypedName",
"src": "20165:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "20173:3:8",
"nodeType": "YulTypedName",
"src": "20173:3:8",
"type": ""
}
],
"src": "20067:390:8"
},
{
"body": {
"nativeSrc": "20599:139:8",
"nodeType": "YulBlock",
"src": "20599:139:8",
"statements": [
{
"nativeSrc": "20610:102:8",
"nodeType": "YulAssignment",
"src": "20610:102:8",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "20699:6:8",
"nodeType": "YulIdentifier",
"src": "20699:6:8"
},
{
"name": "pos",
"nativeSrc": "20708:3:8",
"nodeType": "YulIdentifier",
"src": "20708:3:8"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nativeSrc": "20617:81:8",
"nodeType": "YulIdentifier",
"src": "20617:81:8"
},
"nativeSrc": "20617:95:8",
"nodeType": "YulFunctionCall",
"src": "20617:95:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "20610:3:8",
"nodeType": "YulIdentifier",
"src": "20610:3:8"
}
]
},
{
"nativeSrc": "20722:10:8",
"nodeType": "YulAssignment",
"src": "20722:10:8",
"value": {
"name": "pos",
"nativeSrc": "20729:3:8",
"nodeType": "YulIdentifier",
"src": "20729:3:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "20722:3:8",
"nodeType": "YulIdentifier",
"src": "20722:3:8"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nativeSrc": "20463:275:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "20578:3:8",
"nodeType": "YulTypedName",
"src": "20578:3:8",
"type": ""
},
{
"name": "value0",
"nativeSrc": "20584:6:8",
"nodeType": "YulTypedName",
"src": "20584:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "20595:3:8",
"nodeType": "YulTypedName",
"src": "20595:3:8",
"type": ""
}
],
"src": "20463:275:8"
},
{
"body": {
"nativeSrc": "20850:116:8",
"nodeType": "YulBlock",
"src": "20850:116:8",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "20872:6:8",
"nodeType": "YulIdentifier",
"src": "20872:6:8"
},
{
"kind": "number",
"nativeSrc": "20880:1:8",
"nodeType": "YulLiteral",
"src": "20880:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "20868:3:8",
"nodeType": "YulIdentifier",
"src": "20868:3:8"
},
"nativeSrc": "20868:14:8",
"nodeType": "YulFunctionCall",
"src": "20868:14:8"
},
{
"hexValue": "5468657265206973206e6f206163636f756e74206f6e20746869732061646472",
"kind": "string",
"nativeSrc": "20884:34:8",
"nodeType": "YulLiteral",
"src": "20884:34:8",
"type": "",
"value": "There is no account on this addr"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "20861:6:8",
"nodeType": "YulIdentifier",
"src": "20861:6:8"
},
"nativeSrc": "20861:58:8",
"nodeType": "YulFunctionCall",
"src": "20861:58:8"
},
"nativeSrc": "20861:58:8",
"nodeType": "YulExpressionStatement",
"src": "20861:58:8"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "20940:6:8",
"nodeType": "YulIdentifier",
"src": "20940:6:8"
},
{
"kind": "number",
"nativeSrc": "20948:2:8",
"nodeType": "YulLiteral",
"src": "20948:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "20936:3:8",
"nodeType": "YulIdentifier",
"src": "20936:3:8"
},
"nativeSrc": "20936:15:8",
"nodeType": "YulFunctionCall",
"src": "20936:15:8"
},
{
"hexValue": "657373",
"kind": "string",
"nativeSrc": "20953:5:8",
"nodeType": "YulLiteral",
"src": "20953:5:8",
"type": "",
"value": "ess"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "20929:6:8",
"nodeType": "YulIdentifier",
"src": "20929:6:8"
},
"nativeSrc": "20929:30:8",
"nodeType": "YulFunctionCall",
"src": "20929:30:8"
},
"nativeSrc": "20929:30:8",
"nodeType": "YulExpressionStatement",
"src": "20929:30:8"
}
]
},
"name": "store_literal_in_memory_0be9cbb51418bc59653f1e86ae620ff113423985c6de964ddd28fb6fd0da0322",
"nativeSrc": "20744:222:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "20842:6:8",
"nodeType": "YulTypedName",
"src": "20842:6:8",
"type": ""
}
],
"src": "20744:222:8"
},
{
"body": {
"nativeSrc": "21118:220:8",
"nodeType": "YulBlock",
"src": "21118:220:8",
"statements": [
{
"nativeSrc": "21128:74:8",
"nodeType": "YulAssignment",
"src": "21128:74:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "21194:3:8",
"nodeType": "YulIdentifier",
"src": "21194:3:8"
},
{
"kind": "number",
"nativeSrc": "21199:2:8",
"nodeType": "YulLiteral",
"src": "21199:2:8",
"type": "",
"value": "35"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "21135:58:8",
"nodeType": "YulIdentifier",
"src": "21135:58:8"
},
"nativeSrc": "21135:67:8",
"nodeType": "YulFunctionCall",
"src": "21135:67:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "21128:3:8",
"nodeType": "YulIdentifier",
"src": "21128:3:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "21300:3:8",
"nodeType": "YulIdentifier",
"src": "21300:3:8"
}
],
"functionName": {
"name": "store_literal_in_memory_0be9cbb51418bc59653f1e86ae620ff113423985c6de964ddd28fb6fd0da0322",
"nativeSrc": "21211:88:8",
"nodeType": "YulIdentifier",
"src": "21211:88:8"
},
"nativeSrc": "21211:93:8",
"nodeType": "YulFunctionCall",
"src": "21211:93:8"
},
"nativeSrc": "21211:93:8",
"nodeType": "YulExpressionStatement",
"src": "21211:93:8"
},
{
"nativeSrc": "21313:19:8",
"nodeType": "YulAssignment",
"src": "21313:19:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "21324:3:8",
"nodeType": "YulIdentifier",
"src": "21324:3:8"
},
{
"kind": "number",
"nativeSrc": "21329:2:8",
"nodeType": "YulLiteral",
"src": "21329:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "21320:3:8",
"nodeType": "YulIdentifier",
"src": "21320:3:8"
},
"nativeSrc": "21320:12:8",
"nodeType": "YulFunctionCall",
"src": "21320:12:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "21313:3:8",
"nodeType": "YulIdentifier",
"src": "21313:3:8"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_0be9cbb51418bc59653f1e86ae620ff113423985c6de964ddd28fb6fd0da0322_to_t_string_memory_ptr_fromStack",
"nativeSrc": "20972:366:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "21106:3:8",
"nodeType": "YulTypedName",
"src": "21106:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "21114:3:8",
"nodeType": "YulTypedName",
"src": "21114:3:8",
"type": ""
}
],
"src": "20972:366:8"
},
{
"body": {
"nativeSrc": "21515:248:8",
"nodeType": "YulBlock",
"src": "21515:248:8",
"statements": [
{
"nativeSrc": "21525:26:8",
"nodeType": "YulAssignment",
"src": "21525:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "21537:9:8",
"nodeType": "YulIdentifier",
"src": "21537:9:8"
},
{
"kind": "number",
"nativeSrc": "21548:2:8",
"nodeType": "YulLiteral",
"src": "21548:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "21533:3:8",
"nodeType": "YulIdentifier",
"src": "21533:3:8"
},
"nativeSrc": "21533:18:8",
"nodeType": "YulFunctionCall",
"src": "21533:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "21525:4:8",
"nodeType": "YulIdentifier",
"src": "21525:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "21572:9:8",
"nodeType": "YulIdentifier",
"src": "21572:9:8"
},
{
"kind": "number",
"nativeSrc": "21583:1:8",
"nodeType": "YulLiteral",
"src": "21583:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "21568:3:8",
"nodeType": "YulIdentifier",
"src": "21568:3:8"
},
"nativeSrc": "21568:17:8",
"nodeType": "YulFunctionCall",
"src": "21568:17:8"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "21591:4:8",
"nodeType": "YulIdentifier",
"src": "21591:4:8"
},
{
"name": "headStart",
"nativeSrc": "21597:9:8",
"nodeType": "YulIdentifier",
"src": "21597:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "21587:3:8",
"nodeType": "YulIdentifier",
"src": "21587:3:8"
},
"nativeSrc": "21587:20:8",
"nodeType": "YulFunctionCall",
"src": "21587:20:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "21561:6:8",
"nodeType": "YulIdentifier",
"src": "21561:6:8"
},
"nativeSrc": "21561:47:8",
"nodeType": "YulFunctionCall",
"src": "21561:47:8"
},
"nativeSrc": "21561:47:8",
"nodeType": "YulExpressionStatement",
"src": "21561:47:8"
},
{
"nativeSrc": "21617:139:8",
"nodeType": "YulAssignment",
"src": "21617:139:8",
"value": {
"arguments": [
{
"name": "tail",
"nativeSrc": "21751:4:8",
"nodeType": "YulIdentifier",
"src": "21751:4:8"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_0be9cbb51418bc59653f1e86ae620ff113423985c6de964ddd28fb6fd0da0322_to_t_string_memory_ptr_fromStack",
"nativeSrc": "21625:124:8",
"nodeType": "YulIdentifier",
"src": "21625:124:8"
},
"nativeSrc": "21625:131:8",
"nodeType": "YulFunctionCall",
"src": "21625:131:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "21617:4:8",
"nodeType": "YulIdentifier",
"src": "21617:4:8"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_0be9cbb51418bc59653f1e86ae620ff113423985c6de964ddd28fb6fd0da0322__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "21344:419:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "21495:9:8",
"nodeType": "YulTypedName",
"src": "21495:9:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "21510:4:8",
"nodeType": "YulTypedName",
"src": "21510:4:8",
"type": ""
}
],
"src": "21344:419:8"
},
{
"body": {
"nativeSrc": "21875:117:8",
"nodeType": "YulBlock",
"src": "21875:117:8",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "21897:6:8",
"nodeType": "YulIdentifier",
"src": "21897:6:8"
},
{
"kind": "number",
"nativeSrc": "21905:1:8",
"nodeType": "YulLiteral",
"src": "21905:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "21893:3:8",
"nodeType": "YulIdentifier",
"src": "21893:3:8"
},
"nativeSrc": "21893:14:8",
"nodeType": "YulFunctionCall",
"src": "21893:14:8"
},
{
"hexValue": "54686973206163636f756e742068617320616c7265616479206265656e206261",
"kind": "string",
"nativeSrc": "21909:34:8",
"nodeType": "YulLiteral",
"src": "21909:34:8",
"type": "",
"value": "This account has already been ba"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "21886:6:8",
"nodeType": "YulIdentifier",
"src": "21886:6:8"
},
"nativeSrc": "21886:58:8",
"nodeType": "YulFunctionCall",
"src": "21886:58:8"
},
"nativeSrc": "21886:58:8",
"nodeType": "YulExpressionStatement",
"src": "21886:58:8"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "21965:6:8",
"nodeType": "YulIdentifier",
"src": "21965:6:8"
},
{
"kind": "number",
"nativeSrc": "21973:2:8",
"nodeType": "YulLiteral",
"src": "21973:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "21961:3:8",
"nodeType": "YulIdentifier",
"src": "21961:3:8"
},
"nativeSrc": "21961:15:8",
"nodeType": "YulFunctionCall",
"src": "21961:15:8"
},
{
"hexValue": "6e6e6564",
"kind": "string",
"nativeSrc": "21978:6:8",
"nodeType": "YulLiteral",
"src": "21978:6:8",
"type": "",
"value": "nned"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "21954:6:8",
"nodeType": "YulIdentifier",
"src": "21954:6:8"
},
"nativeSrc": "21954:31:8",
"nodeType": "YulFunctionCall",
"src": "21954:31:8"
},
"nativeSrc": "21954:31:8",
"nodeType": "YulExpressionStatement",
"src": "21954:31:8"
}
]
},
"name": "store_literal_in_memory_551b15fe577494a57d0056b2b2ea10b1c5e0914ae1693934c4159c445996b73e",
"nativeSrc": "21769:223:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "21867:6:8",
"nodeType": "YulTypedName",
"src": "21867:6:8",
"type": ""
}
],
"src": "21769:223:8"
},
{
"body": {
"nativeSrc": "22144:220:8",
"nodeType": "YulBlock",
"src": "22144:220:8",
"statements": [
{
"nativeSrc": "22154:74:8",
"nodeType": "YulAssignment",
"src": "22154:74:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "22220:3:8",
"nodeType": "YulIdentifier",
"src": "22220:3:8"
},
{
"kind": "number",
"nativeSrc": "22225:2:8",
"nodeType": "YulLiteral",
"src": "22225:2:8",
"type": "",
"value": "36"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "22161:58:8",
"nodeType": "YulIdentifier",
"src": "22161:58:8"
},
"nativeSrc": "22161:67:8",
"nodeType": "YulFunctionCall",
"src": "22161:67:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "22154:3:8",
"nodeType": "YulIdentifier",
"src": "22154:3:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "22326:3:8",
"nodeType": "YulIdentifier",
"src": "22326:3:8"
}
],
"functionName": {
"name": "store_literal_in_memory_551b15fe577494a57d0056b2b2ea10b1c5e0914ae1693934c4159c445996b73e",
"nativeSrc": "22237:88:8",
"nodeType": "YulIdentifier",
"src": "22237:88:8"
},
"nativeSrc": "22237:93:8",
"nodeType": "YulFunctionCall",
"src": "22237:93:8"
},
"nativeSrc": "22237:93:8",
"nodeType": "YulExpressionStatement",
"src": "22237:93:8"
},
{
"nativeSrc": "22339:19:8",
"nodeType": "YulAssignment",
"src": "22339:19:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "22350:3:8",
"nodeType": "YulIdentifier",
"src": "22350:3:8"
},
{
"kind": "number",
"nativeSrc": "22355:2:8",
"nodeType": "YulLiteral",
"src": "22355:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "22346:3:8",
"nodeType": "YulIdentifier",
"src": "22346:3:8"
},
"nativeSrc": "22346:12:8",
"nodeType": "YulFunctionCall",
"src": "22346:12:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "22339:3:8",
"nodeType": "YulIdentifier",
"src": "22339:3:8"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_551b15fe577494a57d0056b2b2ea10b1c5e0914ae1693934c4159c445996b73e_to_t_string_memory_ptr_fromStack",
"nativeSrc": "21998:366:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "22132:3:8",
"nodeType": "YulTypedName",
"src": "22132:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "22140:3:8",
"nodeType": "YulTypedName",
"src": "22140:3:8",
"type": ""
}
],
"src": "21998:366:8"
},
{
"body": {
"nativeSrc": "22541:248:8",
"nodeType": "YulBlock",
"src": "22541:248:8",
"statements": [
{
"nativeSrc": "22551:26:8",
"nodeType": "YulAssignment",
"src": "22551:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "22563:9:8",
"nodeType": "YulIdentifier",
"src": "22563:9:8"
},
{
"kind": "number",
"nativeSrc": "22574:2:8",
"nodeType": "YulLiteral",
"src": "22574:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "22559:3:8",
"nodeType": "YulIdentifier",
"src": "22559:3:8"
},
"nativeSrc": "22559:18:8",
"nodeType": "YulFunctionCall",
"src": "22559:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "22551:4:8",
"nodeType": "YulIdentifier",
"src": "22551:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "22598:9:8",
"nodeType": "YulIdentifier",
"src": "22598:9:8"
},
{
"kind": "number",
"nativeSrc": "22609:1:8",
"nodeType": "YulLiteral",
"src": "22609:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "22594:3:8",
"nodeType": "YulIdentifier",
"src": "22594:3:8"
},
"nativeSrc": "22594:17:8",
"nodeType": "YulFunctionCall",
"src": "22594:17:8"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "22617:4:8",
"nodeType": "YulIdentifier",
"src": "22617:4:8"
},
{
"name": "headStart",
"nativeSrc": "22623:9:8",
"nodeType": "YulIdentifier",
"src": "22623:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "22613:3:8",
"nodeType": "YulIdentifier",
"src": "22613:3:8"
},
"nativeSrc": "22613:20:8",
"nodeType": "YulFunctionCall",
"src": "22613:20:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "22587:6:8",
"nodeType": "YulIdentifier",
"src": "22587:6:8"
},
"nativeSrc": "22587:47:8",
"nodeType": "YulFunctionCall",
"src": "22587:47:8"
},
"nativeSrc": "22587:47:8",
"nodeType": "YulExpressionStatement",
"src": "22587:47:8"
},
{
"nativeSrc": "22643:139:8",
"nodeType": "YulAssignment",
"src": "22643:139:8",
"value": {
"arguments": [
{
"name": "tail",
"nativeSrc": "22777:4:8",
"nodeType": "YulIdentifier",
"src": "22777:4:8"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_551b15fe577494a57d0056b2b2ea10b1c5e0914ae1693934c4159c445996b73e_to_t_string_memory_ptr_fromStack",
"nativeSrc": "22651:124:8",
"nodeType": "YulIdentifier",
"src": "22651:124:8"
},
"nativeSrc": "22651:131:8",
"nodeType": "YulFunctionCall",
"src": "22651:131:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "22643:4:8",
"nodeType": "YulIdentifier",
"src": "22643:4:8"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_551b15fe577494a57d0056b2b2ea10b1c5e0914ae1693934c4159c445996b73e__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "22370:419:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "22521:9:8",
"nodeType": "YulTypedName",
"src": "22521:9:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "22536:4:8",
"nodeType": "YulTypedName",
"src": "22536:4:8",
"type": ""
}
],
"src": "22370:419:8"
},
{
"body": {
"nativeSrc": "22901:72:8",
"nodeType": "YulBlock",
"src": "22901:72:8",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "22923:6:8",
"nodeType": "YulIdentifier",
"src": "22923:6:8"
},
{
"kind": "number",
"nativeSrc": "22931:1:8",
"nodeType": "YulLiteral",
"src": "22931:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "22919:3:8",
"nodeType": "YulIdentifier",
"src": "22919:3:8"
},
"nativeSrc": "22919:14:8",
"nodeType": "YulFunctionCall",
"src": "22919:14:8"
},
{
"hexValue": "54686973206163636f756e7420686173206265656e2062616e6e6564",
"kind": "string",
"nativeSrc": "22935:30:8",
"nodeType": "YulLiteral",
"src": "22935:30:8",
"type": "",
"value": "This account has been banned"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "22912:6:8",
"nodeType": "YulIdentifier",
"src": "22912:6:8"
},
"nativeSrc": "22912:54:8",
"nodeType": "YulFunctionCall",
"src": "22912:54:8"
},
"nativeSrc": "22912:54:8",
"nodeType": "YulExpressionStatement",
"src": "22912:54:8"
}
]
},
"name": "store_literal_in_memory_74702c13a46f8553affde8ff74c611471ca9e58252a85a5a23fce63d85416534",
"nativeSrc": "22795:178:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "22893:6:8",
"nodeType": "YulTypedName",
"src": "22893:6:8",
"type": ""
}
],
"src": "22795:178:8"
},
{
"body": {
"nativeSrc": "23125:220:8",
"nodeType": "YulBlock",
"src": "23125:220:8",
"statements": [
{
"nativeSrc": "23135:74:8",
"nodeType": "YulAssignment",
"src": "23135:74:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "23201:3:8",
"nodeType": "YulIdentifier",
"src": "23201:3:8"
},
{
"kind": "number",
"nativeSrc": "23206:2:8",
"nodeType": "YulLiteral",
"src": "23206:2:8",
"type": "",
"value": "28"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "23142:58:8",
"nodeType": "YulIdentifier",
"src": "23142:58:8"
},
"nativeSrc": "23142:67:8",
"nodeType": "YulFunctionCall",
"src": "23142:67:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "23135:3:8",
"nodeType": "YulIdentifier",
"src": "23135:3:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "23307:3:8",
"nodeType": "YulIdentifier",
"src": "23307:3:8"
}
],
"functionName": {
"name": "store_literal_in_memory_74702c13a46f8553affde8ff74c611471ca9e58252a85a5a23fce63d85416534",
"nativeSrc": "23218:88:8",
"nodeType": "YulIdentifier",
"src": "23218:88:8"
},
"nativeSrc": "23218:93:8",
"nodeType": "YulFunctionCall",
"src": "23218:93:8"
},
"nativeSrc": "23218:93:8",
"nodeType": "YulExpressionStatement",
"src": "23218:93:8"
},
{
"nativeSrc": "23320:19:8",
"nodeType": "YulAssignment",
"src": "23320:19:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "23331:3:8",
"nodeType": "YulIdentifier",
"src": "23331:3:8"
},
{
"kind": "number",
"nativeSrc": "23336:2:8",
"nodeType": "YulLiteral",
"src": "23336:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "23327:3:8",
"nodeType": "YulIdentifier",
"src": "23327:3:8"
},
"nativeSrc": "23327:12:8",
"nodeType": "YulFunctionCall",
"src": "23327:12:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "23320:3:8",
"nodeType": "YulIdentifier",
"src": "23320:3:8"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_74702c13a46f8553affde8ff74c611471ca9e58252a85a5a23fce63d85416534_to_t_string_memory_ptr_fromStack",
"nativeSrc": "22979:366:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "23113:3:8",
"nodeType": "YulTypedName",
"src": "23113:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "23121:3:8",
"nodeType": "YulTypedName",
"src": "23121:3:8",
"type": ""
}
],
"src": "22979:366:8"
},
{
"body": {
"nativeSrc": "23522:248:8",
"nodeType": "YulBlock",
"src": "23522:248:8",
"statements": [
{
"nativeSrc": "23532:26:8",
"nodeType": "YulAssignment",
"src": "23532:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "23544:9:8",
"nodeType": "YulIdentifier",
"src": "23544:9:8"
},
{
"kind": "number",
"nativeSrc": "23555:2:8",
"nodeType": "YulLiteral",
"src": "23555:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "23540:3:8",
"nodeType": "YulIdentifier",
"src": "23540:3:8"
},
"nativeSrc": "23540:18:8",
"nodeType": "YulFunctionCall",
"src": "23540:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "23532:4:8",
"nodeType": "YulIdentifier",
"src": "23532:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "23579:9:8",
"nodeType": "YulIdentifier",
"src": "23579:9:8"
},
{
"kind": "number",
"nativeSrc": "23590:1:8",
"nodeType": "YulLiteral",
"src": "23590:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "23575:3:8",
"nodeType": "YulIdentifier",
"src": "23575:3:8"
},
"nativeSrc": "23575:17:8",
"nodeType": "YulFunctionCall",
"src": "23575:17:8"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "23598:4:8",
"nodeType": "YulIdentifier",
"src": "23598:4:8"
},
{
"name": "headStart",
"nativeSrc": "23604:9:8",
"nodeType": "YulIdentifier",
"src": "23604:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "23594:3:8",
"nodeType": "YulIdentifier",
"src": "23594:3:8"
},
"nativeSrc": "23594:20:8",
"nodeType": "YulFunctionCall",
"src": "23594:20:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "23568:6:8",
"nodeType": "YulIdentifier",
"src": "23568:6:8"
},
"nativeSrc": "23568:47:8",
"nodeType": "YulFunctionCall",
"src": "23568:47:8"
},
"nativeSrc": "23568:47:8",
"nodeType": "YulExpressionStatement",
"src": "23568:47:8"
},
{
"nativeSrc": "23624:139:8",
"nodeType": "YulAssignment",
"src": "23624:139:8",
"value": {
"arguments": [
{
"name": "tail",
"nativeSrc": "23758:4:8",
"nodeType": "YulIdentifier",
"src": "23758:4:8"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_74702c13a46f8553affde8ff74c611471ca9e58252a85a5a23fce63d85416534_to_t_string_memory_ptr_fromStack",
"nativeSrc": "23632:124:8",
"nodeType": "YulIdentifier",
"src": "23632:124:8"
},
"nativeSrc": "23632:131:8",
"nodeType": "YulFunctionCall",
"src": "23632:131:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "23624:4:8",
"nodeType": "YulIdentifier",
"src": "23624:4:8"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_74702c13a46f8553affde8ff74c611471ca9e58252a85a5a23fce63d85416534__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "23351:419:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "23502:9:8",
"nodeType": "YulTypedName",
"src": "23502:9:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "23517:4:8",
"nodeType": "YulTypedName",
"src": "23517:4:8",
"type": ""
}
],
"src": "23351:419:8"
},
{
"body": {
"nativeSrc": "23804:152:8",
"nodeType": "YulBlock",
"src": "23804:152:8",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "23821:1:8",
"nodeType": "YulLiteral",
"src": "23821:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "23824:77:8",
"nodeType": "YulLiteral",
"src": "23824:77:8",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "23814:6:8",
"nodeType": "YulIdentifier",
"src": "23814:6:8"
},
"nativeSrc": "23814:88:8",
"nodeType": "YulFunctionCall",
"src": "23814:88:8"
},
"nativeSrc": "23814:88:8",
"nodeType": "YulExpressionStatement",
"src": "23814:88:8"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "23918:1:8",
"nodeType": "YulLiteral",
"src": "23918:1:8",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "23921:4:8",
"nodeType": "YulLiteral",
"src": "23921:4:8",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "23911:6:8",
"nodeType": "YulIdentifier",
"src": "23911:6:8"
},
"nativeSrc": "23911:15:8",
"nodeType": "YulFunctionCall",
"src": "23911:15:8"
},
"nativeSrc": "23911:15:8",
"nodeType": "YulExpressionStatement",
"src": "23911:15:8"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "23942:1:8",
"nodeType": "YulLiteral",
"src": "23942:1:8",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "23945:4:8",
"nodeType": "YulLiteral",
"src": "23945:4:8",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "23935:6:8",
"nodeType": "YulIdentifier",
"src": "23935:6:8"
},
"nativeSrc": "23935:15:8",
"nodeType": "YulFunctionCall",
"src": "23935:15:8"
},
"nativeSrc": "23935:15:8",
"nodeType": "YulExpressionStatement",
"src": "23935:15:8"
}
]
},
"name": "panic_error_0x11",
"nativeSrc": "23776:180:8",
"nodeType": "YulFunctionDefinition",
"src": "23776:180:8"
},
{
"body": {
"nativeSrc": "24006:147:8",
"nodeType": "YulBlock",
"src": "24006:147:8",
"statements": [
{
"nativeSrc": "24016:25:8",
"nodeType": "YulAssignment",
"src": "24016:25:8",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "24039:1:8",
"nodeType": "YulIdentifier",
"src": "24039:1:8"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "24021:17:8",
"nodeType": "YulIdentifier",
"src": "24021:17:8"
},
"nativeSrc": "24021:20:8",
"nodeType": "YulFunctionCall",
"src": "24021:20:8"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "24016:1:8",
"nodeType": "YulIdentifier",
"src": "24016:1:8"
}
]
},
{
"nativeSrc": "24050:25:8",
"nodeType": "YulAssignment",
"src": "24050:25:8",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "24073:1:8",
"nodeType": "YulIdentifier",
"src": "24073:1:8"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "24055:17:8",
"nodeType": "YulIdentifier",
"src": "24055:17:8"
},
"nativeSrc": "24055:20:8",
"nodeType": "YulFunctionCall",
"src": "24055:20:8"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "24050:1:8",
"nodeType": "YulIdentifier",
"src": "24050:1:8"
}
]
},
{
"nativeSrc": "24084:16:8",
"nodeType": "YulAssignment",
"src": "24084:16:8",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "24095:1:8",
"nodeType": "YulIdentifier",
"src": "24095:1:8"
},
{
"name": "y",
"nativeSrc": "24098:1:8",
"nodeType": "YulIdentifier",
"src": "24098:1:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "24091:3:8",
"nodeType": "YulIdentifier",
"src": "24091:3:8"
},
"nativeSrc": "24091:9:8",
"nodeType": "YulFunctionCall",
"src": "24091:9:8"
},
"variableNames": [
{
"name": "sum",
"nativeSrc": "24084:3:8",
"nodeType": "YulIdentifier",
"src": "24084:3:8"
}
]
},
{
"body": {
"nativeSrc": "24124:22:8",
"nodeType": "YulBlock",
"src": "24124:22:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "24126:16:8",
"nodeType": "YulIdentifier",
"src": "24126:16:8"
},
"nativeSrc": "24126:18:8",
"nodeType": "YulFunctionCall",
"src": "24126:18:8"
},
"nativeSrc": "24126:18:8",
"nodeType": "YulExpressionStatement",
"src": "24126:18:8"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nativeSrc": "24116:1:8",
"nodeType": "YulIdentifier",
"src": "24116:1:8"
},
{
"name": "sum",
"nativeSrc": "24119:3:8",
"nodeType": "YulIdentifier",
"src": "24119:3:8"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "24113:2:8",
"nodeType": "YulIdentifier",
"src": "24113:2:8"
},
"nativeSrc": "24113:10:8",
"nodeType": "YulFunctionCall",
"src": "24113:10:8"
},
"nativeSrc": "24110:36:8",
"nodeType": "YulIf",
"src": "24110:36:8"
}
]
},
"name": "checked_add_t_uint256",
"nativeSrc": "23962:191:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "23993:1:8",
"nodeType": "YulTypedName",
"src": "23993:1:8",
"type": ""
},
{
"name": "y",
"nativeSrc": "23996:1:8",
"nodeType": "YulTypedName",
"src": "23996:1:8",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nativeSrc": "24002:3:8",
"nodeType": "YulTypedName",
"src": "24002:3:8",
"type": ""
}
],
"src": "23962:191:8"
},
{
"body": {
"nativeSrc": "24369:454:8",
"nodeType": "YulBlock",
"src": "24369:454:8",
"statements": [
{
"nativeSrc": "24379:27:8",
"nodeType": "YulAssignment",
"src": "24379:27:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "24391:9:8",
"nodeType": "YulIdentifier",
"src": "24391:9:8"
},
{
"kind": "number",
"nativeSrc": "24402:3:8",
"nodeType": "YulLiteral",
"src": "24402:3:8",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nativeSrc": "24387:3:8",
"nodeType": "YulIdentifier",
"src": "24387:3:8"
},
"nativeSrc": "24387:19:8",
"nodeType": "YulFunctionCall",
"src": "24387:19:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "24379:4:8",
"nodeType": "YulIdentifier",
"src": "24379:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "24460:6:8",
"nodeType": "YulIdentifier",
"src": "24460:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "24473:9:8",
"nodeType": "YulIdentifier",
"src": "24473:9:8"
},
{
"kind": "number",
"nativeSrc": "24484:1:8",
"nodeType": "YulLiteral",
"src": "24484:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "24469:3:8",
"nodeType": "YulIdentifier",
"src": "24469:3:8"
},
"nativeSrc": "24469:17:8",
"nodeType": "YulFunctionCall",
"src": "24469:17:8"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "24416:43:8",
"nodeType": "YulIdentifier",
"src": "24416:43:8"
},
"nativeSrc": "24416:71:8",
"nodeType": "YulFunctionCall",
"src": "24416:71:8"
},
"nativeSrc": "24416:71:8",
"nodeType": "YulExpressionStatement",
"src": "24416:71:8"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "24541:6:8",
"nodeType": "YulIdentifier",
"src": "24541:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "24554:9:8",
"nodeType": "YulIdentifier",
"src": "24554:9:8"
},
{
"kind": "number",
"nativeSrc": "24565:2:8",
"nodeType": "YulLiteral",
"src": "24565:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "24550:3:8",
"nodeType": "YulIdentifier",
"src": "24550:3:8"
},
"nativeSrc": "24550:18:8",
"nodeType": "YulFunctionCall",
"src": "24550:18:8"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "24497:43:8",
"nodeType": "YulIdentifier",
"src": "24497:43:8"
},
"nativeSrc": "24497:72:8",
"nodeType": "YulFunctionCall",
"src": "24497:72:8"
},
"nativeSrc": "24497:72:8",
"nodeType": "YulExpressionStatement",
"src": "24497:72:8"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "24623:6:8",
"nodeType": "YulIdentifier",
"src": "24623:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "24636:9:8",
"nodeType": "YulIdentifier",
"src": "24636:9:8"
},
{
"kind": "number",
"nativeSrc": "24647:2:8",
"nodeType": "YulLiteral",
"src": "24647:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "24632:3:8",
"nodeType": "YulIdentifier",
"src": "24632:3:8"
},
"nativeSrc": "24632:18:8",
"nodeType": "YulFunctionCall",
"src": "24632:18:8"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "24579:43:8",
"nodeType": "YulIdentifier",
"src": "24579:43:8"
},
"nativeSrc": "24579:72:8",
"nodeType": "YulFunctionCall",
"src": "24579:72:8"
},
"nativeSrc": "24579:72:8",
"nodeType": "YulExpressionStatement",
"src": "24579:72:8"
},
{
"expression": {
"arguments": [
{
"name": "value3",
"nativeSrc": "24705:6:8",
"nodeType": "YulIdentifier",
"src": "24705:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "24718:9:8",
"nodeType": "YulIdentifier",
"src": "24718:9:8"
},
{
"kind": "number",
"nativeSrc": "24729:2:8",
"nodeType": "YulLiteral",
"src": "24729:2:8",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "24714:3:8",
"nodeType": "YulIdentifier",
"src": "24714:3:8"
},
"nativeSrc": "24714:18:8",
"nodeType": "YulFunctionCall",
"src": "24714:18:8"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "24661:43:8",
"nodeType": "YulIdentifier",
"src": "24661:43:8"
},
"nativeSrc": "24661:72:8",
"nodeType": "YulFunctionCall",
"src": "24661:72:8"
},
"nativeSrc": "24661:72:8",
"nodeType": "YulExpressionStatement",
"src": "24661:72:8"
},
{
"expression": {
"arguments": [
{
"name": "value4",
"nativeSrc": "24787:6:8",
"nodeType": "YulIdentifier",
"src": "24787:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "24800:9:8",
"nodeType": "YulIdentifier",
"src": "24800:9:8"
},
{
"kind": "number",
"nativeSrc": "24811:3:8",
"nodeType": "YulLiteral",
"src": "24811:3:8",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nativeSrc": "24796:3:8",
"nodeType": "YulIdentifier",
"src": "24796:3:8"
},
"nativeSrc": "24796:19:8",
"nodeType": "YulFunctionCall",
"src": "24796:19:8"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "24743:43:8",
"nodeType": "YulIdentifier",
"src": "24743:43:8"
},
"nativeSrc": "24743:73:8",
"nodeType": "YulFunctionCall",
"src": "24743:73:8"
},
"nativeSrc": "24743:73:8",
"nodeType": "YulExpressionStatement",
"src": "24743:73:8"
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed",
"nativeSrc": "24159:664:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "24309:9:8",
"nodeType": "YulTypedName",
"src": "24309:9:8",
"type": ""
},
{
"name": "value4",
"nativeSrc": "24321:6:8",
"nodeType": "YulTypedName",
"src": "24321:6:8",
"type": ""
},
{
"name": "value3",
"nativeSrc": "24329:6:8",
"nodeType": "YulTypedName",
"src": "24329:6:8",
"type": ""
},
{
"name": "value2",
"nativeSrc": "24337:6:8",
"nodeType": "YulTypedName",
"src": "24337:6:8",
"type": ""
},
{
"name": "value1",
"nativeSrc": "24345:6:8",
"nodeType": "YulTypedName",
"src": "24345:6:8",
"type": ""
},
{
"name": "value0",
"nativeSrc": "24353:6:8",
"nodeType": "YulTypedName",
"src": "24353:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "24364:4:8",
"nodeType": "YulTypedName",
"src": "24364:4:8",
"type": ""
}
],
"src": "24159:664:8"
},
{
"body": {
"nativeSrc": "24892:80:8",
"nodeType": "YulBlock",
"src": "24892:80:8",
"statements": [
{
"nativeSrc": "24902:22:8",
"nodeType": "YulAssignment",
"src": "24902:22:8",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "24917:6:8",
"nodeType": "YulIdentifier",
"src": "24917:6:8"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "24911:5:8",
"nodeType": "YulIdentifier",
"src": "24911:5:8"
},
"nativeSrc": "24911:13:8",
"nodeType": "YulFunctionCall",
"src": "24911:13:8"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "24902:5:8",
"nodeType": "YulIdentifier",
"src": "24902:5:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "24960:5:8",
"nodeType": "YulIdentifier",
"src": "24960:5:8"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nativeSrc": "24933:26:8",
"nodeType": "YulIdentifier",
"src": "24933:26:8"
},
"nativeSrc": "24933:33:8",
"nodeType": "YulFunctionCall",
"src": "24933:33:8"
},
"nativeSrc": "24933:33:8",
"nodeType": "YulExpressionStatement",
"src": "24933:33:8"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nativeSrc": "24829:143:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "24870:6:8",
"nodeType": "YulTypedName",
"src": "24870:6:8",
"type": ""
},
{
"name": "end",
"nativeSrc": "24878:3:8",
"nodeType": "YulTypedName",
"src": "24878:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "24886:5:8",
"nodeType": "YulTypedName",
"src": "24886:5:8",
"type": ""
}
],
"src": "24829:143:8"
},
{
"body": {
"nativeSrc": "25055:274:8",
"nodeType": "YulBlock",
"src": "25055:274:8",
"statements": [
{
"body": {
"nativeSrc": "25101:83:8",
"nodeType": "YulBlock",
"src": "25101:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "25103:77:8",
"nodeType": "YulIdentifier",
"src": "25103:77:8"
},
"nativeSrc": "25103:79:8",
"nodeType": "YulFunctionCall",
"src": "25103:79:8"
},
"nativeSrc": "25103:79:8",
"nodeType": "YulExpressionStatement",
"src": "25103:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "25076:7:8",
"nodeType": "YulIdentifier",
"src": "25076:7:8"
},
{
"name": "headStart",
"nativeSrc": "25085:9:8",
"nodeType": "YulIdentifier",
"src": "25085:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "25072:3:8",
"nodeType": "YulIdentifier",
"src": "25072:3:8"
},
"nativeSrc": "25072:23:8",
"nodeType": "YulFunctionCall",
"src": "25072:23:8"
},
{
"kind": "number",
"nativeSrc": "25097:2:8",
"nodeType": "YulLiteral",
"src": "25097:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "25068:3:8",
"nodeType": "YulIdentifier",
"src": "25068:3:8"
},
"nativeSrc": "25068:32:8",
"nodeType": "YulFunctionCall",
"src": "25068:32:8"
},
"nativeSrc": "25065:119:8",
"nodeType": "YulIf",
"src": "25065:119:8"
},
{
"nativeSrc": "25194:128:8",
"nodeType": "YulBlock",
"src": "25194:128:8",
"statements": [
{
"nativeSrc": "25209:15:8",
"nodeType": "YulVariableDeclaration",
"src": "25209:15:8",
"value": {
"kind": "number",
"nativeSrc": "25223:1:8",
"nodeType": "YulLiteral",
"src": "25223:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "25213:6:8",
"nodeType": "YulTypedName",
"src": "25213:6:8",
"type": ""
}
]
},
{
"nativeSrc": "25238:74:8",
"nodeType": "YulAssignment",
"src": "25238:74:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "25284:9:8",
"nodeType": "YulIdentifier",
"src": "25284:9:8"
},
{
"name": "offset",
"nativeSrc": "25295:6:8",
"nodeType": "YulIdentifier",
"src": "25295:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "25280:3:8",
"nodeType": "YulIdentifier",
"src": "25280:3:8"
},
"nativeSrc": "25280:22:8",
"nodeType": "YulFunctionCall",
"src": "25280:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "25304:7:8",
"nodeType": "YulIdentifier",
"src": "25304:7:8"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nativeSrc": "25248:31:8",
"nodeType": "YulIdentifier",
"src": "25248:31:8"
},
"nativeSrc": "25248:64:8",
"nodeType": "YulFunctionCall",
"src": "25248:64:8"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "25238:6:8",
"nodeType": "YulIdentifier",
"src": "25238:6:8"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nativeSrc": "24978:351:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "25025:9:8",
"nodeType": "YulTypedName",
"src": "25025:9:8",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "25036:7:8",
"nodeType": "YulTypedName",
"src": "25036:7:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "25048:6:8",
"nodeType": "YulTypedName",
"src": "25048:6:8",
"type": ""
}
],
"src": "24978:351:8"
},
{
"body": {
"nativeSrc": "25441:119:8",
"nodeType": "YulBlock",
"src": "25441:119:8",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "25463:6:8",
"nodeType": "YulIdentifier",
"src": "25463:6:8"
},
{
"kind": "number",
"nativeSrc": "25471:1:8",
"nodeType": "YulLiteral",
"src": "25471:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "25459:3:8",
"nodeType": "YulIdentifier",
"src": "25459:3:8"
},
"nativeSrc": "25459:14:8",
"nodeType": "YulFunctionCall",
"src": "25459:14:8"
},
{
"hexValue": "54686973206163636f756e7420686173206e6f7420796574206265656e207665",
"kind": "string",
"nativeSrc": "25475:34:8",
"nodeType": "YulLiteral",
"src": "25475:34:8",
"type": "",
"value": "This account has not yet been ve"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "25452:6:8",
"nodeType": "YulIdentifier",
"src": "25452:6:8"
},
"nativeSrc": "25452:58:8",
"nodeType": "YulFunctionCall",
"src": "25452:58:8"
},
"nativeSrc": "25452:58:8",
"nodeType": "YulExpressionStatement",
"src": "25452:58:8"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "25531:6:8",
"nodeType": "YulIdentifier",
"src": "25531:6:8"
},
{
"kind": "number",
"nativeSrc": "25539:2:8",
"nodeType": "YulLiteral",
"src": "25539:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "25527:3:8",
"nodeType": "YulIdentifier",
"src": "25527:3:8"
},
"nativeSrc": "25527:15:8",
"nodeType": "YulFunctionCall",
"src": "25527:15:8"
},
{
"hexValue": "726966696564",
"kind": "string",
"nativeSrc": "25544:8:8",
"nodeType": "YulLiteral",
"src": "25544:8:8",
"type": "",
"value": "rified"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "25520:6:8",
"nodeType": "YulIdentifier",
"src": "25520:6:8"
},
"nativeSrc": "25520:33:8",
"nodeType": "YulFunctionCall",
"src": "25520:33:8"
},
"nativeSrc": "25520:33:8",
"nodeType": "YulExpressionStatement",
"src": "25520:33:8"
}
]
},
"name": "store_literal_in_memory_3365f09b08ad058873b17c0c278d311c99005c2917e08f8804863677bbf6c41a",
"nativeSrc": "25335:225:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "25433:6:8",
"nodeType": "YulTypedName",
"src": "25433:6:8",
"type": ""
}
],
"src": "25335:225:8"
},
{
"body": {
"nativeSrc": "25712:220:8",
"nodeType": "YulBlock",
"src": "25712:220:8",
"statements": [
{
"nativeSrc": "25722:74:8",
"nodeType": "YulAssignment",
"src": "25722:74:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "25788:3:8",
"nodeType": "YulIdentifier",
"src": "25788:3:8"
},
{
"kind": "number",
"nativeSrc": "25793:2:8",
"nodeType": "YulLiteral",
"src": "25793:2:8",
"type": "",
"value": "38"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "25729:58:8",
"nodeType": "YulIdentifier",
"src": "25729:58:8"
},
"nativeSrc": "25729:67:8",
"nodeType": "YulFunctionCall",
"src": "25729:67:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "25722:3:8",
"nodeType": "YulIdentifier",
"src": "25722:3:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "25894:3:8",
"nodeType": "YulIdentifier",
"src": "25894:3:8"
}
],
"functionName": {
"name": "store_literal_in_memory_3365f09b08ad058873b17c0c278d311c99005c2917e08f8804863677bbf6c41a",
"nativeSrc": "25805:88:8",
"nodeType": "YulIdentifier",
"src": "25805:88:8"
},
"nativeSrc": "25805:93:8",
"nodeType": "YulFunctionCall",
"src": "25805:93:8"
},
"nativeSrc": "25805:93:8",
"nodeType": "YulExpressionStatement",
"src": "25805:93:8"
},
{
"nativeSrc": "25907:19:8",
"nodeType": "YulAssignment",
"src": "25907:19:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "25918:3:8",
"nodeType": "YulIdentifier",
"src": "25918:3:8"
},
{
"kind": "number",
"nativeSrc": "25923:2:8",
"nodeType": "YulLiteral",
"src": "25923:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "25914:3:8",
"nodeType": "YulIdentifier",
"src": "25914:3:8"
},
"nativeSrc": "25914:12:8",
"nodeType": "YulFunctionCall",
"src": "25914:12:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "25907:3:8",
"nodeType": "YulIdentifier",
"src": "25907:3:8"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_3365f09b08ad058873b17c0c278d311c99005c2917e08f8804863677bbf6c41a_to_t_string_memory_ptr_fromStack",
"nativeSrc": "25566:366:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "25700:3:8",
"nodeType": "YulTypedName",
"src": "25700:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "25708:3:8",
"nodeType": "YulTypedName",
"src": "25708:3:8",
"type": ""
}
],
"src": "25566:366:8"
},
{
"body": {
"nativeSrc": "26109:248:8",
"nodeType": "YulBlock",
"src": "26109:248:8",
"statements": [
{
"nativeSrc": "26119:26:8",
"nodeType": "YulAssignment",
"src": "26119:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "26131:9:8",
"nodeType": "YulIdentifier",
"src": "26131:9:8"
},
{
"kind": "number",
"nativeSrc": "26142:2:8",
"nodeType": "YulLiteral",
"src": "26142:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "26127:3:8",
"nodeType": "YulIdentifier",
"src": "26127:3:8"
},
"nativeSrc": "26127:18:8",
"nodeType": "YulFunctionCall",
"src": "26127:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "26119:4:8",
"nodeType": "YulIdentifier",
"src": "26119:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "26166:9:8",
"nodeType": "YulIdentifier",
"src": "26166:9:8"
},
{
"kind": "number",
"nativeSrc": "26177:1:8",
"nodeType": "YulLiteral",
"src": "26177:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "26162:3:8",
"nodeType": "YulIdentifier",
"src": "26162:3:8"
},
"nativeSrc": "26162:17:8",
"nodeType": "YulFunctionCall",
"src": "26162:17:8"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "26185:4:8",
"nodeType": "YulIdentifier",
"src": "26185:4:8"
},
{
"name": "headStart",
"nativeSrc": "26191:9:8",
"nodeType": "YulIdentifier",
"src": "26191:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "26181:3:8",
"nodeType": "YulIdentifier",
"src": "26181:3:8"
},
"nativeSrc": "26181:20:8",
"nodeType": "YulFunctionCall",
"src": "26181:20:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "26155:6:8",
"nodeType": "YulIdentifier",
"src": "26155:6:8"
},
"nativeSrc": "26155:47:8",
"nodeType": "YulFunctionCall",
"src": "26155:47:8"
},
"nativeSrc": "26155:47:8",
"nodeType": "YulExpressionStatement",
"src": "26155:47:8"
},
{
"nativeSrc": "26211:139:8",
"nodeType": "YulAssignment",
"src": "26211:139:8",
"value": {
"arguments": [
{
"name": "tail",
"nativeSrc": "26345:4:8",
"nodeType": "YulIdentifier",
"src": "26345:4:8"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_3365f09b08ad058873b17c0c278d311c99005c2917e08f8804863677bbf6c41a_to_t_string_memory_ptr_fromStack",
"nativeSrc": "26219:124:8",
"nodeType": "YulIdentifier",
"src": "26219:124:8"
},
"nativeSrc": "26219:131:8",
"nodeType": "YulFunctionCall",
"src": "26219:131:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "26211:4:8",
"nodeType": "YulIdentifier",
"src": "26211:4:8"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_3365f09b08ad058873b17c0c278d311c99005c2917e08f8804863677bbf6c41a__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "25938:419:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "26089:9:8",
"nodeType": "YulTypedName",
"src": "26089:9:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "26104:4:8",
"nodeType": "YulTypedName",
"src": "26104:4:8",
"type": ""
}
],
"src": "25938:419:8"
},
{
"body": {
"nativeSrc": "26469:70:8",
"nodeType": "YulBlock",
"src": "26469:70:8",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "26491:6:8",
"nodeType": "YulIdentifier",
"src": "26491:6:8"
},
{
"kind": "number",
"nativeSrc": "26499:1:8",
"nodeType": "YulLiteral",
"src": "26499:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "26487:3:8",
"nodeType": "YulIdentifier",
"src": "26487:3:8"
},
"nativeSrc": "26487:14:8",
"nodeType": "YulFunctionCall",
"src": "26487:14:8"
},
{
"hexValue": "54686520616d6f756e7420657863656564732062616c616e6365",
"kind": "string",
"nativeSrc": "26503:28:8",
"nodeType": "YulLiteral",
"src": "26503:28:8",
"type": "",
"value": "The amount exceeds balance"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "26480:6:8",
"nodeType": "YulIdentifier",
"src": "26480:6:8"
},
"nativeSrc": "26480:52:8",
"nodeType": "YulFunctionCall",
"src": "26480:52:8"
},
"nativeSrc": "26480:52:8",
"nodeType": "YulExpressionStatement",
"src": "26480:52:8"
}
]
},
"name": "store_literal_in_memory_6c4942ee454f96426693ed10207cb04e74377678aa7b03c37870fa414b9c4399",
"nativeSrc": "26363:176:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "26461:6:8",
"nodeType": "YulTypedName",
"src": "26461:6:8",
"type": ""
}
],
"src": "26363:176:8"
},
{
"body": {
"nativeSrc": "26691:220:8",
"nodeType": "YulBlock",
"src": "26691:220:8",
"statements": [
{
"nativeSrc": "26701:74:8",
"nodeType": "YulAssignment",
"src": "26701:74:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "26767:3:8",
"nodeType": "YulIdentifier",
"src": "26767:3:8"
},
{
"kind": "number",
"nativeSrc": "26772:2:8",
"nodeType": "YulLiteral",
"src": "26772:2:8",
"type": "",
"value": "26"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "26708:58:8",
"nodeType": "YulIdentifier",
"src": "26708:58:8"
},
"nativeSrc": "26708:67:8",
"nodeType": "YulFunctionCall",
"src": "26708:67:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "26701:3:8",
"nodeType": "YulIdentifier",
"src": "26701:3:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "26873:3:8",
"nodeType": "YulIdentifier",
"src": "26873:3:8"
}
],
"functionName": {
"name": "store_literal_in_memory_6c4942ee454f96426693ed10207cb04e74377678aa7b03c37870fa414b9c4399",
"nativeSrc": "26784:88:8",
"nodeType": "YulIdentifier",
"src": "26784:88:8"
},
"nativeSrc": "26784:93:8",
"nodeType": "YulFunctionCall",
"src": "26784:93:8"
},
"nativeSrc": "26784:93:8",
"nodeType": "YulExpressionStatement",
"src": "26784:93:8"
},
{
"nativeSrc": "26886:19:8",
"nodeType": "YulAssignment",
"src": "26886:19:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "26897:3:8",
"nodeType": "YulIdentifier",
"src": "26897:3:8"
},
{
"kind": "number",
"nativeSrc": "26902:2:8",
"nodeType": "YulLiteral",
"src": "26902:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "26893:3:8",
"nodeType": "YulIdentifier",
"src": "26893:3:8"
},
"nativeSrc": "26893:12:8",
"nodeType": "YulFunctionCall",
"src": "26893:12:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "26886:3:8",
"nodeType": "YulIdentifier",
"src": "26886:3:8"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_6c4942ee454f96426693ed10207cb04e74377678aa7b03c37870fa414b9c4399_to_t_string_memory_ptr_fromStack",
"nativeSrc": "26545:366:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "26679:3:8",
"nodeType": "YulTypedName",
"src": "26679:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "26687:3:8",
"nodeType": "YulTypedName",
"src": "26687:3:8",
"type": ""
}
],
"src": "26545:366:8"
},
{
"body": {
"nativeSrc": "27088:248:8",
"nodeType": "YulBlock",
"src": "27088:248:8",
"statements": [
{
"nativeSrc": "27098:26:8",
"nodeType": "YulAssignment",
"src": "27098:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "27110:9:8",
"nodeType": "YulIdentifier",
"src": "27110:9:8"
},
{
"kind": "number",
"nativeSrc": "27121:2:8",
"nodeType": "YulLiteral",
"src": "27121:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "27106:3:8",
"nodeType": "YulIdentifier",
"src": "27106:3:8"
},
"nativeSrc": "27106:18:8",
"nodeType": "YulFunctionCall",
"src": "27106:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "27098:4:8",
"nodeType": "YulIdentifier",
"src": "27098:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "27145:9:8",
"nodeType": "YulIdentifier",
"src": "27145:9:8"
},
{
"kind": "number",
"nativeSrc": "27156:1:8",
"nodeType": "YulLiteral",
"src": "27156:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "27141:3:8",
"nodeType": "YulIdentifier",
"src": "27141:3:8"
},
"nativeSrc": "27141:17:8",
"nodeType": "YulFunctionCall",
"src": "27141:17:8"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "27164:4:8",
"nodeType": "YulIdentifier",
"src": "27164:4:8"
},
{
"name": "headStart",
"nativeSrc": "27170:9:8",
"nodeType": "YulIdentifier",
"src": "27170:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "27160:3:8",
"nodeType": "YulIdentifier",
"src": "27160:3:8"
},
"nativeSrc": "27160:20:8",
"nodeType": "YulFunctionCall",
"src": "27160:20:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "27134:6:8",
"nodeType": "YulIdentifier",
"src": "27134:6:8"
},
"nativeSrc": "27134:47:8",
"nodeType": "YulFunctionCall",
"src": "27134:47:8"
},
"nativeSrc": "27134:47:8",
"nodeType": "YulExpressionStatement",
"src": "27134:47:8"
},
{
"nativeSrc": "27190:139:8",
"nodeType": "YulAssignment",
"src": "27190:139:8",
"value": {
"arguments": [
{
"name": "tail",
"nativeSrc": "27324:4:8",
"nodeType": "YulIdentifier",
"src": "27324:4:8"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_6c4942ee454f96426693ed10207cb04e74377678aa7b03c37870fa414b9c4399_to_t_string_memory_ptr_fromStack",
"nativeSrc": "27198:124:8",
"nodeType": "YulIdentifier",
"src": "27198:124:8"
},
"nativeSrc": "27198:131:8",
"nodeType": "YulFunctionCall",
"src": "27198:131:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "27190:4:8",
"nodeType": "YulIdentifier",
"src": "27190:4:8"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_6c4942ee454f96426693ed10207cb04e74377678aa7b03c37870fa414b9c4399__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "26917:419:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "27068:9:8",
"nodeType": "YulTypedName",
"src": "27068:9:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "27083:4:8",
"nodeType": "YulTypedName",
"src": "27083:4:8",
"type": ""
}
],
"src": "26917:419:8"
},
{
"body": {
"nativeSrc": "27448:72:8",
"nodeType": "YulBlock",
"src": "27448:72:8",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "27470:6:8",
"nodeType": "YulIdentifier",
"src": "27470:6:8"
},
{
"kind": "number",
"nativeSrc": "27478:1:8",
"nodeType": "YulLiteral",
"src": "27478:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "27466:3:8",
"nodeType": "YulIdentifier",
"src": "27466:3:8"
},
"nativeSrc": "27466:14:8",
"nodeType": "YulFunctionCall",
"src": "27466:14:8"
},
{
"hexValue": "54686520616d6f756e74206578636565647320616c6c6f77616e6365",
"kind": "string",
"nativeSrc": "27482:30:8",
"nodeType": "YulLiteral",
"src": "27482:30:8",
"type": "",
"value": "The amount exceeds allowance"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "27459:6:8",
"nodeType": "YulIdentifier",
"src": "27459:6:8"
},
"nativeSrc": "27459:54:8",
"nodeType": "YulFunctionCall",
"src": "27459:54:8"
},
"nativeSrc": "27459:54:8",
"nodeType": "YulExpressionStatement",
"src": "27459:54:8"
}
]
},
"name": "store_literal_in_memory_8f9ab81aa1326bbbcd93536a02907b28d20aa55bd99ead6a349c4c2dfdbc3418",
"nativeSrc": "27342:178:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "27440:6:8",
"nodeType": "YulTypedName",
"src": "27440:6:8",
"type": ""
}
],
"src": "27342:178:8"
},
{
"body": {
"nativeSrc": "27672:220:8",
"nodeType": "YulBlock",
"src": "27672:220:8",
"statements": [
{
"nativeSrc": "27682:74:8",
"nodeType": "YulAssignment",
"src": "27682:74:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "27748:3:8",
"nodeType": "YulIdentifier",
"src": "27748:3:8"
},
{
"kind": "number",
"nativeSrc": "27753:2:8",
"nodeType": "YulLiteral",
"src": "27753:2:8",
"type": "",
"value": "28"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "27689:58:8",
"nodeType": "YulIdentifier",
"src": "27689:58:8"
},
"nativeSrc": "27689:67:8",
"nodeType": "YulFunctionCall",
"src": "27689:67:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "27682:3:8",
"nodeType": "YulIdentifier",
"src": "27682:3:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "27854:3:8",
"nodeType": "YulIdentifier",
"src": "27854:3:8"
}
],
"functionName": {
"name": "store_literal_in_memory_8f9ab81aa1326bbbcd93536a02907b28d20aa55bd99ead6a349c4c2dfdbc3418",
"nativeSrc": "27765:88:8",
"nodeType": "YulIdentifier",
"src": "27765:88:8"
},
"nativeSrc": "27765:93:8",
"nodeType": "YulFunctionCall",
"src": "27765:93:8"
},
"nativeSrc": "27765:93:8",
"nodeType": "YulExpressionStatement",
"src": "27765:93:8"
},
{
"nativeSrc": "27867:19:8",
"nodeType": "YulAssignment",
"src": "27867:19:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "27878:3:8",
"nodeType": "YulIdentifier",
"src": "27878:3:8"
},
{
"kind": "number",
"nativeSrc": "27883:2:8",
"nodeType": "YulLiteral",
"src": "27883:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "27874:3:8",
"nodeType": "YulIdentifier",
"src": "27874:3:8"
},
"nativeSrc": "27874:12:8",
"nodeType": "YulFunctionCall",
"src": "27874:12:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "27867:3:8",
"nodeType": "YulIdentifier",
"src": "27867:3:8"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_8f9ab81aa1326bbbcd93536a02907b28d20aa55bd99ead6a349c4c2dfdbc3418_to_t_string_memory_ptr_fromStack",
"nativeSrc": "27526:366:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "27660:3:8",
"nodeType": "YulTypedName",
"src": "27660:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "27668:3:8",
"nodeType": "YulTypedName",
"src": "27668:3:8",
"type": ""
}
],
"src": "27526:366:8"
},
{
"body": {
"nativeSrc": "28069:248:8",
"nodeType": "YulBlock",
"src": "28069:248:8",
"statements": [
{
"nativeSrc": "28079:26:8",
"nodeType": "YulAssignment",
"src": "28079:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "28091:9:8",
"nodeType": "YulIdentifier",
"src": "28091:9:8"
},
{
"kind": "number",
"nativeSrc": "28102:2:8",
"nodeType": "YulLiteral",
"src": "28102:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "28087:3:8",
"nodeType": "YulIdentifier",
"src": "28087:3:8"
},
"nativeSrc": "28087:18:8",
"nodeType": "YulFunctionCall",
"src": "28087:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "28079:4:8",
"nodeType": "YulIdentifier",
"src": "28079:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "28126:9:8",
"nodeType": "YulIdentifier",
"src": "28126:9:8"
},
{
"kind": "number",
"nativeSrc": "28137:1:8",
"nodeType": "YulLiteral",
"src": "28137:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "28122:3:8",
"nodeType": "YulIdentifier",
"src": "28122:3:8"
},
"nativeSrc": "28122:17:8",
"nodeType": "YulFunctionCall",
"src": "28122:17:8"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "28145:4:8",
"nodeType": "YulIdentifier",
"src": "28145:4:8"
},
{
"name": "headStart",
"nativeSrc": "28151:9:8",
"nodeType": "YulIdentifier",
"src": "28151:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "28141:3:8",
"nodeType": "YulIdentifier",
"src": "28141:3:8"
},
"nativeSrc": "28141:20:8",
"nodeType": "YulFunctionCall",
"src": "28141:20:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "28115:6:8",
"nodeType": "YulIdentifier",
"src": "28115:6:8"
},
"nativeSrc": "28115:47:8",
"nodeType": "YulFunctionCall",
"src": "28115:47:8"
},
"nativeSrc": "28115:47:8",
"nodeType": "YulExpressionStatement",
"src": "28115:47:8"
},
{
"nativeSrc": "28171:139:8",
"nodeType": "YulAssignment",
"src": "28171:139:8",
"value": {
"arguments": [
{
"name": "tail",
"nativeSrc": "28305:4:8",
"nodeType": "YulIdentifier",
"src": "28305:4:8"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_8f9ab81aa1326bbbcd93536a02907b28d20aa55bd99ead6a349c4c2dfdbc3418_to_t_string_memory_ptr_fromStack",
"nativeSrc": "28179:124:8",
"nodeType": "YulIdentifier",
"src": "28179:124:8"
},
"nativeSrc": "28179:131:8",
"nodeType": "YulFunctionCall",
"src": "28179:131:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "28171:4:8",
"nodeType": "YulIdentifier",
"src": "28171:4:8"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_8f9ab81aa1326bbbcd93536a02907b28d20aa55bd99ead6a349c4c2dfdbc3418__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "27898:419:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "28049:9:8",
"nodeType": "YulTypedName",
"src": "28049:9:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "28064:4:8",
"nodeType": "YulTypedName",
"src": "28064:4:8",
"type": ""
}
],
"src": "27898:419:8"
},
{
"body": {
"nativeSrc": "28477:288:8",
"nodeType": "YulBlock",
"src": "28477:288:8",
"statements": [
{
"nativeSrc": "28487:26:8",
"nodeType": "YulAssignment",
"src": "28487:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "28499:9:8",
"nodeType": "YulIdentifier",
"src": "28499:9:8"
},
{
"kind": "number",
"nativeSrc": "28510:2:8",
"nodeType": "YulLiteral",
"src": "28510:2:8",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "28495:3:8",
"nodeType": "YulIdentifier",
"src": "28495:3:8"
},
"nativeSrc": "28495:18:8",
"nodeType": "YulFunctionCall",
"src": "28495:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "28487:4:8",
"nodeType": "YulIdentifier",
"src": "28487:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "28567:6:8",
"nodeType": "YulIdentifier",
"src": "28567:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "28580:9:8",
"nodeType": "YulIdentifier",
"src": "28580:9:8"
},
{
"kind": "number",
"nativeSrc": "28591:1:8",
"nodeType": "YulLiteral",
"src": "28591:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "28576:3:8",
"nodeType": "YulIdentifier",
"src": "28576:3:8"
},
"nativeSrc": "28576:17:8",
"nodeType": "YulFunctionCall",
"src": "28576:17:8"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "28523:43:8",
"nodeType": "YulIdentifier",
"src": "28523:43:8"
},
"nativeSrc": "28523:71:8",
"nodeType": "YulFunctionCall",
"src": "28523:71:8"
},
"nativeSrc": "28523:71:8",
"nodeType": "YulExpressionStatement",
"src": "28523:71:8"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "28648:6:8",
"nodeType": "YulIdentifier",
"src": "28648:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "28661:9:8",
"nodeType": "YulIdentifier",
"src": "28661:9:8"
},
{
"kind": "number",
"nativeSrc": "28672:2:8",
"nodeType": "YulLiteral",
"src": "28672:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "28657:3:8",
"nodeType": "YulIdentifier",
"src": "28657:3:8"
},
"nativeSrc": "28657:18:8",
"nodeType": "YulFunctionCall",
"src": "28657:18:8"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "28604:43:8",
"nodeType": "YulIdentifier",
"src": "28604:43:8"
},
"nativeSrc": "28604:72:8",
"nodeType": "YulFunctionCall",
"src": "28604:72:8"
},
"nativeSrc": "28604:72:8",
"nodeType": "YulExpressionStatement",
"src": "28604:72:8"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "28730:6:8",
"nodeType": "YulIdentifier",
"src": "28730:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "28743:9:8",
"nodeType": "YulIdentifier",
"src": "28743:9:8"
},
{
"kind": "number",
"nativeSrc": "28754:2:8",
"nodeType": "YulLiteral",
"src": "28754:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "28739:3:8",
"nodeType": "YulIdentifier",
"src": "28739:3:8"
},
"nativeSrc": "28739:18:8",
"nodeType": "YulFunctionCall",
"src": "28739:18:8"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "28686:43:8",
"nodeType": "YulIdentifier",
"src": "28686:43:8"
},
"nativeSrc": "28686:72:8",
"nodeType": "YulFunctionCall",
"src": "28686:72:8"
},
"nativeSrc": "28686:72:8",
"nodeType": "YulExpressionStatement",
"src": "28686:72:8"
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed",
"nativeSrc": "28323:442:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "28433:9:8",
"nodeType": "YulTypedName",
"src": "28433:9:8",
"type": ""
},
{
"name": "value2",
"nativeSrc": "28445:6:8",
"nodeType": "YulTypedName",
"src": "28445:6:8",
"type": ""
},
{
"name": "value1",
"nativeSrc": "28453:6:8",
"nodeType": "YulTypedName",
"src": "28453:6:8",
"type": ""
},
{
"name": "value0",
"nativeSrc": "28461:6:8",
"nodeType": "YulTypedName",
"src": "28461:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "28472:4:8",
"nodeType": "YulTypedName",
"src": "28472:4:8",
"type": ""
}
],
"src": "28323:442:8"
},
{
"body": {
"nativeSrc": "28831:77:8",
"nodeType": "YulBlock",
"src": "28831:77:8",
"statements": [
{
"nativeSrc": "28841:22:8",
"nodeType": "YulAssignment",
"src": "28841:22:8",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "28856:6:8",
"nodeType": "YulIdentifier",
"src": "28856:6:8"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "28850:5:8",
"nodeType": "YulIdentifier",
"src": "28850:5:8"
},
"nativeSrc": "28850:13:8",
"nodeType": "YulFunctionCall",
"src": "28850:13:8"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "28841:5:8",
"nodeType": "YulIdentifier",
"src": "28841:5:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "28896:5:8",
"nodeType": "YulIdentifier",
"src": "28896:5:8"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nativeSrc": "28872:23:8",
"nodeType": "YulIdentifier",
"src": "28872:23:8"
},
"nativeSrc": "28872:30:8",
"nodeType": "YulFunctionCall",
"src": "28872:30:8"
},
"nativeSrc": "28872:30:8",
"nodeType": "YulExpressionStatement",
"src": "28872:30:8"
}
]
},
"name": "abi_decode_t_bool_fromMemory",
"nativeSrc": "28771:137:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "28809:6:8",
"nodeType": "YulTypedName",
"src": "28809:6:8",
"type": ""
},
{
"name": "end",
"nativeSrc": "28817:3:8",
"nodeType": "YulTypedName",
"src": "28817:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "28825:5:8",
"nodeType": "YulTypedName",
"src": "28825:5:8",
"type": ""
}
],
"src": "28771:137:8"
},
{
"body": {
"nativeSrc": "28988:271:8",
"nodeType": "YulBlock",
"src": "28988:271:8",
"statements": [
{
"body": {
"nativeSrc": "29034:83:8",
"nodeType": "YulBlock",
"src": "29034:83:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "29036:77:8",
"nodeType": "YulIdentifier",
"src": "29036:77:8"
},
"nativeSrc": "29036:79:8",
"nodeType": "YulFunctionCall",
"src": "29036:79:8"
},
"nativeSrc": "29036:79:8",
"nodeType": "YulExpressionStatement",
"src": "29036:79:8"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "29009:7:8",
"nodeType": "YulIdentifier",
"src": "29009:7:8"
},
{
"name": "headStart",
"nativeSrc": "29018:9:8",
"nodeType": "YulIdentifier",
"src": "29018:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "29005:3:8",
"nodeType": "YulIdentifier",
"src": "29005:3:8"
},
"nativeSrc": "29005:23:8",
"nodeType": "YulFunctionCall",
"src": "29005:23:8"
},
{
"kind": "number",
"nativeSrc": "29030:2:8",
"nodeType": "YulLiteral",
"src": "29030:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "29001:3:8",
"nodeType": "YulIdentifier",
"src": "29001:3:8"
},
"nativeSrc": "29001:32:8",
"nodeType": "YulFunctionCall",
"src": "29001:32:8"
},
"nativeSrc": "28998:119:8",
"nodeType": "YulIf",
"src": "28998:119:8"
},
{
"nativeSrc": "29127:125:8",
"nodeType": "YulBlock",
"src": "29127:125:8",
"statements": [
{
"nativeSrc": "29142:15:8",
"nodeType": "YulVariableDeclaration",
"src": "29142:15:8",
"value": {
"kind": "number",
"nativeSrc": "29156:1:8",
"nodeType": "YulLiteral",
"src": "29156:1:8",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "29146:6:8",
"nodeType": "YulTypedName",
"src": "29146:6:8",
"type": ""
}
]
},
{
"nativeSrc": "29171:71:8",
"nodeType": "YulAssignment",
"src": "29171:71:8",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "29214:9:8",
"nodeType": "YulIdentifier",
"src": "29214:9:8"
},
{
"name": "offset",
"nativeSrc": "29225:6:8",
"nodeType": "YulIdentifier",
"src": "29225:6:8"
}
],
"functionName": {
"name": "add",
"nativeSrc": "29210:3:8",
"nodeType": "YulIdentifier",
"src": "29210:3:8"
},
"nativeSrc": "29210:22:8",
"nodeType": "YulFunctionCall",
"src": "29210:22:8"
},
{
"name": "dataEnd",
"nativeSrc": "29234:7:8",
"nodeType": "YulIdentifier",
"src": "29234:7:8"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nativeSrc": "29181:28:8",
"nodeType": "YulIdentifier",
"src": "29181:28:8"
},
"nativeSrc": "29181:61:8",
"nodeType": "YulFunctionCall",
"src": "29181:61:8"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "29171:6:8",
"nodeType": "YulIdentifier",
"src": "29171:6:8"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bool_fromMemory",
"nativeSrc": "28914:345:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "28958:9:8",
"nodeType": "YulTypedName",
"src": "28958:9:8",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "28969:7:8",
"nodeType": "YulTypedName",
"src": "28969:7:8",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "28981:6:8",
"nodeType": "YulTypedName",
"src": "28981:6:8",
"type": ""
}
],
"src": "28914:345:8"
},
{
"body": {
"nativeSrc": "29371:124:8",
"nodeType": "YulBlock",
"src": "29371:124:8",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "29393:6:8",
"nodeType": "YulIdentifier",
"src": "29393:6:8"
},
{
"kind": "number",
"nativeSrc": "29401:1:8",
"nodeType": "YulLiteral",
"src": "29401:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "29389:3:8",
"nodeType": "YulIdentifier",
"src": "29389:3:8"
},
"nativeSrc": "29389:14:8",
"nodeType": "YulFunctionCall",
"src": "29389:14:8"
},
{
"hexValue": "546865726520697320616c726561647920616e206163636f756e74206f6e2074",
"kind": "string",
"nativeSrc": "29405:34:8",
"nodeType": "YulLiteral",
"src": "29405:34:8",
"type": "",
"value": "There is already an account on t"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "29382:6:8",
"nodeType": "YulIdentifier",
"src": "29382:6:8"
},
"nativeSrc": "29382:58:8",
"nodeType": "YulFunctionCall",
"src": "29382:58:8"
},
"nativeSrc": "29382:58:8",
"nodeType": "YulExpressionStatement",
"src": "29382:58:8"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "29461:6:8",
"nodeType": "YulIdentifier",
"src": "29461:6:8"
},
{
"kind": "number",
"nativeSrc": "29469:2:8",
"nodeType": "YulLiteral",
"src": "29469:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "29457:3:8",
"nodeType": "YulIdentifier",
"src": "29457:3:8"
},
"nativeSrc": "29457:15:8",
"nodeType": "YulFunctionCall",
"src": "29457:15:8"
},
{
"hexValue": "6869732061646472657373",
"kind": "string",
"nativeSrc": "29474:13:8",
"nodeType": "YulLiteral",
"src": "29474:13:8",
"type": "",
"value": "his address"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "29450:6:8",
"nodeType": "YulIdentifier",
"src": "29450:6:8"
},
"nativeSrc": "29450:38:8",
"nodeType": "YulFunctionCall",
"src": "29450:38:8"
},
"nativeSrc": "29450:38:8",
"nodeType": "YulExpressionStatement",
"src": "29450:38:8"
}
]
},
"name": "store_literal_in_memory_13e9b3f2752fc01442fe6c74e53a1c7fbfc05c195ef2aa2a44ec5bd3b8c98b29",
"nativeSrc": "29265:230:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "29363:6:8",
"nodeType": "YulTypedName",
"src": "29363:6:8",
"type": ""
}
],
"src": "29265:230:8"
},
{
"body": {
"nativeSrc": "29647:220:8",
"nodeType": "YulBlock",
"src": "29647:220:8",
"statements": [
{
"nativeSrc": "29657:74:8",
"nodeType": "YulAssignment",
"src": "29657:74:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "29723:3:8",
"nodeType": "YulIdentifier",
"src": "29723:3:8"
},
{
"kind": "number",
"nativeSrc": "29728:2:8",
"nodeType": "YulLiteral",
"src": "29728:2:8",
"type": "",
"value": "43"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "29664:58:8",
"nodeType": "YulIdentifier",
"src": "29664:58:8"
},
"nativeSrc": "29664:67:8",
"nodeType": "YulFunctionCall",
"src": "29664:67:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "29657:3:8",
"nodeType": "YulIdentifier",
"src": "29657:3:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "29829:3:8",
"nodeType": "YulIdentifier",
"src": "29829:3:8"
}
],
"functionName": {
"name": "store_literal_in_memory_13e9b3f2752fc01442fe6c74e53a1c7fbfc05c195ef2aa2a44ec5bd3b8c98b29",
"nativeSrc": "29740:88:8",
"nodeType": "YulIdentifier",
"src": "29740:88:8"
},
"nativeSrc": "29740:93:8",
"nodeType": "YulFunctionCall",
"src": "29740:93:8"
},
"nativeSrc": "29740:93:8",
"nodeType": "YulExpressionStatement",
"src": "29740:93:8"
},
{
"nativeSrc": "29842:19:8",
"nodeType": "YulAssignment",
"src": "29842:19:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "29853:3:8",
"nodeType": "YulIdentifier",
"src": "29853:3:8"
},
{
"kind": "number",
"nativeSrc": "29858:2:8",
"nodeType": "YulLiteral",
"src": "29858:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "29849:3:8",
"nodeType": "YulIdentifier",
"src": "29849:3:8"
},
"nativeSrc": "29849:12:8",
"nodeType": "YulFunctionCall",
"src": "29849:12:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "29842:3:8",
"nodeType": "YulIdentifier",
"src": "29842:3:8"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_13e9b3f2752fc01442fe6c74e53a1c7fbfc05c195ef2aa2a44ec5bd3b8c98b29_to_t_string_memory_ptr_fromStack",
"nativeSrc": "29501:366:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "29635:3:8",
"nodeType": "YulTypedName",
"src": "29635:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "29643:3:8",
"nodeType": "YulTypedName",
"src": "29643:3:8",
"type": ""
}
],
"src": "29501:366:8"
},
{
"body": {
"nativeSrc": "30044:248:8",
"nodeType": "YulBlock",
"src": "30044:248:8",
"statements": [
{
"nativeSrc": "30054:26:8",
"nodeType": "YulAssignment",
"src": "30054:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "30066:9:8",
"nodeType": "YulIdentifier",
"src": "30066:9:8"
},
{
"kind": "number",
"nativeSrc": "30077:2:8",
"nodeType": "YulLiteral",
"src": "30077:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "30062:3:8",
"nodeType": "YulIdentifier",
"src": "30062:3:8"
},
"nativeSrc": "30062:18:8",
"nodeType": "YulFunctionCall",
"src": "30062:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "30054:4:8",
"nodeType": "YulIdentifier",
"src": "30054:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "30101:9:8",
"nodeType": "YulIdentifier",
"src": "30101:9:8"
},
{
"kind": "number",
"nativeSrc": "30112:1:8",
"nodeType": "YulLiteral",
"src": "30112:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "30097:3:8",
"nodeType": "YulIdentifier",
"src": "30097:3:8"
},
"nativeSrc": "30097:17:8",
"nodeType": "YulFunctionCall",
"src": "30097:17:8"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "30120:4:8",
"nodeType": "YulIdentifier",
"src": "30120:4:8"
},
{
"name": "headStart",
"nativeSrc": "30126:9:8",
"nodeType": "YulIdentifier",
"src": "30126:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "30116:3:8",
"nodeType": "YulIdentifier",
"src": "30116:3:8"
},
"nativeSrc": "30116:20:8",
"nodeType": "YulFunctionCall",
"src": "30116:20:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "30090:6:8",
"nodeType": "YulIdentifier",
"src": "30090:6:8"
},
"nativeSrc": "30090:47:8",
"nodeType": "YulFunctionCall",
"src": "30090:47:8"
},
"nativeSrc": "30090:47:8",
"nodeType": "YulExpressionStatement",
"src": "30090:47:8"
},
{
"nativeSrc": "30146:139:8",
"nodeType": "YulAssignment",
"src": "30146:139:8",
"value": {
"arguments": [
{
"name": "tail",
"nativeSrc": "30280:4:8",
"nodeType": "YulIdentifier",
"src": "30280:4:8"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_13e9b3f2752fc01442fe6c74e53a1c7fbfc05c195ef2aa2a44ec5bd3b8c98b29_to_t_string_memory_ptr_fromStack",
"nativeSrc": "30154:124:8",
"nodeType": "YulIdentifier",
"src": "30154:124:8"
},
"nativeSrc": "30154:131:8",
"nodeType": "YulFunctionCall",
"src": "30154:131:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "30146:4:8",
"nodeType": "YulIdentifier",
"src": "30146:4:8"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_13e9b3f2752fc01442fe6c74e53a1c7fbfc05c195ef2aa2a44ec5bd3b8c98b29__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "29873:419:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "30024:9:8",
"nodeType": "YulTypedName",
"src": "30024:9:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "30039:4:8",
"nodeType": "YulTypedName",
"src": "30039:4:8",
"type": ""
}
],
"src": "29873:419:8"
},
{
"body": {
"nativeSrc": "30343:149:8",
"nodeType": "YulBlock",
"src": "30343:149:8",
"statements": [
{
"nativeSrc": "30353:25:8",
"nodeType": "YulAssignment",
"src": "30353:25:8",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "30376:1:8",
"nodeType": "YulIdentifier",
"src": "30376:1:8"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "30358:17:8",
"nodeType": "YulIdentifier",
"src": "30358:17:8"
},
"nativeSrc": "30358:20:8",
"nodeType": "YulFunctionCall",
"src": "30358:20:8"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "30353:1:8",
"nodeType": "YulIdentifier",
"src": "30353:1:8"
}
]
},
{
"nativeSrc": "30387:25:8",
"nodeType": "YulAssignment",
"src": "30387:25:8",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "30410:1:8",
"nodeType": "YulIdentifier",
"src": "30410:1:8"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "30392:17:8",
"nodeType": "YulIdentifier",
"src": "30392:17:8"
},
"nativeSrc": "30392:20:8",
"nodeType": "YulFunctionCall",
"src": "30392:20:8"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "30387:1:8",
"nodeType": "YulIdentifier",
"src": "30387:1:8"
}
]
},
{
"nativeSrc": "30421:17:8",
"nodeType": "YulAssignment",
"src": "30421:17:8",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "30433:1:8",
"nodeType": "YulIdentifier",
"src": "30433:1:8"
},
{
"name": "y",
"nativeSrc": "30436:1:8",
"nodeType": "YulIdentifier",
"src": "30436:1:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "30429:3:8",
"nodeType": "YulIdentifier",
"src": "30429:3:8"
},
"nativeSrc": "30429:9:8",
"nodeType": "YulFunctionCall",
"src": "30429:9:8"
},
"variableNames": [
{
"name": "diff",
"nativeSrc": "30421:4:8",
"nodeType": "YulIdentifier",
"src": "30421:4:8"
}
]
},
{
"body": {
"nativeSrc": "30463:22:8",
"nodeType": "YulBlock",
"src": "30463:22:8",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "30465:16:8",
"nodeType": "YulIdentifier",
"src": "30465:16:8"
},
"nativeSrc": "30465:18:8",
"nodeType": "YulFunctionCall",
"src": "30465:18:8"
},
"nativeSrc": "30465:18:8",
"nodeType": "YulExpressionStatement",
"src": "30465:18:8"
}
]
},
"condition": {
"arguments": [
{
"name": "diff",
"nativeSrc": "30454:4:8",
"nodeType": "YulIdentifier",
"src": "30454:4:8"
},
{
"name": "x",
"nativeSrc": "30460:1:8",
"nodeType": "YulIdentifier",
"src": "30460:1:8"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "30451:2:8",
"nodeType": "YulIdentifier",
"src": "30451:2:8"
},
"nativeSrc": "30451:11:8",
"nodeType": "YulFunctionCall",
"src": "30451:11:8"
},
"nativeSrc": "30448:37:8",
"nodeType": "YulIf",
"src": "30448:37:8"
}
]
},
"name": "checked_sub_t_uint256",
"nativeSrc": "30298:194:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "30329:1:8",
"nodeType": "YulTypedName",
"src": "30329:1:8",
"type": ""
},
{
"name": "y",
"nativeSrc": "30332:1:8",
"nodeType": "YulTypedName",
"src": "30332:1:8",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nativeSrc": "30338:4:8",
"nodeType": "YulTypedName",
"src": "30338:4:8",
"type": ""
}
],
"src": "30298:194:8"
},
{
"body": {
"nativeSrc": "30624:206:8",
"nodeType": "YulBlock",
"src": "30624:206:8",
"statements": [
{
"nativeSrc": "30634:26:8",
"nodeType": "YulAssignment",
"src": "30634:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "30646:9:8",
"nodeType": "YulIdentifier",
"src": "30646:9:8"
},
{
"kind": "number",
"nativeSrc": "30657:2:8",
"nodeType": "YulLiteral",
"src": "30657:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "30642:3:8",
"nodeType": "YulIdentifier",
"src": "30642:3:8"
},
"nativeSrc": "30642:18:8",
"nodeType": "YulFunctionCall",
"src": "30642:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "30634:4:8",
"nodeType": "YulIdentifier",
"src": "30634:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "30714:6:8",
"nodeType": "YulIdentifier",
"src": "30714:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "30727:9:8",
"nodeType": "YulIdentifier",
"src": "30727:9:8"
},
{
"kind": "number",
"nativeSrc": "30738:1:8",
"nodeType": "YulLiteral",
"src": "30738:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "30723:3:8",
"nodeType": "YulIdentifier",
"src": "30723:3:8"
},
"nativeSrc": "30723:17:8",
"nodeType": "YulFunctionCall",
"src": "30723:17:8"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "30670:43:8",
"nodeType": "YulIdentifier",
"src": "30670:43:8"
},
"nativeSrc": "30670:71:8",
"nodeType": "YulFunctionCall",
"src": "30670:71:8"
},
"nativeSrc": "30670:71:8",
"nodeType": "YulExpressionStatement",
"src": "30670:71:8"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "30795:6:8",
"nodeType": "YulIdentifier",
"src": "30795:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "30808:9:8",
"nodeType": "YulIdentifier",
"src": "30808:9:8"
},
{
"kind": "number",
"nativeSrc": "30819:2:8",
"nodeType": "YulLiteral",
"src": "30819:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "30804:3:8",
"nodeType": "YulIdentifier",
"src": "30804:3:8"
},
"nativeSrc": "30804:18:8",
"nodeType": "YulFunctionCall",
"src": "30804:18:8"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "30751:43:8",
"nodeType": "YulIdentifier",
"src": "30751:43:8"
},
"nativeSrc": "30751:72:8",
"nodeType": "YulFunctionCall",
"src": "30751:72:8"
},
"nativeSrc": "30751:72:8",
"nodeType": "YulExpressionStatement",
"src": "30751:72:8"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
"nativeSrc": "30498:332:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "30588:9:8",
"nodeType": "YulTypedName",
"src": "30588:9:8",
"type": ""
},
{
"name": "value1",
"nativeSrc": "30600:6:8",
"nodeType": "YulTypedName",
"src": "30600:6:8",
"type": ""
},
{
"name": "value0",
"nativeSrc": "30608:6:8",
"nodeType": "YulTypedName",
"src": "30608:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "30619:4:8",
"nodeType": "YulTypedName",
"src": "30619:4:8",
"type": ""
}
],
"src": "30498:332:8"
},
{
"body": {
"nativeSrc": "30942:119:8",
"nodeType": "YulBlock",
"src": "30942:119:8",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "30964:6:8",
"nodeType": "YulIdentifier",
"src": "30964:6:8"
},
{
"kind": "number",
"nativeSrc": "30972:1:8",
"nodeType": "YulLiteral",
"src": "30972:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "30960:3:8",
"nodeType": "YulIdentifier",
"src": "30960:3:8"
},
"nativeSrc": "30960:14:8",
"nodeType": "YulFunctionCall",
"src": "30960:14:8"
},
{
"hexValue": "54686973206163636f756e742068617320616c7265616479206265656e207665",
"kind": "string",
"nativeSrc": "30976:34:8",
"nodeType": "YulLiteral",
"src": "30976:34:8",
"type": "",
"value": "This account has already been ve"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "30953:6:8",
"nodeType": "YulIdentifier",
"src": "30953:6:8"
},
"nativeSrc": "30953:58:8",
"nodeType": "YulFunctionCall",
"src": "30953:58:8"
},
"nativeSrc": "30953:58:8",
"nodeType": "YulExpressionStatement",
"src": "30953:58:8"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "31032:6:8",
"nodeType": "YulIdentifier",
"src": "31032:6:8"
},
{
"kind": "number",
"nativeSrc": "31040:2:8",
"nodeType": "YulLiteral",
"src": "31040:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "31028:3:8",
"nodeType": "YulIdentifier",
"src": "31028:3:8"
},
"nativeSrc": "31028:15:8",
"nodeType": "YulFunctionCall",
"src": "31028:15:8"
},
{
"hexValue": "726966696564",
"kind": "string",
"nativeSrc": "31045:8:8",
"nodeType": "YulLiteral",
"src": "31045:8:8",
"type": "",
"value": "rified"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "31021:6:8",
"nodeType": "YulIdentifier",
"src": "31021:6:8"
},
"nativeSrc": "31021:33:8",
"nodeType": "YulFunctionCall",
"src": "31021:33:8"
},
"nativeSrc": "31021:33:8",
"nodeType": "YulExpressionStatement",
"src": "31021:33:8"
}
]
},
"name": "store_literal_in_memory_ff3e0523e98677348faf533ab2bf010de0dfe6153569ad5d536cc87a5b27e996",
"nativeSrc": "30836:225:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "30934:6:8",
"nodeType": "YulTypedName",
"src": "30934:6:8",
"type": ""
}
],
"src": "30836:225:8"
},
{
"body": {
"nativeSrc": "31213:220:8",
"nodeType": "YulBlock",
"src": "31213:220:8",
"statements": [
{
"nativeSrc": "31223:74:8",
"nodeType": "YulAssignment",
"src": "31223:74:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "31289:3:8",
"nodeType": "YulIdentifier",
"src": "31289:3:8"
},
{
"kind": "number",
"nativeSrc": "31294:2:8",
"nodeType": "YulLiteral",
"src": "31294:2:8",
"type": "",
"value": "38"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "31230:58:8",
"nodeType": "YulIdentifier",
"src": "31230:58:8"
},
"nativeSrc": "31230:67:8",
"nodeType": "YulFunctionCall",
"src": "31230:67:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "31223:3:8",
"nodeType": "YulIdentifier",
"src": "31223:3:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "31395:3:8",
"nodeType": "YulIdentifier",
"src": "31395:3:8"
}
],
"functionName": {
"name": "store_literal_in_memory_ff3e0523e98677348faf533ab2bf010de0dfe6153569ad5d536cc87a5b27e996",
"nativeSrc": "31306:88:8",
"nodeType": "YulIdentifier",
"src": "31306:88:8"
},
"nativeSrc": "31306:93:8",
"nodeType": "YulFunctionCall",
"src": "31306:93:8"
},
"nativeSrc": "31306:93:8",
"nodeType": "YulExpressionStatement",
"src": "31306:93:8"
},
{
"nativeSrc": "31408:19:8",
"nodeType": "YulAssignment",
"src": "31408:19:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "31419:3:8",
"nodeType": "YulIdentifier",
"src": "31419:3:8"
},
{
"kind": "number",
"nativeSrc": "31424:2:8",
"nodeType": "YulLiteral",
"src": "31424:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "31415:3:8",
"nodeType": "YulIdentifier",
"src": "31415:3:8"
},
"nativeSrc": "31415:12:8",
"nodeType": "YulFunctionCall",
"src": "31415:12:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "31408:3:8",
"nodeType": "YulIdentifier",
"src": "31408:3:8"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_ff3e0523e98677348faf533ab2bf010de0dfe6153569ad5d536cc87a5b27e996_to_t_string_memory_ptr_fromStack",
"nativeSrc": "31067:366:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "31201:3:8",
"nodeType": "YulTypedName",
"src": "31201:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "31209:3:8",
"nodeType": "YulTypedName",
"src": "31209:3:8",
"type": ""
}
],
"src": "31067:366:8"
},
{
"body": {
"nativeSrc": "31610:248:8",
"nodeType": "YulBlock",
"src": "31610:248:8",
"statements": [
{
"nativeSrc": "31620:26:8",
"nodeType": "YulAssignment",
"src": "31620:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "31632:9:8",
"nodeType": "YulIdentifier",
"src": "31632:9:8"
},
{
"kind": "number",
"nativeSrc": "31643:2:8",
"nodeType": "YulLiteral",
"src": "31643:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "31628:3:8",
"nodeType": "YulIdentifier",
"src": "31628:3:8"
},
"nativeSrc": "31628:18:8",
"nodeType": "YulFunctionCall",
"src": "31628:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "31620:4:8",
"nodeType": "YulIdentifier",
"src": "31620:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "31667:9:8",
"nodeType": "YulIdentifier",
"src": "31667:9:8"
},
{
"kind": "number",
"nativeSrc": "31678:1:8",
"nodeType": "YulLiteral",
"src": "31678:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "31663:3:8",
"nodeType": "YulIdentifier",
"src": "31663:3:8"
},
"nativeSrc": "31663:17:8",
"nodeType": "YulFunctionCall",
"src": "31663:17:8"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "31686:4:8",
"nodeType": "YulIdentifier",
"src": "31686:4:8"
},
{
"name": "headStart",
"nativeSrc": "31692:9:8",
"nodeType": "YulIdentifier",
"src": "31692:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "31682:3:8",
"nodeType": "YulIdentifier",
"src": "31682:3:8"
},
"nativeSrc": "31682:20:8",
"nodeType": "YulFunctionCall",
"src": "31682:20:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "31656:6:8",
"nodeType": "YulIdentifier",
"src": "31656:6:8"
},
"nativeSrc": "31656:47:8",
"nodeType": "YulFunctionCall",
"src": "31656:47:8"
},
"nativeSrc": "31656:47:8",
"nodeType": "YulExpressionStatement",
"src": "31656:47:8"
},
{
"nativeSrc": "31712:139:8",
"nodeType": "YulAssignment",
"src": "31712:139:8",
"value": {
"arguments": [
{
"name": "tail",
"nativeSrc": "31846:4:8",
"nodeType": "YulIdentifier",
"src": "31846:4:8"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_ff3e0523e98677348faf533ab2bf010de0dfe6153569ad5d536cc87a5b27e996_to_t_string_memory_ptr_fromStack",
"nativeSrc": "31720:124:8",
"nodeType": "YulIdentifier",
"src": "31720:124:8"
},
"nativeSrc": "31720:131:8",
"nodeType": "YulFunctionCall",
"src": "31720:131:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "31712:4:8",
"nodeType": "YulIdentifier",
"src": "31712:4:8"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_ff3e0523e98677348faf533ab2bf010de0dfe6153569ad5d536cc87a5b27e996__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "31439:419:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "31590:9:8",
"nodeType": "YulTypedName",
"src": "31590:9:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "31605:4:8",
"nodeType": "YulTypedName",
"src": "31605:4:8",
"type": ""
}
],
"src": "31439:419:8"
},
{
"body": {
"nativeSrc": "31970:76:8",
"nodeType": "YulBlock",
"src": "31970:76:8",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "31992:6:8",
"nodeType": "YulIdentifier",
"src": "31992:6:8"
},
{
"kind": "number",
"nativeSrc": "32000:1:8",
"nodeType": "YulLiteral",
"src": "32000:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "31988:3:8",
"nodeType": "YulIdentifier",
"src": "31988:3:8"
},
"nativeSrc": "31988:14:8",
"nodeType": "YulFunctionCall",
"src": "31988:14:8"
},
{
"hexValue": "54686973206163636f756e7420686173206e6f74206265656e2062616e6e6564",
"kind": "string",
"nativeSrc": "32004:34:8",
"nodeType": "YulLiteral",
"src": "32004:34:8",
"type": "",
"value": "This account has not been banned"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "31981:6:8",
"nodeType": "YulIdentifier",
"src": "31981:6:8"
},
"nativeSrc": "31981:58:8",
"nodeType": "YulFunctionCall",
"src": "31981:58:8"
},
"nativeSrc": "31981:58:8",
"nodeType": "YulExpressionStatement",
"src": "31981:58:8"
}
]
},
"name": "store_literal_in_memory_5dde37551afd1b8bd7e67868a5db9a1ab0c5c0e070f2de0cf1f9981214be151c",
"nativeSrc": "31864:182:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "31962:6:8",
"nodeType": "YulTypedName",
"src": "31962:6:8",
"type": ""
}
],
"src": "31864:182:8"
},
{
"body": {
"nativeSrc": "32198:220:8",
"nodeType": "YulBlock",
"src": "32198:220:8",
"statements": [
{
"nativeSrc": "32208:74:8",
"nodeType": "YulAssignment",
"src": "32208:74:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "32274:3:8",
"nodeType": "YulIdentifier",
"src": "32274:3:8"
},
{
"kind": "number",
"nativeSrc": "32279:2:8",
"nodeType": "YulLiteral",
"src": "32279:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "32215:58:8",
"nodeType": "YulIdentifier",
"src": "32215:58:8"
},
"nativeSrc": "32215:67:8",
"nodeType": "YulFunctionCall",
"src": "32215:67:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "32208:3:8",
"nodeType": "YulIdentifier",
"src": "32208:3:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "32380:3:8",
"nodeType": "YulIdentifier",
"src": "32380:3:8"
}
],
"functionName": {
"name": "store_literal_in_memory_5dde37551afd1b8bd7e67868a5db9a1ab0c5c0e070f2de0cf1f9981214be151c",
"nativeSrc": "32291:88:8",
"nodeType": "YulIdentifier",
"src": "32291:88:8"
},
"nativeSrc": "32291:93:8",
"nodeType": "YulFunctionCall",
"src": "32291:93:8"
},
"nativeSrc": "32291:93:8",
"nodeType": "YulExpressionStatement",
"src": "32291:93:8"
},
{
"nativeSrc": "32393:19:8",
"nodeType": "YulAssignment",
"src": "32393:19:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "32404:3:8",
"nodeType": "YulIdentifier",
"src": "32404:3:8"
},
{
"kind": "number",
"nativeSrc": "32409:2:8",
"nodeType": "YulLiteral",
"src": "32409:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "32400:3:8",
"nodeType": "YulIdentifier",
"src": "32400:3:8"
},
"nativeSrc": "32400:12:8",
"nodeType": "YulFunctionCall",
"src": "32400:12:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "32393:3:8",
"nodeType": "YulIdentifier",
"src": "32393:3:8"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_5dde37551afd1b8bd7e67868a5db9a1ab0c5c0e070f2de0cf1f9981214be151c_to_t_string_memory_ptr_fromStack",
"nativeSrc": "32052:366:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "32186:3:8",
"nodeType": "YulTypedName",
"src": "32186:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "32194:3:8",
"nodeType": "YulTypedName",
"src": "32194:3:8",
"type": ""
}
],
"src": "32052:366:8"
},
{
"body": {
"nativeSrc": "32595:248:8",
"nodeType": "YulBlock",
"src": "32595:248:8",
"statements": [
{
"nativeSrc": "32605:26:8",
"nodeType": "YulAssignment",
"src": "32605:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "32617:9:8",
"nodeType": "YulIdentifier",
"src": "32617:9:8"
},
{
"kind": "number",
"nativeSrc": "32628:2:8",
"nodeType": "YulLiteral",
"src": "32628:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "32613:3:8",
"nodeType": "YulIdentifier",
"src": "32613:3:8"
},
"nativeSrc": "32613:18:8",
"nodeType": "YulFunctionCall",
"src": "32613:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "32605:4:8",
"nodeType": "YulIdentifier",
"src": "32605:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "32652:9:8",
"nodeType": "YulIdentifier",
"src": "32652:9:8"
},
{
"kind": "number",
"nativeSrc": "32663:1:8",
"nodeType": "YulLiteral",
"src": "32663:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "32648:3:8",
"nodeType": "YulIdentifier",
"src": "32648:3:8"
},
"nativeSrc": "32648:17:8",
"nodeType": "YulFunctionCall",
"src": "32648:17:8"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "32671:4:8",
"nodeType": "YulIdentifier",
"src": "32671:4:8"
},
{
"name": "headStart",
"nativeSrc": "32677:9:8",
"nodeType": "YulIdentifier",
"src": "32677:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "32667:3:8",
"nodeType": "YulIdentifier",
"src": "32667:3:8"
},
"nativeSrc": "32667:20:8",
"nodeType": "YulFunctionCall",
"src": "32667:20:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "32641:6:8",
"nodeType": "YulIdentifier",
"src": "32641:6:8"
},
"nativeSrc": "32641:47:8",
"nodeType": "YulFunctionCall",
"src": "32641:47:8"
},
"nativeSrc": "32641:47:8",
"nodeType": "YulExpressionStatement",
"src": "32641:47:8"
},
{
"nativeSrc": "32697:139:8",
"nodeType": "YulAssignment",
"src": "32697:139:8",
"value": {
"arguments": [
{
"name": "tail",
"nativeSrc": "32831:4:8",
"nodeType": "YulIdentifier",
"src": "32831:4:8"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_5dde37551afd1b8bd7e67868a5db9a1ab0c5c0e070f2de0cf1f9981214be151c_to_t_string_memory_ptr_fromStack",
"nativeSrc": "32705:124:8",
"nodeType": "YulIdentifier",
"src": "32705:124:8"
},
"nativeSrc": "32705:131:8",
"nodeType": "YulFunctionCall",
"src": "32705:131:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "32697:4:8",
"nodeType": "YulIdentifier",
"src": "32697:4:8"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_5dde37551afd1b8bd7e67868a5db9a1ab0c5c0e070f2de0cf1f9981214be151c__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "32424:419:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "32575:9:8",
"nodeType": "YulTypedName",
"src": "32575:9:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "32590:4:8",
"nodeType": "YulTypedName",
"src": "32590:4:8",
"type": ""
}
],
"src": "32424:419:8"
},
{
"body": {
"nativeSrc": "32955:63:8",
"nodeType": "YulBlock",
"src": "32955:63:8",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "32977:6:8",
"nodeType": "YulIdentifier",
"src": "32977:6:8"
},
{
"kind": "number",
"nativeSrc": "32985:1:8",
"nodeType": "YulLiteral",
"src": "32985:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "32973:3:8",
"nodeType": "YulIdentifier",
"src": "32973:3:8"
},
"nativeSrc": "32973:14:8",
"nodeType": "YulFunctionCall",
"src": "32973:14:8"
},
{
"hexValue": "4e6f7468696e6720746f207769746864726177",
"kind": "string",
"nativeSrc": "32989:21:8",
"nodeType": "YulLiteral",
"src": "32989:21:8",
"type": "",
"value": "Nothing to withdraw"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "32966:6:8",
"nodeType": "YulIdentifier",
"src": "32966:6:8"
},
"nativeSrc": "32966:45:8",
"nodeType": "YulFunctionCall",
"src": "32966:45:8"
},
"nativeSrc": "32966:45:8",
"nodeType": "YulExpressionStatement",
"src": "32966:45:8"
}
]
},
"name": "store_literal_in_memory_1b19ac089d87f4146c293e731799080c98f8ee751187f94356e96cb0c086a394",
"nativeSrc": "32849:169:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "32947:6:8",
"nodeType": "YulTypedName",
"src": "32947:6:8",
"type": ""
}
],
"src": "32849:169:8"
},
{
"body": {
"nativeSrc": "33170:220:8",
"nodeType": "YulBlock",
"src": "33170:220:8",
"statements": [
{
"nativeSrc": "33180:74:8",
"nodeType": "YulAssignment",
"src": "33180:74:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "33246:3:8",
"nodeType": "YulIdentifier",
"src": "33246:3:8"
},
{
"kind": "number",
"nativeSrc": "33251:2:8",
"nodeType": "YulLiteral",
"src": "33251:2:8",
"type": "",
"value": "19"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "33187:58:8",
"nodeType": "YulIdentifier",
"src": "33187:58:8"
},
"nativeSrc": "33187:67:8",
"nodeType": "YulFunctionCall",
"src": "33187:67:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "33180:3:8",
"nodeType": "YulIdentifier",
"src": "33180:3:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "33352:3:8",
"nodeType": "YulIdentifier",
"src": "33352:3:8"
}
],
"functionName": {
"name": "store_literal_in_memory_1b19ac089d87f4146c293e731799080c98f8ee751187f94356e96cb0c086a394",
"nativeSrc": "33263:88:8",
"nodeType": "YulIdentifier",
"src": "33263:88:8"
},
"nativeSrc": "33263:93:8",
"nodeType": "YulFunctionCall",
"src": "33263:93:8"
},
"nativeSrc": "33263:93:8",
"nodeType": "YulExpressionStatement",
"src": "33263:93:8"
},
{
"nativeSrc": "33365:19:8",
"nodeType": "YulAssignment",
"src": "33365:19:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "33376:3:8",
"nodeType": "YulIdentifier",
"src": "33376:3:8"
},
{
"kind": "number",
"nativeSrc": "33381:2:8",
"nodeType": "YulLiteral",
"src": "33381:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "33372:3:8",
"nodeType": "YulIdentifier",
"src": "33372:3:8"
},
"nativeSrc": "33372:12:8",
"nodeType": "YulFunctionCall",
"src": "33372:12:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "33365:3:8",
"nodeType": "YulIdentifier",
"src": "33365:3:8"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_1b19ac089d87f4146c293e731799080c98f8ee751187f94356e96cb0c086a394_to_t_string_memory_ptr_fromStack",
"nativeSrc": "33024:366:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "33158:3:8",
"nodeType": "YulTypedName",
"src": "33158:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "33166:3:8",
"nodeType": "YulTypedName",
"src": "33166:3:8",
"type": ""
}
],
"src": "33024:366:8"
},
{
"body": {
"nativeSrc": "33567:248:8",
"nodeType": "YulBlock",
"src": "33567:248:8",
"statements": [
{
"nativeSrc": "33577:26:8",
"nodeType": "YulAssignment",
"src": "33577:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "33589:9:8",
"nodeType": "YulIdentifier",
"src": "33589:9:8"
},
{
"kind": "number",
"nativeSrc": "33600:2:8",
"nodeType": "YulLiteral",
"src": "33600:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "33585:3:8",
"nodeType": "YulIdentifier",
"src": "33585:3:8"
},
"nativeSrc": "33585:18:8",
"nodeType": "YulFunctionCall",
"src": "33585:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "33577:4:8",
"nodeType": "YulIdentifier",
"src": "33577:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "33624:9:8",
"nodeType": "YulIdentifier",
"src": "33624:9:8"
},
{
"kind": "number",
"nativeSrc": "33635:1:8",
"nodeType": "YulLiteral",
"src": "33635:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "33620:3:8",
"nodeType": "YulIdentifier",
"src": "33620:3:8"
},
"nativeSrc": "33620:17:8",
"nodeType": "YulFunctionCall",
"src": "33620:17:8"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "33643:4:8",
"nodeType": "YulIdentifier",
"src": "33643:4:8"
},
{
"name": "headStart",
"nativeSrc": "33649:9:8",
"nodeType": "YulIdentifier",
"src": "33649:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "33639:3:8",
"nodeType": "YulIdentifier",
"src": "33639:3:8"
},
"nativeSrc": "33639:20:8",
"nodeType": "YulFunctionCall",
"src": "33639:20:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "33613:6:8",
"nodeType": "YulIdentifier",
"src": "33613:6:8"
},
"nativeSrc": "33613:47:8",
"nodeType": "YulFunctionCall",
"src": "33613:47:8"
},
"nativeSrc": "33613:47:8",
"nodeType": "YulExpressionStatement",
"src": "33613:47:8"
},
{
"nativeSrc": "33669:139:8",
"nodeType": "YulAssignment",
"src": "33669:139:8",
"value": {
"arguments": [
{
"name": "tail",
"nativeSrc": "33803:4:8",
"nodeType": "YulIdentifier",
"src": "33803:4:8"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_1b19ac089d87f4146c293e731799080c98f8ee751187f94356e96cb0c086a394_to_t_string_memory_ptr_fromStack",
"nativeSrc": "33677:124:8",
"nodeType": "YulIdentifier",
"src": "33677:124:8"
},
"nativeSrc": "33677:131:8",
"nodeType": "YulFunctionCall",
"src": "33677:131:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "33669:4:8",
"nodeType": "YulIdentifier",
"src": "33669:4:8"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_1b19ac089d87f4146c293e731799080c98f8ee751187f94356e96cb0c086a394__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "33396:419:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "33547:9:8",
"nodeType": "YulTypedName",
"src": "33547:9:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "33562:4:8",
"nodeType": "YulTypedName",
"src": "33562:4:8",
"type": ""
}
],
"src": "33396:419:8"
},
{
"body": {
"nativeSrc": "34053:531:8",
"nodeType": "YulBlock",
"src": "34053:531:8",
"statements": [
{
"nativeSrc": "34063:27:8",
"nodeType": "YulAssignment",
"src": "34063:27:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "34075:9:8",
"nodeType": "YulIdentifier",
"src": "34075:9:8"
},
{
"kind": "number",
"nativeSrc": "34086:3:8",
"nodeType": "YulLiteral",
"src": "34086:3:8",
"type": "",
"value": "192"
}
],
"functionName": {
"name": "add",
"nativeSrc": "34071:3:8",
"nodeType": "YulIdentifier",
"src": "34071:3:8"
},
"nativeSrc": "34071:19:8",
"nodeType": "YulFunctionCall",
"src": "34071:19:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "34063:4:8",
"nodeType": "YulIdentifier",
"src": "34063:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "34144:6:8",
"nodeType": "YulIdentifier",
"src": "34144:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "34157:9:8",
"nodeType": "YulIdentifier",
"src": "34157:9:8"
},
{
"kind": "number",
"nativeSrc": "34168:1:8",
"nodeType": "YulLiteral",
"src": "34168:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "34153:3:8",
"nodeType": "YulIdentifier",
"src": "34153:3:8"
},
"nativeSrc": "34153:17:8",
"nodeType": "YulFunctionCall",
"src": "34153:17:8"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "34100:43:8",
"nodeType": "YulIdentifier",
"src": "34100:43:8"
},
"nativeSrc": "34100:71:8",
"nodeType": "YulFunctionCall",
"src": "34100:71:8"
},
"nativeSrc": "34100:71:8",
"nodeType": "YulExpressionStatement",
"src": "34100:71:8"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "34225:6:8",
"nodeType": "YulIdentifier",
"src": "34225:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "34238:9:8",
"nodeType": "YulIdentifier",
"src": "34238:9:8"
},
{
"kind": "number",
"nativeSrc": "34249:2:8",
"nodeType": "YulLiteral",
"src": "34249:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "34234:3:8",
"nodeType": "YulIdentifier",
"src": "34234:3:8"
},
"nativeSrc": "34234:18:8",
"nodeType": "YulFunctionCall",
"src": "34234:18:8"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "34181:43:8",
"nodeType": "YulIdentifier",
"src": "34181:43:8"
},
"nativeSrc": "34181:72:8",
"nodeType": "YulFunctionCall",
"src": "34181:72:8"
},
"nativeSrc": "34181:72:8",
"nodeType": "YulExpressionStatement",
"src": "34181:72:8"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "34307:6:8",
"nodeType": "YulIdentifier",
"src": "34307:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "34320:9:8",
"nodeType": "YulIdentifier",
"src": "34320:9:8"
},
{
"kind": "number",
"nativeSrc": "34331:2:8",
"nodeType": "YulLiteral",
"src": "34331:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "34316:3:8",
"nodeType": "YulIdentifier",
"src": "34316:3:8"
},
"nativeSrc": "34316:18:8",
"nodeType": "YulFunctionCall",
"src": "34316:18:8"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "34263:43:8",
"nodeType": "YulIdentifier",
"src": "34263:43:8"
},
"nativeSrc": "34263:72:8",
"nodeType": "YulFunctionCall",
"src": "34263:72:8"
},
"nativeSrc": "34263:72:8",
"nodeType": "YulExpressionStatement",
"src": "34263:72:8"
},
{
"expression": {
"arguments": [
{
"name": "value3",
"nativeSrc": "34389:6:8",
"nodeType": "YulIdentifier",
"src": "34389:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "34402:9:8",
"nodeType": "YulIdentifier",
"src": "34402:9:8"
},
{
"kind": "number",
"nativeSrc": "34413:2:8",
"nodeType": "YulLiteral",
"src": "34413:2:8",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "34398:3:8",
"nodeType": "YulIdentifier",
"src": "34398:3:8"
},
"nativeSrc": "34398:18:8",
"nodeType": "YulFunctionCall",
"src": "34398:18:8"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "34345:43:8",
"nodeType": "YulIdentifier",
"src": "34345:43:8"
},
"nativeSrc": "34345:72:8",
"nodeType": "YulFunctionCall",
"src": "34345:72:8"
},
"nativeSrc": "34345:72:8",
"nodeType": "YulExpressionStatement",
"src": "34345:72:8"
},
{
"expression": {
"arguments": [
{
"name": "value4",
"nativeSrc": "34471:6:8",
"nodeType": "YulIdentifier",
"src": "34471:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "34484:9:8",
"nodeType": "YulIdentifier",
"src": "34484:9:8"
},
{
"kind": "number",
"nativeSrc": "34495:3:8",
"nodeType": "YulLiteral",
"src": "34495:3:8",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nativeSrc": "34480:3:8",
"nodeType": "YulIdentifier",
"src": "34480:3:8"
},
"nativeSrc": "34480:19:8",
"nodeType": "YulFunctionCall",
"src": "34480:19:8"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "34427:43:8",
"nodeType": "YulIdentifier",
"src": "34427:43:8"
},
"nativeSrc": "34427:73:8",
"nodeType": "YulFunctionCall",
"src": "34427:73:8"
},
"nativeSrc": "34427:73:8",
"nodeType": "YulExpressionStatement",
"src": "34427:73:8"
},
{
"expression": {
"arguments": [
{
"name": "value5",
"nativeSrc": "34548:6:8",
"nodeType": "YulIdentifier",
"src": "34548:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "34561:9:8",
"nodeType": "YulIdentifier",
"src": "34561:9:8"
},
{
"kind": "number",
"nativeSrc": "34572:3:8",
"nodeType": "YulLiteral",
"src": "34572:3:8",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nativeSrc": "34557:3:8",
"nodeType": "YulIdentifier",
"src": "34557:3:8"
},
"nativeSrc": "34557:19:8",
"nodeType": "YulFunctionCall",
"src": "34557:19:8"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "34510:37:8",
"nodeType": "YulIdentifier",
"src": "34510:37:8"
},
"nativeSrc": "34510:67:8",
"nodeType": "YulFunctionCall",
"src": "34510:67:8"
},
"nativeSrc": "34510:67:8",
"nodeType": "YulExpressionStatement",
"src": "34510:67:8"
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_uint256_t_bool__to_t_address_t_address_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed",
"nativeSrc": "33821:763:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "33985:9:8",
"nodeType": "YulTypedName",
"src": "33985:9:8",
"type": ""
},
{
"name": "value5",
"nativeSrc": "33997:6:8",
"nodeType": "YulTypedName",
"src": "33997:6:8",
"type": ""
},
{
"name": "value4",
"nativeSrc": "34005:6:8",
"nodeType": "YulTypedName",
"src": "34005:6:8",
"type": ""
},
{
"name": "value3",
"nativeSrc": "34013:6:8",
"nodeType": "YulTypedName",
"src": "34013:6:8",
"type": ""
},
{
"name": "value2",
"nativeSrc": "34021:6:8",
"nodeType": "YulTypedName",
"src": "34021:6:8",
"type": ""
},
{
"name": "value1",
"nativeSrc": "34029:6:8",
"nodeType": "YulTypedName",
"src": "34029:6:8",
"type": ""
},
{
"name": "value0",
"nativeSrc": "34037:6:8",
"nodeType": "YulTypedName",
"src": "34037:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "34048:4:8",
"nodeType": "YulTypedName",
"src": "34048:4:8",
"type": ""
}
],
"src": "33821:763:8"
},
{
"body": {
"nativeSrc": "34716:206:8",
"nodeType": "YulBlock",
"src": "34716:206:8",
"statements": [
{
"nativeSrc": "34726:26:8",
"nodeType": "YulAssignment",
"src": "34726:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "34738:9:8",
"nodeType": "YulIdentifier",
"src": "34738:9:8"
},
{
"kind": "number",
"nativeSrc": "34749:2:8",
"nodeType": "YulLiteral",
"src": "34749:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "34734:3:8",
"nodeType": "YulIdentifier",
"src": "34734:3:8"
},
"nativeSrc": "34734:18:8",
"nodeType": "YulFunctionCall",
"src": "34734:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "34726:4:8",
"nodeType": "YulIdentifier",
"src": "34726:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "34806:6:8",
"nodeType": "YulIdentifier",
"src": "34806:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "34819:9:8",
"nodeType": "YulIdentifier",
"src": "34819:9:8"
},
{
"kind": "number",
"nativeSrc": "34830:1:8",
"nodeType": "YulLiteral",
"src": "34830:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "34815:3:8",
"nodeType": "YulIdentifier",
"src": "34815:3:8"
},
"nativeSrc": "34815:17:8",
"nodeType": "YulFunctionCall",
"src": "34815:17:8"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "34762:43:8",
"nodeType": "YulIdentifier",
"src": "34762:43:8"
},
"nativeSrc": "34762:71:8",
"nodeType": "YulFunctionCall",
"src": "34762:71:8"
},
"nativeSrc": "34762:71:8",
"nodeType": "YulExpressionStatement",
"src": "34762:71:8"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "34887:6:8",
"nodeType": "YulIdentifier",
"src": "34887:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "34900:9:8",
"nodeType": "YulIdentifier",
"src": "34900:9:8"
},
{
"kind": "number",
"nativeSrc": "34911:2:8",
"nodeType": "YulLiteral",
"src": "34911:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "34896:3:8",
"nodeType": "YulIdentifier",
"src": "34896:3:8"
},
"nativeSrc": "34896:18:8",
"nodeType": "YulFunctionCall",
"src": "34896:18:8"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "34843:43:8",
"nodeType": "YulIdentifier",
"src": "34843:43:8"
},
"nativeSrc": "34843:72:8",
"nodeType": "YulFunctionCall",
"src": "34843:72:8"
},
"nativeSrc": "34843:72:8",
"nodeType": "YulExpressionStatement",
"src": "34843:72:8"
}
]
},
"name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed",
"nativeSrc": "34590:332:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "34680:9:8",
"nodeType": "YulTypedName",
"src": "34680:9:8",
"type": ""
},
{
"name": "value1",
"nativeSrc": "34692:6:8",
"nodeType": "YulTypedName",
"src": "34692:6:8",
"type": ""
},
{
"name": "value0",
"nativeSrc": "34700:6:8",
"nodeType": "YulTypedName",
"src": "34700:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "34711:4:8",
"nodeType": "YulTypedName",
"src": "34711:4:8",
"type": ""
}
],
"src": "34590:332:8"
},
{
"body": {
"nativeSrc": "35034:60:8",
"nodeType": "YulBlock",
"src": "35034:60:8",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nativeSrc": "35056:6:8",
"nodeType": "YulIdentifier",
"src": "35056:6:8"
},
{
"kind": "number",
"nativeSrc": "35064:1:8",
"nodeType": "YulLiteral",
"src": "35064:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "35052:3:8",
"nodeType": "YulIdentifier",
"src": "35052:3:8"
},
"nativeSrc": "35052:14:8",
"nodeType": "YulFunctionCall",
"src": "35052:14:8"
},
{
"hexValue": "5061757361626c653a20706175736564",
"kind": "string",
"nativeSrc": "35068:18:8",
"nodeType": "YulLiteral",
"src": "35068:18:8",
"type": "",
"value": "Pausable: paused"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "35045:6:8",
"nodeType": "YulIdentifier",
"src": "35045:6:8"
},
"nativeSrc": "35045:42:8",
"nodeType": "YulFunctionCall",
"src": "35045:42:8"
},
"nativeSrc": "35045:42:8",
"nodeType": "YulExpressionStatement",
"src": "35045:42:8"
}
]
},
"name": "store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a",
"nativeSrc": "34928:166:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "35026:6:8",
"nodeType": "YulTypedName",
"src": "35026:6:8",
"type": ""
}
],
"src": "34928:166:8"
},
{
"body": {
"nativeSrc": "35246:220:8",
"nodeType": "YulBlock",
"src": "35246:220:8",
"statements": [
{
"nativeSrc": "35256:74:8",
"nodeType": "YulAssignment",
"src": "35256:74:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "35322:3:8",
"nodeType": "YulIdentifier",
"src": "35322:3:8"
},
{
"kind": "number",
"nativeSrc": "35327:2:8",
"nodeType": "YulLiteral",
"src": "35327:2:8",
"type": "",
"value": "16"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "35263:58:8",
"nodeType": "YulIdentifier",
"src": "35263:58:8"
},
"nativeSrc": "35263:67:8",
"nodeType": "YulFunctionCall",
"src": "35263:67:8"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "35256:3:8",
"nodeType": "YulIdentifier",
"src": "35256:3:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "35428:3:8",
"nodeType": "YulIdentifier",
"src": "35428:3:8"
}
],
"functionName": {
"name": "store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a",
"nativeSrc": "35339:88:8",
"nodeType": "YulIdentifier",
"src": "35339:88:8"
},
"nativeSrc": "35339:93:8",
"nodeType": "YulFunctionCall",
"src": "35339:93:8"
},
"nativeSrc": "35339:93:8",
"nodeType": "YulExpressionStatement",
"src": "35339:93:8"
},
{
"nativeSrc": "35441:19:8",
"nodeType": "YulAssignment",
"src": "35441:19:8",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "35452:3:8",
"nodeType": "YulIdentifier",
"src": "35452:3:8"
},
{
"kind": "number",
"nativeSrc": "35457:2:8",
"nodeType": "YulLiteral",
"src": "35457:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "35448:3:8",
"nodeType": "YulIdentifier",
"src": "35448:3:8"
},
"nativeSrc": "35448:12:8",
"nodeType": "YulFunctionCall",
"src": "35448:12:8"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "35441:3:8",
"nodeType": "YulIdentifier",
"src": "35441:3:8"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack",
"nativeSrc": "35100:366:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "35234:3:8",
"nodeType": "YulTypedName",
"src": "35234:3:8",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "35242:3:8",
"nodeType": "YulTypedName",
"src": "35242:3:8",
"type": ""
}
],
"src": "35100:366:8"
},
{
"body": {
"nativeSrc": "35643:248:8",
"nodeType": "YulBlock",
"src": "35643:248:8",
"statements": [
{
"nativeSrc": "35653:26:8",
"nodeType": "YulAssignment",
"src": "35653:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "35665:9:8",
"nodeType": "YulIdentifier",
"src": "35665:9:8"
},
{
"kind": "number",
"nativeSrc": "35676:2:8",
"nodeType": "YulLiteral",
"src": "35676:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "35661:3:8",
"nodeType": "YulIdentifier",
"src": "35661:3:8"
},
"nativeSrc": "35661:18:8",
"nodeType": "YulFunctionCall",
"src": "35661:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "35653:4:8",
"nodeType": "YulIdentifier",
"src": "35653:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "35700:9:8",
"nodeType": "YulIdentifier",
"src": "35700:9:8"
},
{
"kind": "number",
"nativeSrc": "35711:1:8",
"nodeType": "YulLiteral",
"src": "35711:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "35696:3:8",
"nodeType": "YulIdentifier",
"src": "35696:3:8"
},
"nativeSrc": "35696:17:8",
"nodeType": "YulFunctionCall",
"src": "35696:17:8"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "35719:4:8",
"nodeType": "YulIdentifier",
"src": "35719:4:8"
},
{
"name": "headStart",
"nativeSrc": "35725:9:8",
"nodeType": "YulIdentifier",
"src": "35725:9:8"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "35715:3:8",
"nodeType": "YulIdentifier",
"src": "35715:3:8"
},
"nativeSrc": "35715:20:8",
"nodeType": "YulFunctionCall",
"src": "35715:20:8"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "35689:6:8",
"nodeType": "YulIdentifier",
"src": "35689:6:8"
},
"nativeSrc": "35689:47:8",
"nodeType": "YulFunctionCall",
"src": "35689:47:8"
},
"nativeSrc": "35689:47:8",
"nodeType": "YulExpressionStatement",
"src": "35689:47:8"
},
{
"nativeSrc": "35745:139:8",
"nodeType": "YulAssignment",
"src": "35745:139:8",
"value": {
"arguments": [
{
"name": "tail",
"nativeSrc": "35879:4:8",
"nodeType": "YulIdentifier",
"src": "35879:4:8"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack",
"nativeSrc": "35753:124:8",
"nodeType": "YulIdentifier",
"src": "35753:124:8"
},
"nativeSrc": "35753:131:8",
"nodeType": "YulFunctionCall",
"src": "35753:131:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "35745:4:8",
"nodeType": "YulIdentifier",
"src": "35745:4:8"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "35472:419:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "35623:9:8",
"nodeType": "YulTypedName",
"src": "35623:9:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "35638:4:8",
"nodeType": "YulTypedName",
"src": "35638:4:8",
"type": ""
}
],
"src": "35472:419:8"
},
{
"body": {
"nativeSrc": "36023:206:8",
"nodeType": "YulBlock",
"src": "36023:206:8",
"statements": [
{
"nativeSrc": "36033:26:8",
"nodeType": "YulAssignment",
"src": "36033:26:8",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "36045:9:8",
"nodeType": "YulIdentifier",
"src": "36045:9:8"
},
{
"kind": "number",
"nativeSrc": "36056:2:8",
"nodeType": "YulLiteral",
"src": "36056:2:8",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "36041:3:8",
"nodeType": "YulIdentifier",
"src": "36041:3:8"
},
"nativeSrc": "36041:18:8",
"nodeType": "YulFunctionCall",
"src": "36041:18:8"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "36033:4:8",
"nodeType": "YulIdentifier",
"src": "36033:4:8"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "36113:6:8",
"nodeType": "YulIdentifier",
"src": "36113:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "36126:9:8",
"nodeType": "YulIdentifier",
"src": "36126:9:8"
},
{
"kind": "number",
"nativeSrc": "36137:1:8",
"nodeType": "YulLiteral",
"src": "36137:1:8",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "36122:3:8",
"nodeType": "YulIdentifier",
"src": "36122:3:8"
},
"nativeSrc": "36122:17:8",
"nodeType": "YulFunctionCall",
"src": "36122:17:8"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "36069:43:8",
"nodeType": "YulIdentifier",
"src": "36069:43:8"
},
"nativeSrc": "36069:71:8",
"nodeType": "YulFunctionCall",
"src": "36069:71:8"
},
"nativeSrc": "36069:71:8",
"nodeType": "YulExpressionStatement",
"src": "36069:71:8"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "36194:6:8",
"nodeType": "YulIdentifier",
"src": "36194:6:8"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "36207:9:8",
"nodeType": "YulIdentifier",
"src": "36207:9:8"
},
{
"kind": "number",
"nativeSrc": "36218:2:8",
"nodeType": "YulLiteral",
"src": "36218:2:8",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "36203:3:8",
"nodeType": "YulIdentifier",
"src": "36203:3:8"
},
"nativeSrc": "36203:18:8",
"nodeType": "YulFunctionCall",
"src": "36203:18:8"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nativeSrc": "36150:43:8",
"nodeType": "YulIdentifier",
"src": "36150:43:8"
},
"nativeSrc": "36150:72:8",
"nodeType": "YulFunctionCall",
"src": "36150:72:8"
},
"nativeSrc": "36150:72:8",
"nodeType": "YulExpressionStatement",
"src": "36150:72:8"
}
]
},
"name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed",
"nativeSrc": "35897:332:8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "35987:9:8",
"nodeType": "YulTypedName",
"src": "35987:9:8",
"type": ""
},
{
"name": "value1",
"nativeSrc": "35999:6:8",
"nodeType": "YulTypedName",
"src": "35999:6:8",
"type": ""
},
{
"name": "value0",
"nativeSrc": "36007:6:8",
"nodeType": "YulTypedName",
"src": "36007:6:8",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "36018:4:8",
"nodeType": "YulTypedName",
"src": "36018:4:8",
"type": ""
}
],
"src": "35897:332:8"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n f
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment