Skip to content

Instantly share code, notes, and snippets.

@CryptoCraversGitHub
Created March 3, 2022 16:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CryptoCraversGitHub/d6cb07f9532f44bde6c7d831ce1425a4 to your computer and use it in GitHub Desktop.
Save CryptoCraversGitHub/d6cb07f9532f44bde6c7d831ce1425a4 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.7+commit.e28d00a7.js&optimize=true&runs=200&gist=
{
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202eb42db85cf6bc1a79bcde6e127bff53b034e248e82bbdab79fbef76510bdc6664736f6c63430008070033",
"opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E 0xB4 0x2D 0xB8 0x5C 0xF6 0xBC BYTE PUSH26 0xBCDE6E127BFF53B034E248E82BBDAB79FBEF76510BDC6664736F PUSH13 0x63430008070033000000000000 ",
"sourceMap": "8825:6290:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;8825:6290:0;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202eb42db85cf6bc1a79bcde6e127bff53b034e248e82bbdab79fbef76510bdc6664736f6c63430008070033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E 0xB4 0x2D 0xB8 0x5C 0xF6 0xBC BYTE PUSH26 0xBCDE6E127BFF53B034E248E82BBDAB79FBEF76510BDC6664736F PUSH13 0x63430008070033000000000000 ",
"sourceMap": "8825:6290:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "103",
"totalCost": "17303"
},
"internal": {
"_functionCallWithValue(address,bytes memory,uint256,string memory)": "infinite",
"functionCall(address,bytes memory)": "infinite",
"functionCall(address,bytes memory,string memory)": "infinite",
"functionCallWithValue(address,bytes memory,uint256)": "infinite",
"functionCallWithValue(address,bytes memory,uint256,string memory)": "infinite",
"isContract(address)": "infinite",
"sendValue(address payable,uint256)": "infinite"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"details": "Collection of functions related to the address type",
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"VReality.sol": "Address"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"VReality.sol": {
"keccak256": "0x90682ef22c23498b587cbb509c75471080b276631d453e7696dd38c8a089fb1f",
"license": "MIT",
"urls": [
"bzz-raw://610a3a562400600666ed925e12f6ea62935af1ecec8a60e4ac9bb22da4492e0e",
"dweb:/ipfs/QmQkCP6Eff4zLP5ZJ656oYZtohYzv5mqikyZQojAhkXivr"
]
}
},
"version": 1
}
{
"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
},
"görli: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": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"VReality.sol": "Context"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"VReality.sol": {
"keccak256": "0x90682ef22c23498b587cbb509c75471080b276631d453e7696dd38c8a089fb1f",
"license": "MIT",
"urls": [
"bzz-raw://610a3a562400600666ed925e12f6ea62935af1ecec8a60e4ac9bb22da4492e0e",
"dweb:/ipfs/QmQkCP6Eff4zLP5ZJ656oYZtohYzv5mqikyZQojAhkXivr"
]
}
},
"version": 1
}
{
"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
},
"görli: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": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"events": {
"Approval(address,address,uint256)": {
"details": "Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."
},
"Transfer(address,address,uint256)": {
"details": "Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."
}
},
"kind": "dev",
"methods": {
"allowance(address,address)": {
"details": "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."
},
"approve(address,uint256)": {
"details": "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."
},
"balanceOf(address)": {
"details": "Returns the amount of tokens owned by `account`."
},
"transfer(address,uint256)": {
"details": "Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
},
"transferFrom(address,address,uint256)": {
"details": "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."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"VReality.sol": "IERC20"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"VReality.sol": {
"keccak256": "0x90682ef22c23498b587cbb509c75471080b276631d453e7696dd38c8a089fb1f",
"license": "MIT",
"urls": [
"bzz-raw://610a3a562400600666ed925e12f6ea62935af1ecec8a60e4ac9bb22da4492e0e",
"dweb:/ipfs/QmQkCP6Eff4zLP5ZJ656oYZtohYzv5mqikyZQojAhkXivr"
]
}
},
"version": 1
}
{
"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
},
"görli: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": {
"allPairs(uint256)": "1e3dd18b",
"allPairsLength()": "574f2ba3",
"createPair(address,address)": "c9c65396",
"feeTo()": "017e7e58",
"feeToSetter()": "094b7415",
"getPair(address,address)": "e6a43905",
"setFeeTo(address)": "f46901ed",
"setFeeToSetter(address)": "a2e74af6"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "pair",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "PairCreated",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "allPairs",
"outputs": [
{
"internalType": "address",
"name": "pair",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "allPairsLength",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
}
],
"name": "createPair",
"outputs": [
{
"internalType": "address",
"name": "pair",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "feeTo",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "feeToSetter",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
}
],
"name": "getPair",
"outputs": [
{
"internalType": "address",
"name": "pair",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "setFeeTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "setFeeToSetter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "pair",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "PairCreated",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "allPairs",
"outputs": [
{
"internalType": "address",
"name": "pair",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "allPairsLength",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
}
],
"name": "createPair",
"outputs": [
{
"internalType": "address",
"name": "pair",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "feeTo",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "feeToSetter",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
}
],
"name": "getPair",
"outputs": [
{
"internalType": "address",
"name": "pair",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "setFeeTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "setFeeToSetter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"VReality.sol": "IUniswapV2Factory"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"VReality.sol": {
"keccak256": "0x90682ef22c23498b587cbb509c75471080b276631d453e7696dd38c8a089fb1f",
"license": "MIT",
"urls": [
"bzz-raw://610a3a562400600666ed925e12f6ea62935af1ecec8a60e4ac9bb22da4492e0e",
"dweb:/ipfs/QmQkCP6Eff4zLP5ZJ656oYZtohYzv5mqikyZQojAhkXivr"
]
}
},
"version": 1
}
{
"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
},
"görli: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": {
"WETH()": "ad5c4648",
"addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": "e8e33700",
"addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "f305d719",
"factory()": "c45a0155",
"getAmountIn(uint256,uint256,uint256)": "85f8c259",
"getAmountOut(uint256,uint256,uint256)": "054d50d4",
"getAmountsIn(uint256,address[])": "1f00ca74",
"getAmountsOut(uint256,address[])": "d06ca61f",
"quote(uint256,uint256,uint256)": "ad615dec",
"removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": "baa2abde",
"removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "02751cec",
"removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "ded9382a",
"removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "2195995c",
"swapETHForExactTokens(uint256,address[],address,uint256)": "fb3bdb41",
"swapExactETHForTokens(uint256,address[],address,uint256)": "7ff36ab5",
"swapExactTokensForETH(uint256,uint256,address[],address,uint256)": "18cbafe5",
"swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": "38ed1739",
"swapTokensForExactETH(uint256,uint256,address[],address,uint256)": "4a25d94a",
"swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": "8803dbee"
}
},
"abi": [
{
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountADesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountTokenDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountIn",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountOut",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsIn",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsOut",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveB",
"type": "uint256"
}
],
"name": "quote",
"outputs": [
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapETHForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountADesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountTokenDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountIn",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountOut",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsIn",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsOut",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveB",
"type": "uint256"
}
],
"name": "quote",
"outputs": [
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapETHForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"VReality.sol": "IUniswapV2Router01"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"VReality.sol": {
"keccak256": "0x90682ef22c23498b587cbb509c75471080b276631d453e7696dd38c8a089fb1f",
"license": "MIT",
"urls": [
"bzz-raw://610a3a562400600666ed925e12f6ea62935af1ecec8a60e4ac9bb22da4492e0e",
"dweb:/ipfs/QmQkCP6Eff4zLP5ZJ656oYZtohYzv5mqikyZQojAhkXivr"
]
}
},
"version": 1
}
{
"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
},
"görli: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": {
"WETH()": "ad5c4648",
"addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": "e8e33700",
"addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "f305d719",
"factory()": "c45a0155",
"getAmountIn(uint256,uint256,uint256)": "85f8c259",
"getAmountOut(uint256,uint256,uint256)": "054d50d4",
"getAmountsIn(uint256,address[])": "1f00ca74",
"getAmountsOut(uint256,address[])": "d06ca61f",
"quote(uint256,uint256,uint256)": "ad615dec",
"removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": "baa2abde",
"removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "02751cec",
"removeLiquidityETHSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)": "af2979eb",
"removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "ded9382a",
"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "5b0d5984",
"removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "2195995c",
"swapETHForExactTokens(uint256,address[],address,uint256)": "fb3bdb41",
"swapExactETHForTokens(uint256,address[],address,uint256)": "7ff36ab5",
"swapExactETHForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)": "b6f9de95",
"swapExactTokensForETH(uint256,uint256,address[],address,uint256)": "18cbafe5",
"swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": "791ac947",
"swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": "38ed1739",
"swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": "5c11d795",
"swapTokensForExactETH(uint256,uint256,address[],address,uint256)": "4a25d94a",
"swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": "8803dbee"
}
},
"abi": [
{
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountADesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountTokenDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountIn",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountOut",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsIn",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsOut",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveB",
"type": "uint256"
}
],
"name": "quote",
"outputs": [
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETHSupportingFeeOnTransferTokens",
"outputs": [
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
"outputs": [
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapETHForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokensSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETHSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountADesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountTokenDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountIn",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountOut",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsIn",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsOut",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveB",
"type": "uint256"
}
],
"name": "quote",
"outputs": [
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETHSupportingFeeOnTransferTokens",
"outputs": [
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
"outputs": [
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapETHForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokensSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETHSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"VReality.sol": "IUniswapV2Router02"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"VReality.sol": {
"keccak256": "0x90682ef22c23498b587cbb509c75471080b276631d453e7696dd38c8a089fb1f",
"license": "MIT",
"urls": [
"bzz-raw://610a3a562400600666ed925e12f6ea62935af1ecec8a60e4ac9bb22da4492e0e",
"dweb:/ipfs/QmQkCP6Eff4zLP5ZJ656oYZtohYzv5mqikyZQojAhkXivr"
]
}
},
"version": 1
}
{
"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
},
"görli: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": {
"geUnlockTime()": "b6c52324",
"lock(uint256)": "dd467064",
"owner()": "8da5cb5b",
"renounceOwnership()": "715018a6",
"transferOwnership(address)": "f2fde38b",
"unlock()": "a69df4b5"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [],
"name": "geUnlockTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "time",
"type": "uint256"
}
],
"name": "lock",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "unlock",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [],
"name": "geUnlockTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "time",
"type": "uint256"
}
],
"name": "lock",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "unlock",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.",
"kind": "dev",
"methods": {
"constructor": {
"details": "Initializes the contract setting the deployer as the initial owner."
},
"owner()": {
"details": "Returns the address of the current owner."
},
"renounceOwnership()": {
"details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
},
"transferOwnership(address)": {
"details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"VReality.sol": "Ownable"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"VReality.sol": {
"keccak256": "0x90682ef22c23498b587cbb509c75471080b276631d453e7696dd38c8a089fb1f",
"license": "MIT",
"urls": [
"bzz-raw://610a3a562400600666ed925e12f6ea62935af1ecec8a60e4ac9bb22da4492e0e",
"dweb:/ipfs/QmQkCP6Eff4zLP5ZJ656oYZtohYzv5mqikyZQojAhkXivr"
]
}
},
"version": 1
}
{
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dc4a448a2e0817f104eee64a3aa40e63af6cd86533974c78bf2194c44a7cbf0c64736f6c63430008070033",
"opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0x4A DIFFICULTY DUP11 0x2E ADDMOD OR CALL DIV 0xEE 0xE6 0x4A GASPRICE LOG4 0xE PUSH4 0xAF6CD865 CALLER SWAP8 0x4C PUSH25 0xBF2194C44A7CBF0C64736F6C63430008070033000000000000 ",
"sourceMap": "15608:3194:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;15608:3194:0;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dc4a448a2e0817f104eee64a3aa40e63af6cd86533974c78bf2194c44a7cbf0c64736f6c63430008070033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0x4A DIFFICULTY DUP11 0x2E ADDMOD OR CALL DIV 0xEE 0xE6 0x4A GASPRICE LOG4 0xE PUSH4 0xAF6CD865 CALLER SWAP8 0x4C PUSH25 0xBF2194C44A7CBF0C64736F6C63430008070033000000000000 ",
"sourceMap": "15608:3194:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "103",
"totalCost": "17303"
},
"internal": {
"_callOptionalReturn(contract IERC20,bytes memory)": "infinite",
"safeApprove(contract IERC20,address,uint256)": "infinite",
"safeDecreaseAllowance(contract IERC20,address,uint256)": "infinite",
"safeIncreaseAllowance(contract IERC20,address,uint256)": "infinite",
"safeTransfer(contract IERC20,address,uint256)": "infinite",
"safeTransferFrom(contract IERC20,address,address,uint256)": "infinite"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"details": "Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.",
"kind": "dev",
"methods": {},
"title": "SafeERC20",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"VReality.sol": "SafeERC20"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"VReality.sol": {
"keccak256": "0x90682ef22c23498b587cbb509c75471080b276631d453e7696dd38c8a089fb1f",
"license": "MIT",
"urls": [
"bzz-raw://610a3a562400600666ed925e12f6ea62935af1ecec8a60e4ac9bb22da4492e0e",
"dweb:/ipfs/QmQkCP6Eff4zLP5ZJ656oYZtohYzv5mqikyZQojAhkXivr"
]
}
},
"version": 1
}
{
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204c9ee9ad30273aa4a806c69570b7f0144e9dd4ef6d096c4c7036f7aac523e22e64736f6c63430008070033",
"opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4C SWAP15 0xE9 0xAD ADDRESS 0x27 GASPRICE LOG4 0xA8 MOD 0xC6 SWAP6 PUSH17 0xB7F0144E9DD4EF6D096C4C7036F7AAC523 0xE2 0x2E PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "3378:4959:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;3378:4959:0;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204c9ee9ad30273aa4a806c69570b7f0144e9dd4ef6d096c4c7036f7aac523e22e64736f6c63430008070033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4C SWAP15 0xE9 0xAD ADDRESS 0x27 GASPRICE LOG4 0xA8 MOD 0xC6 SWAP6 PUSH17 0xB7F0144E9DD4EF6D096C4C7036F7AAC523 0xE2 0x2E PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "3378:4959:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "103",
"totalCost": "17303"
},
"internal": {
"add(uint256,uint256)": "infinite",
"div(uint256,uint256)": "infinite",
"div(uint256,uint256,string memory)": "infinite",
"mod(uint256,uint256)": "infinite",
"mod(uint256,uint256,string memory)": "infinite",
"mul(uint256,uint256)": "infinite",
"sub(uint256,uint256)": "infinite",
"sub(uint256,uint256,string memory)": "infinite"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"details": "Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.",
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"VReality.sol": "SafeMath"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"VReality.sol": {
"keccak256": "0x90682ef22c23498b587cbb509c75471080b276631d453e7696dd38c8a089fb1f",
"license": "MIT",
"urls": [
"bzz-raw://610a3a562400600666ed925e12f6ea62935af1ecec8a60e4ac9bb22da4492e0e",
"dweb:/ipfs/QmQkCP6Eff4zLP5ZJ656oYZtohYzv5mqikyZQojAhkXivr"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;
interface IERC20 {
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);
}
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(address(msg.sender));
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*/
function isContract(address account) internal view returns (bool) {
// According to EIP-1052, 0x0 is the value returned for not-yet created accounts
// and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
// for accounts without code, i.e. `keccak256('')`
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly { codehash := extcodehash(account) }
return (codehash != accountHash && codehash != 0x0);
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
// solhint-disable-next-line avoid-low-level-calls, avoid-call-value
(bool success, ) = recipient.call{ value: amount }("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain`call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
return _functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
require(isContract(target), "Address: call to non-contract");
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
if (success) {
return returndata;
} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
// solhint-disable-next-line no-inline-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
/**
* @title SafeERC20
* @dev Wrappers around ERC20 operations that throw on failure (when the token
* contract returns false). Tokens that return no value (and instead revert or
* throw on failure) are also supported, non-reverting calls are assumed to be
* successful.
* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
*/
library SafeERC20 {
using SafeMath for uint256;
using Address for address;
function safeTransfer(IERC20 token, address to, uint256 value) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
}
function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
}
/**
* @dev Deprecated. This function has issues similar to the ones found in
* {IERC20-approve}, and its usage is discouraged.
*
* Whenever possible, use {safeIncreaseAllowance} and
* {safeDecreaseAllowance} instead.
*/
function safeApprove(IERC20 token, address spender, uint256 value) internal {
// safeApprove should only be called when setting an initial allowance,
// or when resetting it to zero. To increase and decrease it, use
// 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
// solhint-disable-next-line max-line-length
require((value == 0) || (token.allowance(address(this), spender) == 0),
"SafeERC20: approve from non-zero to non-zero allowance"
);
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
}
function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
uint256 newAllowance = token.allowance(address(this), spender).add(value);
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
/**
* @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
* on the return value: the return value is optional (but if data is returned, it must not be false).
* @param token The token targeted by the call.
* @param data The call data (encoded using abi.encode or one of its variants).
*/
function _callOptionalReturn(IERC20 token, bytes memory data) private {
// We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
// we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
// the target address contains contract code and also asserts for success in the low-level call.
bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
if (returndata.length > 0) { // Return data is optional
// solhint-disable-next-line max-line-length
require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
}
}
}
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
address private _previousOwner;
uint256 private _lockTime;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
function geUnlockTime() public view returns (uint256) {
return _lockTime;
}
//Locks the contract for owner for the amount of time provided
function lock(uint256 time) public virtual onlyOwner {
_previousOwner = _owner;
_owner = address(0);
_lockTime = block.timestamp + time;
emit OwnershipTransferred(_owner, address(0));
}
//Unlocks the contract for owner when _lockTime is exceeds
function unlock() public virtual {
require(_previousOwner == msg.sender, "You don't have permission to unlock the token contract");
require(block.timestamp > _lockTime , "Contract is locked until 7 days");
emit OwnershipTransferred(_owner, _previousOwner);
_owner = _previousOwner;
}
}
// pragma solidity >=0.5.0;
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
// pragma solidity >=0.6.2;
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
uint amountOut,
uint amountInMax,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
// pragma solidity >=0.6.2;
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract VReality is Context, IERC20, Ownable {
using SafeMath for uint256;
using Address for address;
using SafeERC20 for IERC20;
address dead = 0x000000000000000000000000000000000000dEaD;
uint8 public maxLiqFee = 10;
uint8 public maxTaxFee = 10;
uint8 public maxBurnFee = 10;
uint8 public maxWalletFee = 10;
uint8 public maxBuybackFee = 10;
uint8 public minMxTxPercentage = 1;
uint8 public minMxWalletPercentage = 1;
mapping (address => uint256) private _rOwned;
mapping (address => uint256) private _tOwned;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _isExcludedFromFee;
mapping (address => bool) private _isExcluded;
address[] private _excluded;
address public router = 0x10ED43C718714eb63d5aA57B78B54704E256024E;
//address public testnet router = 0x10ED43C718714eb63d5aA57B78B54704E256024E;
uint256 private constant MAX = ~uint256(0);
uint256 public _tTotal;
uint256 private _rTotal;
uint256 private _tFeeTotal;
bool public mintedByCryptoCravers = true;
string public _name;
string public _symbol;
uint8 private _decimals;
uint8 public _taxFee = 0;
uint8 private _previousTaxFee = _taxFee;
uint8 public _liquidityFee = 0;
uint8 private _previousLiquidityFee = _liquidityFee;
uint8 public _burnFee = 0;
uint8 private _previousBurnFee = _burnFee;
uint8 public _walletFee = 0;
uint8 private _previousWalletFee = _walletFee;
uint8 public _buybackFee = 0;
uint8 private _previousBuybackFee = _buybackFee;
IUniswapV2Router02 public immutable pcsV2Router;
address public immutable pcsV2Pair;
address payable public feeWallet;
bool inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
uint256 public _maxTxAmount;
uint256 public _maxWalletAmount;
uint256 public numTokensSellToAddToLiquidity;
uint256 private buyBackUpperLimit = 1 * 10**18; //One BNB
event SwapAndLiquifyEnabledUpdated(bool enabled);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiqudity
);
modifier lockTheSwap {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor (address tokenOwner,string memory tokenName,
string memory tokenSymbol, uint8 decimal, uint256 amountOfTokenWei,
uint8 setMxTxPer, uint8 setMxWalletPer,
address payable _feeWallet
) {
_name = tokenName;
_symbol = tokenSymbol;
_decimals = decimal;
_tTotal = amountOfTokenWei;
_rTotal = (MAX - (MAX % _tTotal));
_rOwned[tokenOwner] = _rTotal;
feeWallet = _feeWallet;
_maxTxAmount = _tTotal.mul(setMxTxPer).div(
10**2
);
_maxWalletAmount = _tTotal.mul(setMxWalletPer).div(
10**2
);
numTokensSellToAddToLiquidity = amountOfTokenWei.mul(1).div(1000);
IUniswapV2Router02 _pcsV2Router = IUniswapV2Router02(router);
// Create a uniswap pair for this new token
pcsV2Pair = IUniswapV2Factory(_pcsV2Router.factory())
.createPair(address(this), _pcsV2Router.WETH());
// set the rest of the contract variables
pcsV2Router = _pcsV2Router;
_isExcludedFromFee[tokenOwner] = true;
_isExcludedFromFee[address(this)] = true;
emit Transfer(address(0), tokenOwner, _tTotal);
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
if (_isExcluded[account]) return _tOwned[account];
return tokenFromReflection(_rOwned[account]);
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
return true;
}
function isExcludedFromReward(address account) public view returns (bool) {
return _isExcluded[account];
}
function totalFees() public view returns (uint256) {
return _tFeeTotal;
}
function deliver(uint256 tAmount) public {
address sender = _msgSender();
require(!_isExcluded[sender], "Excluded addresses cannot call this function");
(uint256 rAmount,,,,,) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rTotal = _rTotal.sub(rAmount);
_tFeeTotal = _tFeeTotal.add(tAmount);
}
function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
require(tAmount <= _tTotal, "Amt must be less than supply");
if (!deductTransferFee) {
(uint256 rAmount,,,,,) = _getValues(tAmount);
return rAmount;
} else {
(,uint256 rTransferAmount,,,,) = _getValues(tAmount);
return rTransferAmount;
}
}
function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
require(rAmount <= _rTotal, "Amt must be less than tot refl");
uint256 currentRate = _getRate();
return rAmount.div(currentRate);
}
function excludeFromReward(address account) public onlyOwner() {
require(!_isExcluded[account], "Account is already excluded from reward");
if(_rOwned[account] > 0) {
_tOwned[account] = tokenFromReflection(_rOwned[account]);
}
_isExcluded[account] = true;
_excluded.push(account);
}
function includeInReward(address account) external onlyOwner() {
require(_isExcluded[account], "Already excluded");
for (uint256 i = 0; i < _excluded.length; i++) {
if (_excluded[i] == account) {
_excluded[i] = _excluded[_excluded.length - 1];
_tOwned[account] = 0;
_isExcluded[account] = false;
_excluded.pop();
break;
}
}
}
function excludeFromFee(address account) public onlyOwner {
_isExcludedFromFee[account] = true;
}
function includeInFee(address account) public onlyOwner {
_isExcludedFromFee[account] = false;
}
function setAllFeePercent(uint8 taxFee, uint8 liquidityFee, uint8 burnFee, uint8 walletFee, uint8 buybackFee) external onlyOwner() {
require(taxFee >= 0 && taxFee <=maxTaxFee,"TF err");
require(liquidityFee >= 0 && liquidityFee <=maxLiqFee,"LF err");
require(burnFee >= 0 && burnFee <=maxBurnFee,"BF err");
require(walletFee >= 0 && walletFee <=maxWalletFee,"WF err");
require(buybackFee >= 0 && buybackFee <=maxBuybackFee,"BBF err");
_taxFee = taxFee;
_liquidityFee = liquidityFee;
_burnFee = burnFee;
_buybackFee = buybackFee;
_walletFee = walletFee;
}
function buyBackUpperLimitAmount() public view returns (uint256) {
return buyBackUpperLimit;
}
function setBuybackUpperLimit(uint256 buyBackLimit) external onlyOwner() {
buyBackUpperLimit = buyBackLimit * 10**18;
}
function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
require(maxTxPercent >= minMxTxPercentage && maxTxPercent <=100,"err");
_maxTxAmount = _tTotal.mul(maxTxPercent).div(
10**2
);
}
function setMaxWalletPercent(uint256 maxWalletPercent) external onlyOwner() {
require(maxWalletPercent >= minMxWalletPercentage && maxWalletPercent <=100,"err");
_maxWalletAmount = _tTotal.mul(maxWalletPercent).div(
10**2
);
}
function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
swapAndLiquifyEnabled = _enabled;
emit SwapAndLiquifyEnabledUpdated(_enabled);
}
function setFeeWallet(address payable newFeeWallet) external onlyOwner {
require(newFeeWallet != address(0), "ZERO ADDRESS");
feeWallet = newFeeWallet;
}
//to recieve ETH from pcsV2Router when swaping
receive() external payable {}
function _reflectFee(uint256 rFee, uint256 tFee) private {
_rTotal = _rTotal.sub(rFee);
_tFeeTotal = _tFeeTotal.add(tFee);
}
function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
(uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount);
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, _getRate());
return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity);
}
function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256) {
uint256 tFee = calculateTaxFee(tAmount);
uint256 tLiquidity = calculateLiquidityFee(tAmount);
uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity);
return (tTransferAmount, tFee, tLiquidity);
}
function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
uint256 rAmount = tAmount.mul(currentRate);
uint256 rFee = tFee.mul(currentRate);
uint256 rLiquidity = tLiquidity.mul(currentRate);
uint256 rTransferAmount = rAmount.sub(rFee).sub(rLiquidity);
return (rAmount, rTransferAmount, rFee);
}
function _getRate() private view returns(uint256) {
(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
return rSupply.div(tSupply);
}
function _getCurrentSupply() private view returns(uint256, uint256) {
uint256 rSupply = _rTotal;
uint256 tSupply = _tTotal;
for (uint256 i = 0; i < _excluded.length; i++) {
if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
rSupply = rSupply.sub(_rOwned[_excluded[i]]);
tSupply = tSupply.sub(_tOwned[_excluded[i]]);
}
if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
return (rSupply, tSupply);
}
function _takeLiquidity(uint256 tLiquidity) private {
uint256 currentRate = _getRate();
uint256 rLiquidity = tLiquidity.mul(currentRate);
_rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);
if(_isExcluded[address(this)])
_tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity);
}
function calculateTaxFee(uint256 _amount) private view returns (uint256) {
return _amount.mul(_taxFee).div(
10**2
);
}
function calculateLiquidityFee(uint256 _amount) private view returns (uint256) {
return _amount.mul(_liquidityFee + _burnFee + _walletFee + _buybackFee).div(
10**2
);
}
function removeAllFee() private {
if(_taxFee == 0 && _liquidityFee == 0 && _burnFee == 0 && _walletFee == 0 && _buybackFee == 0) return;
_previousTaxFee = _taxFee;
_previousLiquidityFee = _liquidityFee;
_previousBurnFee = _burnFee;
_previousWalletFee = _walletFee;
_previousBuybackFee = _buybackFee;
_taxFee = 0;
_liquidityFee = 0;
_burnFee = 0;
_walletFee = 0;
_buybackFee = 0;
}
function restoreAllFee() private {
_taxFee = _previousTaxFee;
_liquidityFee = _previousLiquidityFee;
_burnFee = _previousBurnFee;
_walletFee = _previousWalletFee;
_buybackFee = _previousBuybackFee;
}
function isExcludedFromFee(address account) public view returns(bool) {
return _isExcludedFromFee[account];
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from zero address");
require(spender != address(0), "ERC20: approve to zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(
address from,
address to,
uint256 amount
) private {
require(from != address(0), "ERC20: transfer from zero address");
require(to != address(0), "ERC20: transfer to zero address");
require(amount > 0, "Transfer amount must be greater than zero");
if(from != owner() && to != owner())
require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
if(from != owner() && to != owner() && to != address(0) && to != dead && to != pcsV2Pair){
uint256 contractBalanceRecepient = balanceOf(to);
require(contractBalanceRecepient + amount <= _maxWalletAmount, "Exceeds maximum wallet amount");
}
// is the token balance of this contract address over the min number of
// tokens that we need to initiate a swap + liquidity lock?
// also, don't get caught in a circular liquidity event.
// also, don't swap & liquify if sender is uniswap pair.
uint256 contractTokenBalance = balanceOf(address(this));
if(contractTokenBalance >= _maxTxAmount)
{
contractTokenBalance = _maxTxAmount;
}
bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
if (
!inSwapAndLiquify &&
to == pcsV2Pair &&
swapAndLiquifyEnabled
) {
if(overMinTokenBalance){
contractTokenBalance = numTokensSellToAddToLiquidity;
//add liquidity
swapAndLiquify(contractTokenBalance);
}
if(_buybackFee !=0){
uint256 balance = address(this).balance;
if (balance > uint256(1 * 10**18)) {
if (balance > buyBackUpperLimit)
balance = buyBackUpperLimit;
buyBackTokens(balance.div(100));
}
}
}
//indicates if fee should be deducted from transfer
bool takeFee = true;
//if any account belongs to _isExcludedFromFee account then remove the fee
if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
takeFee = false;
}
//transfer amount, it will take tax, burn, liquidity fee
_tokenTransfer(from,to,amount,takeFee);
}
function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
//This needs to be distributed among burn, wallet and liquidity
//burn
uint8 totFee = _burnFee + _walletFee + _liquidityFee + _buybackFee;
uint256 spentAmount = 0;
uint256 totSpentAmount = 0;
if(_burnFee != 0){
spentAmount = contractTokenBalance.div(totFee).mul(_burnFee);
_tokenTransferNoFee(address(this), dead, spentAmount);
totSpentAmount = spentAmount;
}
if(_walletFee != 0){
spentAmount = contractTokenBalance.div(totFee).mul(_walletFee);
_tokenTransferNoFee(address(this), feeWallet, spentAmount);
totSpentAmount = totSpentAmount + spentAmount;
}
if(_buybackFee != 0){
spentAmount = contractTokenBalance.div(totFee).mul(_buybackFee);
swapTokensForBNB(spentAmount);
totSpentAmount = totSpentAmount + spentAmount;
}
if(_liquidityFee != 0){
contractTokenBalance = contractTokenBalance.sub(totSpentAmount);
// split the contract balance into halves
uint256 half = contractTokenBalance.div(2);
uint256 otherHalf = contractTokenBalance.sub(half);
// capture the contract's current ETH balance.
// this is so that we can capture exactly the amount of ETH that the
// swap creates, and not make the liquidity event include any ETH that
// has been manually sent to the contract
uint256 initialBalance = address(this).balance;
// swap tokens for ETH
swapTokensForBNB(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered
// how much ETH did we just swap into?
uint256 newBalance = address(this).balance.sub(initialBalance);
// add liquidity to uniswap
addLiquidity(otherHalf, newBalance);
emit SwapAndLiquify(half, newBalance, otherHalf);
}
}
function buyBackTokens(uint256 amount) private lockTheSwap {
if (amount > 0) {
swapBNBForTokens(amount);
}
}
function swapTokensForBNB(uint256 tokenAmount) private {
// generate the uniswap pair path of token -> weth
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = pcsV2Router.WETH();
_approve(address(this), address(pcsV2Router), tokenAmount);
// make the swap
pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this),
block.timestamp
);
}
function swapBNBForTokens(uint256 amount) private {
// generate the uniswap pair path of token -> weth
address[] memory path = new address[](2);
path[0] = pcsV2Router.WETH();
path[1] = address(this);
// make the swap
pcsV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
0, // accept any amount of Tokens
path,
dead, // Burn address
block.timestamp.add(300)
);
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
// approve token transfer to cover all possible scenarios
_approve(address(this), address(pcsV2Router), tokenAmount);
// add the liquidity
pcsV2Router.addLiquidityETH{value: ethAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
dead,
block.timestamp
);
}
//this method is responsible for taking all fee, if takeFee is true
function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
if(!takeFee)
removeAllFee();
if (_isExcluded[sender] && !_isExcluded[recipient]) {
_transferFromExcluded(sender, recipient, amount);
} else if (!_isExcluded[sender] && _isExcluded[recipient]) {
_transferToExcluded(sender, recipient, amount);
} else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
_transferStandard(sender, recipient, amount);
} else if (_isExcluded[sender] && _isExcluded[recipient]) {
_transferBothExcluded(sender, recipient, amount);
} else {
_transferStandard(sender, recipient, amount);
}
if(!takeFee)
restoreAllFee();
}
function _transferStandard(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
_tOwned[sender] = _tOwned[sender].sub(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
_tOwned[sender] = _tOwned[sender].sub(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _tokenTransferNoFee(address sender, address recipient, uint256 amount) private {
uint256 currentRate = _getRate();
uint256 rAmount = amount.mul(currentRate);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rAmount);
if (_isExcluded[sender]) {
_tOwned[sender] = _tOwned[sender].sub(amount);
}
if (_isExcluded[recipient]) {
_tOwned[recipient] = _tOwned[recipient].add(amount);
}
emit Transfer(sender, recipient, amount);
}
function recoverBEP20(address tokenAddress, uint256 tokenAmount) public onlyOwner {
// do not allow recovering self token
require(tokenAddress != address(this), "Self withdraw");
IERC20(tokenAddress).transfer(owner(), tokenAmount);
}
}
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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_1656": {
"entryPoint": null,
"id": 1656,
"parameterSlots": 8,
"returnSlots": 0
},
"@_749": {
"entryPoint": null,
"id": 749,
"parameterSlots": 0,
"returnSlots": 0
},
"@_msgSender_284": {
"entryPoint": null,
"id": 284,
"parameterSlots": 0,
"returnSlots": 1
},
"@div_199": {
"entryPoint": 1496,
"id": 199,
"parameterSlots": 2,
"returnSlots": 1
},
"@div_227": {
"entryPoint": 1570,
"id": 227,
"parameterSlots": 3,
"returnSlots": 1
},
"@mul_182": {
"entryPoint": 1348,
"id": 182,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_string_fromMemory": {
"entryPoint": 1796,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address_fromMemory": {
"entryPoint": 1964,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_string_memory_ptrt_string_memory_ptrt_uint8t_uint256t_uint8t_uint8t_address_payable_fromMemory": {
"entryPoint": 1996,
"id": null,
"parameterSlots": 2,
"returnSlots": 8
},
"abi_decode_uint8_fromMemory": {
"entryPoint": 1941,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 2212,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_div_t_uint256": {
"entryPoint": 2265,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 2288,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 2322,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 2348,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 2399,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mod_t_uint256": {
"entryPoint": 2460,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 2483,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x12": {
"entryPoint": 2505,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 2527,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_address": {
"entryPoint": 2549,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:5275:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "78:622:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "127:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "136:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "139:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "129:6:1"
},
"nodeType": "YulFunctionCall",
"src": "129:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "129:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "106:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "114:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "102:3:1"
},
"nodeType": "YulFunctionCall",
"src": "102:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "121:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "98:3:1"
},
"nodeType": "YulFunctionCall",
"src": "98:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "91:6:1"
},
"nodeType": "YulFunctionCall",
"src": "91:35:1"
},
"nodeType": "YulIf",
"src": "88:55:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "152:23:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "168:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "162:5:1"
},
"nodeType": "YulFunctionCall",
"src": "162:13:1"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "156:2:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "184:28:1",
"value": {
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "202:2:1",
"type": "",
"value": "64"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "206:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "198:3:1"
},
"nodeType": "YulFunctionCall",
"src": "198:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "210:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "194:3:1"
},
"nodeType": "YulFunctionCall",
"src": "194:18:1"
},
"variables": [
{
"name": "_2",
"nodeType": "YulTypedName",
"src": "188:2:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "235:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "237:16:1"
},
"nodeType": "YulFunctionCall",
"src": "237:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "237:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "227:2:1"
},
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "231:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "224:2:1"
},
"nodeType": "YulFunctionCall",
"src": "224:10:1"
},
"nodeType": "YulIf",
"src": "221:36:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "266:17:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "280:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "276:3:1"
},
"nodeType": "YulFunctionCall",
"src": "276:7:1"
},
"variables": [
{
"name": "_3",
"nodeType": "YulTypedName",
"src": "270:2:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "292:23:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "312:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "306:5:1"
},
"nodeType": "YulFunctionCall",
"src": "306:9:1"
},
"variables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "296:6:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "324:71:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "346:6:1"
},
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "370:2:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "374:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "366:3:1"
},
"nodeType": "YulFunctionCall",
"src": "366:13:1"
},
{
"name": "_3",
"nodeType": "YulIdentifier",
"src": "381:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "362:3:1"
},
"nodeType": "YulFunctionCall",
"src": "362:22:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "386:2:1",
"type": "",
"value": "63"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "358:3:1"
},
"nodeType": "YulFunctionCall",
"src": "358:31:1"
},
{
"name": "_3",
"nodeType": "YulIdentifier",
"src": "391:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "354:3:1"
},
"nodeType": "YulFunctionCall",
"src": "354:40:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "342:3:1"
},
"nodeType": "YulFunctionCall",
"src": "342:53:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "328:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "454:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "456:16:1"
},
"nodeType": "YulFunctionCall",
"src": "456:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "456:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "413:10:1"
},
{
"name": "_2",
"nodeType": "YulIdentifier",
"src": "425:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "410:2:1"
},
"nodeType": "YulFunctionCall",
"src": "410:18:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "433:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "445:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "430:2:1"
},
"nodeType": "YulFunctionCall",
"src": "430:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "407:2:1"
},
"nodeType": "YulFunctionCall",
"src": "407:46:1"
},
"nodeType": "YulIf",
"src": "404:72:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "492:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "496:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "485:6:1"
},
"nodeType": "YulFunctionCall",
"src": "485:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "485:22:1"
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "523:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "531:2:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "516:6:1"
},
"nodeType": "YulFunctionCall",
"src": "516:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "516:18:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "582:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "591:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "594:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "584:6:1"
},
"nodeType": "YulFunctionCall",
"src": "584:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "584:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "557:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "565:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "553:3:1"
},
"nodeType": "YulFunctionCall",
"src": "553:15:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "570:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "549:3:1"
},
"nodeType": "YulFunctionCall",
"src": "549:26:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "577:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "546:2:1"
},
"nodeType": "YulFunctionCall",
"src": "546:35:1"
},
"nodeType": "YulIf",
"src": "543:55:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "633:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "641:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "629:3:1"
},
"nodeType": "YulFunctionCall",
"src": "629:17:1"
},
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "652:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "660:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "648:3:1"
},
"nodeType": "YulFunctionCall",
"src": "648:17:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "667:2:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "607:21:1"
},
"nodeType": "YulFunctionCall",
"src": "607:63:1"
},
"nodeType": "YulExpressionStatement",
"src": "607:63:1"
},
{
"nodeType": "YulAssignment",
"src": "679:15:1",
"value": {
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "688:6:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "679:5:1"
}
]
}
]
},
"name": "abi_decode_string_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "52:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "60:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "68:5:1",
"type": ""
}
],
"src": "14:686:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "763:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "773:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "788:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "782:5:1"
},
"nodeType": "YulFunctionCall",
"src": "782:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "773:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "843:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "852:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "855:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "845:6:1"
},
"nodeType": "YulFunctionCall",
"src": "845:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "845:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "817:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "828:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "835:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "824:3:1"
},
"nodeType": "YulFunctionCall",
"src": "824:16:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "814:2:1"
},
"nodeType": "YulFunctionCall",
"src": "814:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "807:6:1"
},
"nodeType": "YulFunctionCall",
"src": "807:35:1"
},
"nodeType": "YulIf",
"src": "804:55:1"
}
]
},
"name": "abi_decode_uint8_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "742:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "753:5:1",
"type": ""
}
],
"src": "705:160:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "951:170:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "997:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1006:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1009:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "999:6:1"
},
"nodeType": "YulFunctionCall",
"src": "999:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "999:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "972:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "981:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "968:3:1"
},
"nodeType": "YulFunctionCall",
"src": "968:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "993:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "964:3:1"
},
"nodeType": "YulFunctionCall",
"src": "964:32:1"
},
"nodeType": "YulIf",
"src": "961:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1022:29:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1041:9:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1035:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1035:16:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1026:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1085:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "1060:24:1"
},
"nodeType": "YulFunctionCall",
"src": "1060:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "1060:31:1"
},
{
"nodeType": "YulAssignment",
"src": "1100:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1110:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1100:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "917:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "928:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "940:6:1",
"type": ""
}
],
"src": "870:251:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1348:919:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1395:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1404:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1407:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1397:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1397:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1397:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1369:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1378:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1365:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1365:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1390:3:1",
"type": "",
"value": "256"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1361:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1361:33:1"
},
"nodeType": "YulIf",
"src": "1358:53:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1420:29:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1439:9:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1433:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1433:16:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1424:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1483:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "1458:24:1"
},
"nodeType": "YulFunctionCall",
"src": "1458:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "1458:31:1"
},
{
"nodeType": "YulAssignment",
"src": "1498:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1508:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1498:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1522:39:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1546:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1557:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1542:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1542:18:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1536:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1536:25:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1526:6:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1570:28:1",
"value": {
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1588:2:1",
"type": "",
"value": "64"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1592:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1584:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1584:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1596:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1580:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1580:18:1"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "1574:2:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1625:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1634:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1637:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1627:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1627:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1627:12:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1613:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "1621:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1610:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1610:14:1"
},
"nodeType": "YulIf",
"src": "1607:34:1"
},
{
"nodeType": "YulAssignment",
"src": "1650:71:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1693:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1704:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1689:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1689:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1713:7:1"
}
],
"functionName": {
"name": "abi_decode_string_fromMemory",
"nodeType": "YulIdentifier",
"src": "1660:28:1"
},
"nodeType": "YulFunctionCall",
"src": "1660:61:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1650:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1730:41:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1756:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1767:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1752:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1752:18:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1746:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1746:25:1"
},
"variables": [
{
"name": "offset_1",
"nodeType": "YulTypedName",
"src": "1734:8:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1800:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1809:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1812:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1802:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1802:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1802:12:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset_1",
"nodeType": "YulIdentifier",
"src": "1786:8:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "1796:2:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1783:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1783:16:1"
},
"nodeType": "YulIf",
"src": "1780:36:1"
},
{
"nodeType": "YulAssignment",
"src": "1825:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1868:9:1"
},
{
"name": "offset_1",
"nodeType": "YulIdentifier",
"src": "1879:8:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1864:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1864:24:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1890:7:1"
}
],
"functionName": {
"name": "abi_decode_string_fromMemory",
"nodeType": "YulIdentifier",
"src": "1835:28:1"
},
"nodeType": "YulFunctionCall",
"src": "1835:63:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "1825:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1907:57:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1949:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1960:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1945:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1945:18:1"
}
],
"functionName": {
"name": "abi_decode_uint8_fromMemory",
"nodeType": "YulIdentifier",
"src": "1917:27:1"
},
"nodeType": "YulFunctionCall",
"src": "1917:47:1"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "1907:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1973:36:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1993:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2004:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1989:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1989:19:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1983:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1983:26:1"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "1973:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2018:58:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2060:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2071:3:1",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2056:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2056:19:1"
}
],
"functionName": {
"name": "abi_decode_uint8_fromMemory",
"nodeType": "YulIdentifier",
"src": "2028:27:1"
},
"nodeType": "YulFunctionCall",
"src": "2028:48:1"
},
"variableNames": [
{
"name": "value5",
"nodeType": "YulIdentifier",
"src": "2018:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2085:58:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2127:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2138:3:1",
"type": "",
"value": "192"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2123:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2123:19:1"
}
],
"functionName": {
"name": "abi_decode_uint8_fromMemory",
"nodeType": "YulIdentifier",
"src": "2095:27:1"
},
"nodeType": "YulFunctionCall",
"src": "2095:48:1"
},
"variableNames": [
{
"name": "value6",
"nodeType": "YulIdentifier",
"src": "2085:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2152:41:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2177:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2188:3:1",
"type": "",
"value": "224"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2173:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2173:19:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2167:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2167:26:1"
},
"variables": [
{
"name": "value_1",
"nodeType": "YulTypedName",
"src": "2156:7:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value_1",
"nodeType": "YulIdentifier",
"src": "2227:7:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "2202:24:1"
},
"nodeType": "YulFunctionCall",
"src": "2202:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "2202:33:1"
},
{
"nodeType": "YulAssignment",
"src": "2244:17:1",
"value": {
"name": "value_1",
"nodeType": "YulIdentifier",
"src": "2254:7:1"
},
"variableNames": [
{
"name": "value7",
"nodeType": "YulIdentifier",
"src": "2244:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_string_memory_ptrt_string_memory_ptrt_uint8t_uint256t_uint8t_uint8t_address_payable_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1258:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1269:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1281:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1289:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "1297:6:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "1305:6:1",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "1313:6:1",
"type": ""
},
{
"name": "value5",
"nodeType": "YulTypedName",
"src": "1321:6:1",
"type": ""
},
{
"name": "value6",
"nodeType": "YulTypedName",
"src": "1329:6:1",
"type": ""
},
{
"name": "value7",
"nodeType": "YulTypedName",
"src": "1337:6:1",
"type": ""
}
],
"src": "1126:1141:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2401:175:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2411:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2423:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2434:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2419:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2419:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2411:4:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2446:29:1",
"value": {
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2464:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2469:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "2460:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2460:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2473:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2456:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2456:19:1"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "2450:2:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2491:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2506:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "2514:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2502:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2502:15:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2484:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2484:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "2484:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2538:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2549:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2534:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2534:18:1"
},
{
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2558:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "2566:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2554:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2554:15:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2527:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2527:43:1"
},
"nodeType": "YulExpressionStatement",
"src": "2527:43:1"
}
]
},
"name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2362:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2373:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2381:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2392:4:1",
"type": ""
}
],
"src": "2272:304:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2702:262:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2719:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2730:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2712:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2712:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "2712:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2742:27:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2762:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2756:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2756:13:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2746:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2789:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2800:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2785:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2785:18:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2805:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2778:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2778:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "2778:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2847:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2855:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2843:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2843:15:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2864:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2875:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2860:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2860:18:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2880:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2821:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2821:66:1"
},
"nodeType": "YulExpressionStatement",
"src": "2821:66:1"
},
{
"nodeType": "YulAssignment",
"src": "2896:62:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2912:9:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2931:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2939:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2927:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2927:15:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2948:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "2944:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2944:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2923:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2923:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2908:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2908:45:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2955:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2904:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2904:54:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2896:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2671:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2682:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2693:4:1",
"type": ""
}
],
"src": "2581:383:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3143:223:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3160:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3171:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3153:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3153:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "3153:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3194:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3205:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3190:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3190:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3210:2:1",
"type": "",
"value": "33"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3183:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3183:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "3183:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3233:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3244:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3229:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3229:18:1"
},
{
"hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f",
"kind": "string",
"nodeType": "YulLiteral",
"src": "3249:34:1",
"type": "",
"value": "SafeMath: multiplication overflo"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3222:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3222:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "3222:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3304:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3315:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3300:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3300:18:1"
},
{
"hexValue": "77",
"kind": "string",
"nodeType": "YulLiteral",
"src": "3320:3:1",
"type": "",
"value": "w"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3293:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3293:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "3293:31:1"
},
{
"nodeType": "YulAssignment",
"src": "3333:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3345:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3356:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3341:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3341:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3333:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3120:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3134:4:1",
"type": ""
}
],
"src": "2969:397:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3472:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3482:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3494:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3505:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3490:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3490:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3482:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3524:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3535:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3517:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3517:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "3517:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3441:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3452:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3463:4:1",
"type": ""
}
],
"src": "3371:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3599:74:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3622:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x12",
"nodeType": "YulIdentifier",
"src": "3624:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3624:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "3624:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3619:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3612:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3612:9:1"
},
"nodeType": "YulIf",
"src": "3609:35:1"
},
{
"nodeType": "YulAssignment",
"src": "3653:14:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3662:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3665:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "3658:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3658:9:1"
},
"variableNames": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "3653:1:1"
}
]
}
]
},
"name": "checked_div_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "3584:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "3587:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nodeType": "YulTypedName",
"src": "3593:1:1",
"type": ""
}
],
"src": "3553:120:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3730:116:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3789:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "3791:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3791:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "3791:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3761:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3754:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3754:9:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3747:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3747:17:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3769:1:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3780:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3776:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3776:6:1"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3784:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "3772:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3772:14:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3766:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3766:21:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3743:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3743:45:1"
},
"nodeType": "YulIf",
"src": "3740:71:1"
},
{
"nodeType": "YulAssignment",
"src": "3820:20:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3835:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3838:1:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "3831:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3831:9:1"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "3820:7:1"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "3709:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "3712:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "3718:7:1",
"type": ""
}
],
"src": "3678:168:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3900:76:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3922:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "3924:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3924:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "3924:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3916:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3919:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3913:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3913:8:1"
},
"nodeType": "YulIf",
"src": "3910:34:1"
},
{
"nodeType": "YulAssignment",
"src": "3953:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3965:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3968:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3961:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3961:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "3953:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "3882:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "3885:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "3891:4:1",
"type": ""
}
],
"src": "3851:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4034:205:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4044:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4053:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "4048:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4113:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4138:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4143:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4134:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4134:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4157:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4162:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4153:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4153:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4147:5:1"
},
"nodeType": "YulFunctionCall",
"src": "4147:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4127:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4127:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "4127:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4074:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4077:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4071:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4071:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "4085:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4087:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4096:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4099:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4092:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4092:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4087:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "4067:3:1",
"statements": []
},
"src": "4063:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4202:31:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4215:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4220:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4211:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4211:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4229:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4204:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4204:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "4204:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4191:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4194:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4188:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4188:13:1"
},
"nodeType": "YulIf",
"src": "4185:48:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4012:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4017:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4022:6:1",
"type": ""
}
],
"src": "3981:258:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4299:325:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4309:22:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4323:1:1",
"type": "",
"value": "1"
},
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4326:4:1"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "4319:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4319:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4309:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4340:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4370:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4376:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4366:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4366:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "4344:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4417:31:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4419:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4433:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4441:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4429:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4429:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4419:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4397:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4390:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4390:26:1"
},
"nodeType": "YulIf",
"src": "4387:61:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4507:111:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4528:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4535:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4540:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "4531:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4531:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4521:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4521:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "4521:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4572:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4575:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4565:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4565:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4565:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4600:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4603:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4593:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4593:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4593:15:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4463:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4486:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4494:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4483:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4483:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4460:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4460:38:1"
},
"nodeType": "YulIf",
"src": "4457:161:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "4279:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4288:6:1",
"type": ""
}
],
"src": "4244:380:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4667:74:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4690:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x12",
"nodeType": "YulIdentifier",
"src": "4692:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4692:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4692:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "4687:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4680:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4680:9:1"
},
"nodeType": "YulIf",
"src": "4677:35:1"
},
{
"nodeType": "YulAssignment",
"src": "4721:14:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "4730:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "4733:1:1"
}
],
"functionName": {
"name": "mod",
"nodeType": "YulIdentifier",
"src": "4726:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4726:9:1"
},
"variableNames": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "4721:1:1"
}
]
}
]
},
"name": "mod_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "4652:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "4655:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nodeType": "YulTypedName",
"src": "4661:1:1",
"type": ""
}
],
"src": "4629:112:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4778:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4795:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4802:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4807:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "4798:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4798:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4788:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4788:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "4788:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4835:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4838:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4828:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4828:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4828:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4859:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4862:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4852:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4852:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4852:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "4746:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4910:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4927:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4934:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4939:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "4930:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4930:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4920:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4920:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "4920:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4967:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4970:4:1",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4960:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4960:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4960:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4991:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4994:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4984:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4984:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4984:15:1"
}
]
},
"name": "panic_error_0x12",
"nodeType": "YulFunctionDefinition",
"src": "4878:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5042:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5059:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5066:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5071:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "5062:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5062:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5052:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5052:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "5052:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5099:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5102:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5092:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5092:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "5092:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5123:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5126:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5116:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5116:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "5116:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "5010:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5187:86:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5251:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5260:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5263:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5253:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5253:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "5253:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5210:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5221:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5236:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5241:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "5232:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5232:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5245:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5228:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5228:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5217:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5217:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "5207:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5207:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5200:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5200:50:1"
},
"nodeType": "YulIf",
"src": "5197:70:1"
}
]
},
"name": "validator_revert_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5176:5:1",
"type": ""
}
],
"src": "5142:131:1"
}
]
},
"contents": "{\n { }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n copy_memory_to_memory(add(offset, 0x20), add(memPtr, 0x20), _1)\n array := memPtr\n }\n function abi_decode_uint8_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_string_memory_ptrt_string_memory_ptrt_uint8t_uint256t_uint8t_uint8t_address_payable_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 256) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n let offset := mload(add(headStart, 32))\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n value2 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n value3 := abi_decode_uint8_fromMemory(add(headStart, 96))\n value4 := mload(add(headStart, 128))\n value5 := abi_decode_uint8_fromMemory(add(headStart, 160))\n value6 := abi_decode_uint8_fromMemory(add(headStart, 192))\n let value_1 := mload(add(headStart, 224))\n validator_revert_address(value_1)\n value7 := value_1\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"SafeMath: multiplication overflo\")\n mstore(add(headStart, 96), \"w\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60c0604052600380546001600160d81b0319167a01010a0a0a0a0a000000000000000000000000000000000000dead179055600a80547310ed43c718714eb63d5aa57b78b54704e256024e6001600160a01b0319909116179055600e805460ff1990811660019081179092556011805461ffff60481b1963ffffffff60281b1964ffffffff0019831664ffff0000001960ff61010061ff00198716048116620100000291821692909217630100000063ffffff001990961663ff000000199290921691909117949094048116640100000000029390931790811661ffff60381b196501000000000060ff60281b1984160485166601000000000000029081169190911767010000000000000062ffffff60281b1990931660ff60381b199290921691909117919091048316680100000000000000000217908116690100000000000000000060ff60481b1992909216919091049091166a010000000000000000000002179055601280549091169091179055670de0b6b3a76400006016553480156200018a57600080fd5b506040516200447138038062004471833981016040819052620001ad91620007cc565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35086516200020390600f9060208a01906200065e565b508551620002199060109060208901906200065e565b506011805460ff191660ff8716179055600b8490556200023c846000196200099c565b6200024a9060001962000912565b600c8190556001600160a01b03808a16600090815260046020908152604090912092909255601180549184166b01000000000000000000000002600160581b600160f81b0319909216919091179055600b54620002d191606491620002bd9160ff88169062001c1a62000544821b17901c565b620005d860201b62001c991790919060201c565b601381905550620002fc6064620002bd8460ff16600b546200054460201b62001c1a1790919060201c565b6014556200031f6103e8620002bd86600162000544602090811b62001c1a17901c565b601555600a546040805163c45a015560e01b815290516001600160a01b0390921691829163c45a0155916004808301926020929190829003018186803b1580156200036957600080fd5b505afa1580156200037e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a49190620007ac565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ed57600080fd5b505afa15801562000402573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004289190620007ac565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200047157600080fd5b505af115801562000486573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ac9190620007ac565b606090811b6001600160601b031990811660a0529082901b166080526001600160a01b03891660008181526007602090815260408083208054600160ff19918216811790925530855282852080549091169091179055600b5490519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050505050505062000a0e565b6000826200055557506000620005d2565b6000620005638385620008f0565b905082620005728583620008d9565b14620005cf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620005cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200062260201b60201c565b60008183620006465760405162461bcd60e51b8152600401620005c69190620008a4565b506000620006558486620008d9565b95945050505050565b8280546200066c906200095f565b90600052602060002090601f016020900481019282620006905760008555620006db565b82601f10620006ab57805160ff1916838001178555620006db565b82800160010185558215620006db579182015b82811115620006db578251825591602001919060010190620006be565b50620006e9929150620006ed565b5090565b5b80821115620006e95760008155600101620006ee565b600082601f8301126200071657600080fd5b81516001600160401b0380821115620007335762000733620009df565b604051601f8301601f19908116603f011681019082821181831017156200075e576200075e620009df565b816040528381528660208588010111156200077857600080fd5b6200078b8460208301602089016200092c565b9695505050505050565b805160ff81168114620007a757600080fd5b919050565b600060208284031215620007bf57600080fd5b8151620005cf81620009f5565b600080600080600080600080610100898b031215620007ea57600080fd5b8851620007f781620009f5565b60208a01519098506001600160401b03808211156200081557600080fd5b620008238c838d0162000704565b985060408b01519150808211156200083a57600080fd5b50620008498b828c0162000704565b9650506200085a60608a0162000795565b9450608089015193506200087160a08a0162000795565b92506200088160c08a0162000795565b915060e08901516200089381620009f5565b809150509295985092959890939650565b6020815260008251806020840152620008c58160408501602087016200092c565b601f01601f19169190910160400192915050565b600082620008eb57620008eb620009c9565b500490565b60008160001904831182151516156200090d576200090d620009b3565b500290565b600082821015620009275762000927620009b3565b500390565b60005b83811015620009495781810151838201526020016200092f565b8381111562000959576000848401525b50505050565b600181811c908216806200097457607f821691505b602082108114156200099657634e487b7160e01b600052602260045260246000fd5b50919050565b600082620009ae57620009ae620009c9565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811462000a0b57600080fd5b50565b60805160601c60a05160601c6139f862000a796000396000818161069401528181611ff701526120d60152600081816104b101528181612bc901528181612c9101528181612ccd01528181612d3f01528181612da701528181612e510152612f4201526139f86000f3fe6080604052600436106103905760003560e01c806370a08231116101dc578063bdc653ef11610102578063dd467064116100a0578063f25f4b561161006f578063f25f4b5614610ab6578063f2fde38b14610add578063f6a3c9a914610afd578063f887ea4014610b1d57600080fd5b8063dd46706414610a10578063dd62ed3e14610a30578063ea2f0b3714610a76578063efa0880614610a9657600080fd5b8063c7992f9a116100dc578063c7992f9a146109a4578063d12a7688146109c5578063d28d8852146109db578063d543dbeb146109f057600080fd5b8063bdc653ef1461094e578063c0b0fda214610963578063c49b9a801461098457600080fd5b806390d49b9d1161017a578063a9059cbb11610149578063a9059cbb146108ee578063af465a271461090e578063b09f126614610924578063b6c523241461093957600080fd5b806390d49b9d1461088457806395d89b41146108a4578063a457c2d7146108b9578063a69df4b5146108d957600080fd5b806382bf293c116101b657806382bf293c146107ed57806382d2a4bb1461080d57806388f820201461082d5780638da5cb5b1461086657600080fd5b806370a08231146107a2578063715018a6146107c25780637d1db4a5146107d757600080fd5b80633bd5d173116102c1578063521432901161025f5780635fa429111161022e5780635fa42911146107305780636bc87c3a1461074a5780636c0a24eb1461076b57806370690b111461078157600080fd5b8063521432901461068257806352390c02146106b65780635342acb4146106d657806354ce65781461070f57600080fd5b8063437823ec1161029b578063437823ec146106075780634549b039146106275780634a74bb021461064757806351330a191461066157600080fd5b80633bd5d173146105a55780633c81385c146105c5578063430ca090146105e657600080fd5b80632d6abf871161032e578063324f8dbf11610308578063324f8dbf146105235780633685d4191461054457806339509351146105665780633b124fe71461058657600080fd5b80632d6abf871461049f5780632d838119146104eb578063313ce5671461050b57600080fd5b806315fa749a1161036a57806315fa749a1461041657806318160ddd1461044957806319de79ab1461045e57806323b872dd1461047f57600080fd5b806306fdde031461039c578063095ea7b3146103c757806313114a9d146103f757600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103b1610b3d565b6040516103be919061373c565b60405180910390f35b3480156103d357600080fd5b506103e76103e236600461358c565b610bcf565b60405190151581526020016103be565b34801561040357600080fd5b50600d545b6040519081526020016103be565b34801561042257600080fd5b5060035461043790600160c01b900460ff1681565b60405160ff90911681526020016103be565b34801561045557600080fd5b50600b54610408565b34801561046a57600080fd5b5060115461043790600160481b900460ff1681565b34801561048b57600080fd5b506103e761049a36600461354b565b610be6565b3480156104ab57600080fd5b506104d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103be565b3480156104f757600080fd5b506104086105063660046135f2565b610c4f565b34801561051757600080fd5b5060115460ff16610437565b34801561052f57600080fd5b5060035461043790600160c81b900460ff1681565b34801561055057600080fd5b5061056461055f3660046134d8565b610cc5565b005b34801561057257600080fd5b506103e761058136600461358c565b610e6f565b34801561059257600080fd5b5060115461043790610100900460ff1681565b3480156105b157600080fd5b506105646105c03660046135f2565b610ea5565b3480156105d157600080fd5b5060035461043790600160b01b900460ff1681565b3480156105f257600080fd5b5060035461043790600160a01b900460ff1681565b34801561061357600080fd5b506105646106223660046134d8565b610f8f565b34801561063357600080fd5b5061040861064236600461360b565b610fdd565b34801561065357600080fd5b506012546103e79060ff1681565b34801561066d57600080fd5b5060035461043790600160b81b900460ff1681565b34801561068e57600080fd5b506104d37f000000000000000000000000000000000000000000000000000000000000000081565b3480156106c257600080fd5b506105646106d13660046134d8565b61106a565b3480156106e257600080fd5b506103e76106f13660046134d8565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561071b57600080fd5b5060115461043790600160381b900460ff1681565b34801561073c57600080fd5b50600e546103e79060ff1681565b34801561075657600080fd5b50601154610437906301000000900460ff1681565b34801561077757600080fd5b5061040860145481565b34801561078d57600080fd5b5060035461043790600160d01b900460ff1681565b3480156107ae57600080fd5b506104086107bd3660046134d8565b6111cd565b3480156107ce57600080fd5b5061056461122c565b3480156107e357600080fd5b5061040860135481565b3480156107f957600080fd5b506105646108083660046135f2565b61128e565b34801561081957600080fd5b506105646108283660046135f2565b61132d565b34801561083957600080fd5b506103e76108483660046134d8565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561087257600080fd5b506000546001600160a01b03166104d3565b34801561089057600080fd5b5061056461089f3660046134d8565b61136f565b3480156108b057600080fd5b506103b161141f565b3480156108c557600080fd5b506103e76108d436600461358c565b61142e565b3480156108e557600080fd5b5061056461147d565b3480156108fa57600080fd5b506103e761090936600461358c565b611596565b34801561091a57600080fd5b50610408600b5481565b34801561093057600080fd5b506103b16115a3565b34801561094557600080fd5b50600254610408565b34801561095a57600080fd5b50601654610408565b34801561096f57600080fd5b5060115461043790600160281b900460ff1681565b34801561099057600080fd5b5061056461099f3660046135b8565b611631565b3480156109b057600080fd5b5060035461043790600160a81b900460ff1681565b3480156109d157600080fd5b5061040860155481565b3480156109e757600080fd5b506103b16116a2565b3480156109fc57600080fd5b50610564610a0b3660046135f2565b6116af565b348015610a1c57600080fd5b50610564610a2b3660046135f2565b611748565b348015610a3c57600080fd5b50610408610a4b366004613512565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610a8257600080fd5b50610564610a913660046134d8565b6117cd565b348015610aa257600080fd5b50610564610ab136600461358c565b611818565b348015610ac257600080fd5b506011546104d390600160581b90046001600160a01b031681565b348015610ae957600080fd5b50610564610af83660046134d8565b611931565b348015610b0957600080fd5b50610564610b1836600461365e565b611a09565b348015610b2957600080fd5b50600a546104d3906001600160a01b031681565b6060600f8054610b4c90613897565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7890613897565b8015610bc55780601f10610b9a57610100808354040283529160200191610bc5565b820191906000526020600020905b815481529060010190602001808311610ba857829003601f168201915b5050505050905090565b6000610bdc338484611cdb565b5060015b92915050565b6000610bf3848484611de8565b610c458433610c4085604051806060016040528060288152602001613956602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906121d7565b611cdb565b5060019392505050565b6000600c54821115610ca85760405162461bcd60e51b815260206004820152601e60248201527f416d74206d757374206265206c657373207468616e20746f74207265666c000060448201526064015b60405180910390fd5b6000610cb2612211565b9050610cbe8382611c99565b9392505050565b6000546001600160a01b03163314610cef5760405162461bcd60e51b8152600401610c9f90613791565b6001600160a01b03811660009081526008602052604090205460ff16610d4a5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e48195e18db1d59195960821b6044820152606401610c9f565b60005b600954811015610e6b57816001600160a01b031660098281548110610d7457610d74613919565b6000918252602090912001546001600160a01b03161415610e595760098054610d9f90600190613880565b81548110610daf57610daf613919565b600091825260209091200154600980546001600160a01b039092169183908110610ddb57610ddb613919565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600582526040808220829055600890925220805460ff191690556009805480610e3357610e33613903565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610e63816138d2565b915050610d4d565b5050565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610bdc918590610c409086612234565b3360008181526008602052604090205460ff1615610f1a5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610c9f565b6000610f2583612293565b505050506001600160a01b038416600090815260046020526040902054919250610f51919050826122e2565b6001600160a01b038316600090815260046020526040902055600c54610f7790826122e2565b600c55600d54610f879084612234565b600d55505050565b6000546001600160a01b03163314610fb95760405162461bcd60e51b8152600401610c9f90613791565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000600b548311156110315760405162461bcd60e51b815260206004820152601c60248201527f416d74206d757374206265206c657373207468616e20737570706c79000000006044820152606401610c9f565b8161105057600061104184612293565b50939550610be0945050505050565b600061105b84612293565b50929550610be0945050505050565b6000546001600160a01b031633146110945760405162461bcd60e51b8152600401610c9f90613791565b6001600160a01b03811660009081526008602052604090205460ff161561110d5760405162461bcd60e51b815260206004820152602760248201527f4163636f756e7420697320616c7265616479206578636c756465642066726f6d604482015266081c995dd85c9960ca1b6064820152608401610c9f565b6001600160a01b03811660009081526004602052604090205415611167576001600160a01b03811660009081526004602052604090205461114d90610c4f565b6001600160a01b0382166000908152600560205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526008602052604081205460ff161561120a57506001600160a01b031660009081526005602052604090205490565b6001600160a01b038216600090815260046020526040902054610be090610c4f565b6000546001600160a01b031633146112565760405162461bcd60e51b8152600401610c9f90613791565b600080546040516001600160a01b039091169060008051602061397e833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112b85760405162461bcd60e51b8152600401610c9f90613791565b600354600160d01b900460ff1681108015906112d5575060648111155b6113075760405162461bcd60e51b815260206004820152600360248201526232b93960e91b6044820152606401610c9f565b611327606461132183600b54611c1a90919063ffffffff16565b90611c99565b60145550565b6000546001600160a01b031633146113575760405162461bcd60e51b8152600401610c9f90613791565b61136981670de0b6b3a7640000613861565b60165550565b6000546001600160a01b031633146113995760405162461bcd60e51b8152600401610c9f90613791565b6001600160a01b0381166113de5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f204144445245535360a01b6044820152606401610c9f565b601180546001600160a01b03909216600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff909216919091179055565b606060108054610b4c90613897565b6000610bdc3384610c408560405180606001604052806025815260200161399e602591393360009081526006602090815260408083206001600160a01b038d16845290915290205491906121d7565b6001546001600160a01b031633146114f65760405162461bcd60e51b815260206004820152603660248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152751bd8dac81d1a19481d1bdad95b8818dbdb9d1c9858dd60521b6064820152608401610c9f565b60025442116115475760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c20372064617973006044820152606401610c9f565b600154600080546040516001600160a01b03938416939091169160008051602061397e83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610bdc338484611de8565b601080546115b090613897565b80601f01602080910402602001604051908101604052809291908181526020018280546115dc90613897565b80156116295780601f106115fe57610100808354040283529160200191611629565b820191906000526020600020905b81548152906001019060200180831161160c57829003601f168201915b505050505081565b6000546001600160a01b0316331461165b5760405162461bcd60e51b8152600401610c9f90613791565b6012805460ff19168215159081179091556040519081527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599060200160405180910390a150565b600f80546115b090613897565b6000546001600160a01b031633146116d95760405162461bcd60e51b8152600401610c9f90613791565b600354600160c81b900460ff1681108015906116f6575060648111155b6117285760405162461bcd60e51b815260206004820152600360248201526232b93960e91b6044820152606401610c9f565b611742606461132183600b54611c1a90919063ffffffff16565b60135550565b6000546001600160a01b031633146117725760405162461bcd60e51b8152600401610c9f90613791565b60008054600180546001600160a01b03199081166001600160a01b038416179091551690556117a18142613802565b600255600080546040516001600160a01b039091169060008051602061397e833981519152908390a350565b6000546001600160a01b031633146117f75760405162461bcd60e51b8152600401610c9f90613791565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b031633146118425760405162461bcd60e51b8152600401610c9f90613791565b6001600160a01b03821630141561188b5760405162461bcd60e51b815260206004820152600d60248201526c53656c6620776974686472617760981b6044820152606401610c9f565b816001600160a01b031663a9059cbb6118ac6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b1580156118f457600080fd5b505af1158015611908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192c91906135d5565b505050565b6000546001600160a01b0316331461195b5760405162461bcd60e51b8152600401610c9f90613791565b6001600160a01b0381166119c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c9f565b600080546040516001600160a01b038085169392169160008051602061397e83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611a335760405162461bcd60e51b8152600401610c9f90613791565b60035460ff600160a81b90910481169086161115611a7c5760405162461bcd60e51b81526020600482015260066024820152652a231032b93960d11b6044820152606401610c9f565b60035460ff600160a01b90910481169085161115611ac55760405162461bcd60e51b815260206004820152600660248201526526231032b93960d11b6044820152606401610c9f565b60035460ff600160b01b90910481169084161115611b0e5760405162461bcd60e51b815260206004820152600660248201526521231032b93960d11b6044820152606401610c9f565b60035460ff600160b81b90910481169083161115611b575760405162461bcd60e51b81526020600482015260066024820152652ba31032b93960d11b6044820152606401610c9f565b60035460ff600160c01b90910481169082161115611ba15760405162461bcd60e51b81526020600482015260076024820152662121231032b93960c91b6044820152606401610c9f565b6011805463ff00ff00191661010060ff9788160263ff0000001916176301000000958716959095029490941769ff000000ff00000000001916600160281b9386169390930260ff60481b191692909217600160481b928516929092029190911760ff60381b1916600160381b9190931602919091179055565b600082611c2957506000610be0565b6000611c358385613861565b905082611c42858361383f565b14610cbe5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c9f565b6000610cbe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612324565b6001600160a01b038316611d315760405162461bcd60e51b815260206004820181905260248201527f45524332303a20617070726f76652066726f6d207a65726f20616464726573736044820152606401610c9f565b6001600160a01b038216611d875760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20617070726f766520746f207a65726f206164647265737300006044820152606401610c9f565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611e485760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610c9f565b6001600160a01b038216611e9e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610c9f565b60008111611f005760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610c9f565b6000546001600160a01b03848116911614801590611f2c57506000546001600160a01b03838116911614155b15611f9457601354811115611f945760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c9f565b6000546001600160a01b03848116911614801590611fc057506000546001600160a01b03838116911614155b8015611fd457506001600160a01b03821615155b8015611fee57506003546001600160a01b03838116911614155b801561202c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b1561209c57600061203c836111cd565b60145490915061204c8383613802565b111561209a5760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e740000006044820152606401610c9f565b505b60006120a7306111cd565b905060135481106120b757506013545b6015546011549082101590600160f81b900460ff1615801561210a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b8015612118575060125460ff165b1561217857801561213157601554915061213182612352565b601154600160481b900460ff16156121785747670de0b6b3a76400008111156121765760165481111561216357506016545b612176612171826064611c99565b612577565b505b6001600160a01b03851660009081526007602052604090205460019060ff16806121ba57506001600160a01b03851660009081526007602052604090205460ff165b156121c3575060005b6121cf868686846125ad565b505050505050565b600081848411156121fb5760405162461bcd60e51b8152600401610c9f919061373c565b5060006122088486613880565b95945050505050565b600080600061221e6127ce565b909250905061222d8282611c99565b9250505090565b6000806122418385613802565b905083811015610cbe5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c9f565b60008060008060008060008060006122aa8a612950565b92509250925060008060006122c88d86866122c3612211565b612992565b919f909e50909c50959a5093985091965092945050505050565b6000610cbe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121d7565b600081836123455760405162461bcd60e51b8152600401610c9f919061373c565b506000612208848661383f565b601180546001600160f81b0316600160f81b1790819055600090600160481b810460ff908116916301000000810482169161239f91600160381b8104821691600160281b9091041661381a565b6123a9919061381a565b6123b3919061381a565b6011549091506000908190600160281b900460ff1615612412576011546123f49060ff600160281b9091048116906123ee9087908716611c99565b90611c1a565b60035490925061240f9030906001600160a01b0316846129e2565b50805b601154600160381b900460ff1615612474576011546124459060ff600160381b9091048116906123ee9087908716611c99565b9150612467306011600b9054906101000a90046001600160a01b0316846129e2565b6124718282613802565b90505b601154600160481b900460ff16156124bf576011546124a79060ff600160481b9091048116906123ee9087908716611c99565b91506124b282612b72565b6124bc8282613802565b90505b6011546301000000900460ff1615612562576124db84826122e2565b935060006124ea856002611c99565b905060006124f886836122e2565b90504761250483612b72565b600061251047836122e2565b905061251c8382612d39565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a1505050505b5050601180546001600160f81b031690555050565b601180546001600160f81b0316600160f81b179055801561259b5761259b81612e2e565b50601180546001600160f81b03169055565b806125ba576125ba612fd3565b6001600160a01b03841660009081526008602052604090205460ff1680156125fb57506001600160a01b03831660009081526008602052604090205460ff16155b156126105761260b84848461310f565b61270e565b6001600160a01b03841660009081526008602052604090205460ff1615801561265157506001600160a01b03831660009081526008602052604090205460ff165b156126615761260b848484613235565b6001600160a01b03841660009081526008602052604090205460ff161580156126a357506001600160a01b03831660009081526008602052604090205460ff16155b156126b35761260b8484846132de565b6001600160a01b03841660009081526008602052604090205460ff1680156126f357506001600160a01b03831660009081526008602052604090205460ff165b156127035761260b848484613322565b61270e8484846132de565b806127c8576011805460ff60481b1967ff00ff00000000001963ff00ff0019831663ff0000001961010062010000860460ff908116919091029182169290921764010000000061ff00199096169091179490940481166301000000029390931790811660ff60381b19660100000000000083048516600160281b0290811691909117600160401b65ff000000000019909316909117919091048316600160381b0217908116600160501b909104909116600160481b021790555b50505050565b600c54600b546000918291825b600954811015612920578260046000600984815481106127fd576127fd613919565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612868575081600560006009848154811061284157612841613919565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561287e57600c54600b54945094505050509091565b6128c4600460006009848154811061289857612898613919565b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906122e2565b925061290c60056000600984815481106128e0576128e0613919565b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906122e2565b915080612918816138d2565b9150506127db565b50600b54600c5461293091611c99565b82101561294757600c54600b549350935050509091565b90939092509050565b60008060008061295f85613395565b9050600061296c866133b5565b905060006129848261297e89866122e2565b906122e2565b979296509094509092505050565b60008080806129a18886611c1a565b905060006129af8887611c1a565b905060006129bd8888611c1a565b905060006129cf8261297e86866122e2565b939b939a50919850919650505050505050565b60006129ec612211565b905060006129fa8383611c1a565b6001600160a01b038616600090815260046020526040902054909150612a2090826122e2565b6001600160a01b038087166000908152600460205260408082209390935590861681522054612a4f9082612234565b6001600160a01b0380861660009081526004602090815260408083209490945591881681526008909152205460ff1615612ac0576001600160a01b038516600090815260056020526040902054612aa690846122e2565b6001600160a01b0386166000908152600560205260409020555b6001600160a01b03841660009081526008602052604090205460ff1615612b1e576001600160a01b038416600090815260056020526040902054612b049084612234565b6001600160a01b0385166000908152600560205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b6391815260200190565b60405180910390a35050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612ba757612ba7613919565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612c2057600080fd5b505afa158015612c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5891906134f5565b81600181518110612c6b57612c6b613919565b60200260200101906001600160a01b031690816001600160a01b031681525050612cb6307f000000000000000000000000000000000000000000000000000000000000000084611cdb565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790612d0b9085906000908690309042906004016137c6565b600060405180830381600087803b158015612d2557600080fd5b505af11580156121cf573d6000803e3d6000fd5b612d64307f000000000000000000000000000000000000000000000000000000000000000084611cdb565b60035460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000009091169063f305d71990839060c4016060604051808303818588803b158015612dee57600080fd5b505af1158015612e02573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e279190613630565b5050505050565b6040805160028082526060820183526000926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612ea857600080fd5b505afa158015612ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee091906134f5565b81600081518110612ef357612ef3613919565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110612f2757612f27613919565b6001600160a01b0392831660209182029290920101526003547f000000000000000000000000000000000000000000000000000000000000000082169163b6f9de95918591600091869116612f7e4261012c612234565b6040518663ffffffff1660e01b8152600401612f9d9493929190613707565b6000604051808303818588803b158015612fb657600080fd5b505af1158015612fca573d6000803e3d6000fd5b50505050505050565b601154610100900460ff16158015612ff557506011546301000000900460ff16155b801561300b5750601154600160281b900460ff16155b80156130215750601154600160381b900460ff16155b80156130375750601154600160481b900460ff16155b1561303e57565b601180546affff00ff00ff00ff00ff001968ff00ff0000000000001964ff00ff000019831664ff0000000019610100850460ff908116620100000291821692909217630100000062ff000019909616909117949094048116640100000000029390931790811668ff000000000000000019600160281b8304851666010000000000000290811691909117600160381b66ff00000000000019909316909117919091048316600160401b0217908116600160481b909104909116600160501b0269ff00ff00ff00ff00ff001916179055565b60008060008060008061312187612293565b6001600160a01b038f16600090815260056020526040902054959b5093995091975095509350915061315390886122e2565b6001600160a01b038a1660009081526005602090815260408083209390935560049052205461318290876122e2565b6001600160a01b03808b1660009081526004602052604080822093909355908a16815220546131b19086612234565b6001600160a01b0389166000908152600460205260409020556131d381613416565b6131dd848361349e565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161322291815260200190565b60405180910390a3505050505050505050565b60008060008060008061324787612293565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061327990876122e2565b6001600160a01b03808b16600090815260046020908152604080832094909455918b168152600590915220546132af9084612234565b6001600160a01b0389166000908152600560209081526040808320939093556004905220546131b19086612234565b6000806000806000806132f087612293565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061318290876122e2565b60008060008060008061333487612293565b6001600160a01b038f16600090815260056020526040902054959b5093995091975095509350915061336690886122e2565b6001600160a01b038a1660009081526005602090815260408083209390935560049052205461327990876122e2565b601154600090610be090606490611321908590610100900460ff16611c1a565b601154600090610be0906064906113219060ff600160481b8204811691600160381b81048216916133f891600160281b810482169163010000009091041661381a565b613402919061381a565b61340c919061381a565b859060ff16611c1a565b6000613420612211565b9050600061342e8383611c1a565b3060009081526004602052604090205490915061344b9082612234565b3060009081526004602090815260408083209390935560089052205460ff161561192c57306000908152600560205260409020546134899084612234565b30600090815260056020526040902055505050565b600c546134ab90836122e2565b600c55600d546134bb9082612234565b600d555050565b803560ff811681146134d357600080fd5b919050565b6000602082840312156134ea57600080fd5b8135610cbe8161392f565b60006020828403121561350757600080fd5b8151610cbe8161392f565b6000806040838503121561352557600080fd5b82356135308161392f565b915060208301356135408161392f565b809150509250929050565b60008060006060848603121561356057600080fd5b833561356b8161392f565b9250602084013561357b8161392f565b929592945050506040919091013590565b6000806040838503121561359f57600080fd5b82356135aa8161392f565b946020939093013593505050565b6000602082840312156135ca57600080fd5b8135610cbe81613947565b6000602082840312156135e757600080fd5b8151610cbe81613947565b60006020828403121561360457600080fd5b5035919050565b6000806040838503121561361e57600080fd5b82359150602083013561354081613947565b60008060006060848603121561364557600080fd5b8351925060208401519150604084015190509250925092565b600080600080600060a0868803121561367657600080fd5b61367f866134c2565b945061368d602087016134c2565b935061369b604087016134c2565b92506136a9606087016134c2565b91506136b7608087016134c2565b90509295509295909350565b600081518084526020808501945080840160005b838110156136fc5781516001600160a01b0316875295820195908201906001016136d7565b509495945050505050565b84815260806020820152600061372060808301866136c3565b6001600160a01b03949094166040830152506060015292915050565b600060208083528351808285015260005b818110156137695785810183015185820160400152820161374d565b8181111561377b576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b85815284602082015260a0604082015260006137e560a08301866136c3565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115613815576138156138ed565b500190565b600060ff821660ff84168060ff03821115613837576138376138ed565b019392505050565b60008261385c57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561387b5761387b6138ed565b500290565b600082821015613892576138926138ed565b500390565b600181811c908216806138ab57607f821691505b602082108114156138cc57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156138e6576138e66138ed565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461394457600080fd5b50565b801515811461394457600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ecd62a288463a7f3ea80d11d249a2870521de16e9c1384b974150bcc4898272e64736f6c63430008070033",
"opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xD8 SHL SUB NOT AND PUSH27 0x1010A0A0A0A0A000000000000000000000000000000000000DEAD OR SWAP1 SSTORE PUSH1 0xA DUP1 SLOAD PUSH20 0x10ED43C718714EB63D5AA57B78B54704E256024E PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0xE DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x11 DUP1 SLOAD PUSH2 0xFFFF PUSH1 0x48 SHL NOT PUSH4 0xFFFFFFFF PUSH1 0x28 SHL NOT PUSH5 0xFFFFFFFF00 NOT DUP4 AND PUSH5 0xFFFF000000 NOT PUSH1 0xFF PUSH2 0x100 PUSH2 0xFF00 NOT DUP8 AND DIV DUP2 AND PUSH3 0x10000 MUL SWAP2 DUP3 AND SWAP3 SWAP1 SWAP3 OR PUSH4 0x1000000 PUSH4 0xFFFFFF00 NOT SWAP1 SWAP7 AND PUSH4 0xFF000000 NOT SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP5 SWAP1 SWAP5 DIV DUP2 AND PUSH5 0x100000000 MUL SWAP4 SWAP1 SWAP4 OR SWAP1 DUP2 AND PUSH2 0xFFFF PUSH1 0x38 SHL NOT PUSH6 0x10000000000 PUSH1 0xFF PUSH1 0x28 SHL NOT DUP5 AND DIV DUP6 AND PUSH7 0x1000000000000 MUL SWAP1 DUP2 AND SWAP2 SWAP1 SWAP2 OR PUSH8 0x100000000000000 PUSH3 0xFFFFFF PUSH1 0x28 SHL NOT SWAP1 SWAP4 AND PUSH1 0xFF PUSH1 0x38 SHL NOT SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 DIV DUP4 AND PUSH9 0x10000000000000000 MUL OR SWAP1 DUP2 AND PUSH10 0x1000000000000000000 PUSH1 0xFF PUSH1 0x48 SHL NOT SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP1 SWAP2 AND PUSH11 0x100000000000000000000 MUL OR SWAP1 SSTORE PUSH1 0x12 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH8 0xDE0B6B3A7640000 PUSH1 0x16 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x18A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x4471 CODESIZE SUB DUP1 PUSH3 0x4471 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x1AD SWAP2 PUSH3 0x7CC JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 SWAP2 DUP3 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 DUP3 SWAP1 LOG3 POP DUP7 MLOAD PUSH3 0x203 SWAP1 PUSH1 0xF SWAP1 PUSH1 0x20 DUP11 ADD SWAP1 PUSH3 0x65E JUMP JUMPDEST POP DUP6 MLOAD PUSH3 0x219 SWAP1 PUSH1 0x10 SWAP1 PUSH1 0x20 DUP10 ADD SWAP1 PUSH3 0x65E JUMP JUMPDEST POP PUSH1 0x11 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP8 AND OR SWAP1 SSTORE PUSH1 0xB DUP5 SWAP1 SSTORE PUSH3 0x23C DUP5 PUSH1 0x0 NOT PUSH3 0x99C JUMP JUMPDEST PUSH3 0x24A SWAP1 PUSH1 0x0 NOT PUSH3 0x912 JUMP JUMPDEST PUSH1 0xC DUP2 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x11 DUP1 SLOAD SWAP2 DUP5 AND PUSH12 0x10000000000000000000000 MUL PUSH1 0x1 PUSH1 0x58 SHL PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0xB SLOAD PUSH3 0x2D1 SWAP2 PUSH1 0x64 SWAP2 PUSH3 0x2BD SWAP2 PUSH1 0xFF DUP9 AND SWAP1 PUSH3 0x1C1A PUSH3 0x544 DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST PUSH3 0x5D8 PUSH1 0x20 SHL PUSH3 0x1C99 OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x13 DUP2 SWAP1 SSTORE POP PUSH3 0x2FC PUSH1 0x64 PUSH3 0x2BD DUP5 PUSH1 0xFF AND PUSH1 0xB SLOAD PUSH3 0x544 PUSH1 0x20 SHL PUSH3 0x1C1A OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x14 SSTORE PUSH3 0x31F PUSH2 0x3E8 PUSH3 0x2BD DUP7 PUSH1 0x1 PUSH3 0x544 PUSH1 0x20 SWAP1 DUP2 SHL PUSH3 0x1C1A OR SWAP1 SHR JUMP JUMPDEST PUSH1 0x15 SSTORE PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xC45A0155 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP3 SWAP2 PUSH4 0xC45A0155 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x369 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x37E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 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 PUSH3 0x3A4 SWAP2 SWAP1 PUSH3 0x7AC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC9C65396 ADDRESS DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x3ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x402 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 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 PUSH3 0x428 SWAP2 SWAP1 PUSH3 0x7AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x471 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x486 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 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 PUSH3 0x4AC SWAP2 SWAP1 PUSH3 0x7AC JUMP JUMPDEST PUSH1 0x60 SWAP1 DUP2 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0xA0 MSTORE SWAP1 DUP3 SWAP1 SHL AND PUSH1 0x80 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE ADDRESS DUP6 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0xB SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP PUSH3 0xA0E JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH3 0x555 JUMPI POP PUSH1 0x0 PUSH3 0x5D2 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x563 DUP4 DUP6 PUSH3 0x8F0 JUMP JUMPDEST SWAP1 POP DUP3 PUSH3 0x572 DUP6 DUP4 PUSH3 0x8D9 JUMP JUMPDEST EQ PUSH3 0x5CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206D756C7469706C69636174696F6E206F766572666C6F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x77 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x5CF DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 DUP2 MSTORE POP PUSH3 0x622 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH3 0x646 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x5C6 SWAP2 SWAP1 PUSH3 0x8A4 JUMP JUMPDEST POP PUSH1 0x0 PUSH3 0x655 DUP5 DUP7 PUSH3 0x8D9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x66C SWAP1 PUSH3 0x95F JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x690 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x6DB JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x6AB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x6DB JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x6DB JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x6DB JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x6BE JUMP JUMPDEST POP PUSH3 0x6E9 SWAP3 SWAP2 POP PUSH3 0x6ED JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x6E9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x6EE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x733 JUMPI PUSH3 0x733 PUSH3 0x9DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x75E JUMPI PUSH3 0x75E PUSH3 0x9DF JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x778 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x78B DUP5 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP10 ADD PUSH3 0x92C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH3 0x7A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x7BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x5CF DUP2 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 DUP10 DUP12 SUB SLT ISZERO PUSH3 0x7EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 MLOAD PUSH3 0x7F7 DUP2 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x20 DUP11 ADD MLOAD SWAP1 SWAP9 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x823 DUP13 DUP4 DUP14 ADD PUSH3 0x704 JUMP JUMPDEST SWAP9 POP PUSH1 0x40 DUP12 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x83A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x849 DUP12 DUP3 DUP13 ADD PUSH3 0x704 JUMP JUMPDEST SWAP7 POP POP PUSH3 0x85A PUSH1 0x60 DUP11 ADD PUSH3 0x795 JUMP JUMPDEST SWAP5 POP PUSH1 0x80 DUP10 ADD MLOAD SWAP4 POP PUSH3 0x871 PUSH1 0xA0 DUP11 ADD PUSH3 0x795 JUMP JUMPDEST SWAP3 POP PUSH3 0x881 PUSH1 0xC0 DUP11 ADD PUSH3 0x795 JUMP JUMPDEST SWAP2 POP PUSH1 0xE0 DUP10 ADD MLOAD PUSH3 0x893 DUP2 PUSH3 0x9F5 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH3 0x8C5 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH3 0x92C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH3 0x8EB JUMPI PUSH3 0x8EB PUSH3 0x9C9 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH3 0x90D JUMPI PUSH3 0x90D PUSH3 0x9B3 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH3 0x927 JUMPI PUSH3 0x927 PUSH3 0x9B3 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x949 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x92F JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x959 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x974 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x996 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH3 0x9AE JUMPI PUSH3 0x9AE PUSH3 0x9C9 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0xA0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x39F8 PUSH3 0xA79 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x694 ADD MSTORE DUP2 DUP2 PUSH2 0x1FF7 ADD MSTORE PUSH2 0x20D6 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4B1 ADD MSTORE DUP2 DUP2 PUSH2 0x2BC9 ADD MSTORE DUP2 DUP2 PUSH2 0x2C91 ADD MSTORE DUP2 DUP2 PUSH2 0x2CCD ADD MSTORE DUP2 DUP2 PUSH2 0x2D3F ADD MSTORE DUP2 DUP2 PUSH2 0x2DA7 ADD MSTORE DUP2 DUP2 PUSH2 0x2E51 ADD MSTORE PUSH2 0x2F42 ADD MSTORE PUSH2 0x39F8 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x390 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x1DC JUMPI DUP1 PUSH4 0xBDC653EF GT PUSH2 0x102 JUMPI DUP1 PUSH4 0xDD467064 GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xF25F4B56 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xF25F4B56 EQ PUSH2 0xAB6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xADD JUMPI DUP1 PUSH4 0xF6A3C9A9 EQ PUSH2 0xAFD JUMPI DUP1 PUSH4 0xF887EA40 EQ PUSH2 0xB1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDD467064 EQ PUSH2 0xA10 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0xA30 JUMPI DUP1 PUSH4 0xEA2F0B37 EQ PUSH2 0xA76 JUMPI DUP1 PUSH4 0xEFA08806 EQ PUSH2 0xA96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC7992F9A GT PUSH2 0xDC JUMPI DUP1 PUSH4 0xC7992F9A EQ PUSH2 0x9A4 JUMPI DUP1 PUSH4 0xD12A7688 EQ PUSH2 0x9C5 JUMPI DUP1 PUSH4 0xD28D8852 EQ PUSH2 0x9DB JUMPI DUP1 PUSH4 0xD543DBEB EQ PUSH2 0x9F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBDC653EF EQ PUSH2 0x94E JUMPI DUP1 PUSH4 0xC0B0FDA2 EQ PUSH2 0x963 JUMPI DUP1 PUSH4 0xC49B9A80 EQ PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x90D49B9D GT PUSH2 0x17A JUMPI DUP1 PUSH4 0xA9059CBB GT PUSH2 0x149 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x8EE JUMPI DUP1 PUSH4 0xAF465A27 EQ PUSH2 0x90E JUMPI DUP1 PUSH4 0xB09F1266 EQ PUSH2 0x924 JUMPI DUP1 PUSH4 0xB6C52324 EQ PUSH2 0x939 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x90D49B9D EQ PUSH2 0x884 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x8A4 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x8B9 JUMPI DUP1 PUSH4 0xA69DF4B5 EQ PUSH2 0x8D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x82BF293C GT PUSH2 0x1B6 JUMPI DUP1 PUSH4 0x82BF293C EQ PUSH2 0x7ED JUMPI DUP1 PUSH4 0x82D2A4BB EQ PUSH2 0x80D JUMPI DUP1 PUSH4 0x88F82020 EQ PUSH2 0x82D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x866 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x7A2 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x7C2 JUMPI DUP1 PUSH4 0x7D1DB4A5 EQ PUSH2 0x7D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3BD5D173 GT PUSH2 0x2C1 JUMPI DUP1 PUSH4 0x52143290 GT PUSH2 0x25F JUMPI DUP1 PUSH4 0x5FA42911 GT PUSH2 0x22E JUMPI DUP1 PUSH4 0x5FA42911 EQ PUSH2 0x730 JUMPI DUP1 PUSH4 0x6BC87C3A EQ PUSH2 0x74A JUMPI DUP1 PUSH4 0x6C0A24EB EQ PUSH2 0x76B JUMPI DUP1 PUSH4 0x70690B11 EQ PUSH2 0x781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x52143290 EQ PUSH2 0x682 JUMPI DUP1 PUSH4 0x52390C02 EQ PUSH2 0x6B6 JUMPI DUP1 PUSH4 0x5342ACB4 EQ PUSH2 0x6D6 JUMPI DUP1 PUSH4 0x54CE6578 EQ PUSH2 0x70F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x437823EC GT PUSH2 0x29B JUMPI DUP1 PUSH4 0x437823EC EQ PUSH2 0x607 JUMPI DUP1 PUSH4 0x4549B039 EQ PUSH2 0x627 JUMPI DUP1 PUSH4 0x4A74BB02 EQ PUSH2 0x647 JUMPI DUP1 PUSH4 0x51330A19 EQ PUSH2 0x661 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3BD5D173 EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0x3C81385C EQ PUSH2 0x5C5 JUMPI DUP1 PUSH4 0x430CA090 EQ PUSH2 0x5E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2D6ABF87 GT PUSH2 0x32E JUMPI DUP1 PUSH4 0x324F8DBF GT PUSH2 0x308 JUMPI DUP1 PUSH4 0x324F8DBF EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0x3685D419 EQ PUSH2 0x544 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x566 JUMPI DUP1 PUSH4 0x3B124FE7 EQ PUSH2 0x586 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2D6ABF87 EQ PUSH2 0x49F JUMPI DUP1 PUSH4 0x2D838119 EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x50B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x15FA749A GT PUSH2 0x36A JUMPI DUP1 PUSH4 0x15FA749A EQ PUSH2 0x416 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0x19DE79AB EQ PUSH2 0x45E JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x47F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0x13114A9D EQ PUSH2 0x3F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x397 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B1 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3BE SWAP2 SWAP1 PUSH2 0x373C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E7 PUSH2 0x3E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x358C JUMP JUMPDEST PUSH2 0xBCF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x403 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xD SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x422 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x455 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB SLOAD PUSH2 0x408 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E7 PUSH2 0x49A CALLDATASIZE PUSH1 0x4 PUSH2 0x354B JUMP JUMPDEST PUSH2 0xBE6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D3 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x506 CALLDATASIZE PUSH1 0x4 PUSH2 0x35F2 JUMP JUMPDEST PUSH2 0xC4F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH1 0xFF AND PUSH2 0x437 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0xC8 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x550 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x55F CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH2 0xCC5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x572 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E7 PUSH2 0x581 CALLDATASIZE PUSH1 0x4 PUSH2 0x358C JUMP JUMPDEST PUSH2 0xE6F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x592 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x437 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x5C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x35F2 JUMP JUMPDEST PUSH2 0xEA5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x613 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x622 CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH2 0xF8F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x633 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x642 CALLDATASIZE PUSH1 0x4 PUSH2 0x360B JUMP JUMPDEST PUSH2 0xFDD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x653 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x12 SLOAD PUSH2 0x3E7 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0xB8 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x68E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D3 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x6D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH2 0x106A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E7 PUSH2 0x6F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0x38 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xE SLOAD PUSH2 0x3E7 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x756 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x437 SWAP1 PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x14 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x78D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x7BD CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH2 0x11CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x122C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x13 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x808 CALLDATASIZE PUSH1 0x4 PUSH2 0x35F2 JUMP JUMPDEST PUSH2 0x128E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x819 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x828 CALLDATASIZE PUSH1 0x4 PUSH2 0x35F2 JUMP JUMPDEST PUSH2 0x132D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E7 PUSH2 0x848 CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x872 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x4D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x890 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x89F CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH2 0x136F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B1 PUSH2 0x141F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E7 PUSH2 0x8D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x358C JUMP JUMPDEST PUSH2 0x142E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x147D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E7 PUSH2 0x909 CALLDATASIZE PUSH1 0x4 PUSH2 0x358C JUMP JUMPDEST PUSH2 0x1596 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x91A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x930 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B1 PUSH2 0x15A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x945 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x408 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x16 SLOAD PUSH2 0x408 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0x28 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x990 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x99F CALLDATASIZE PUSH1 0x4 PUSH2 0x35B8 JUMP JUMPDEST PUSH2 0x1631 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0xA8 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x15 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B1 PUSH2 0x16A2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0xA0B CALLDATASIZE PUSH1 0x4 PUSH2 0x35F2 JUMP JUMPDEST PUSH2 0x16AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0xA2B CALLDATASIZE PUSH1 0x4 PUSH2 0x35F2 JUMP JUMPDEST PUSH2 0x1748 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0xA4B CALLDATASIZE PUSH1 0x4 PUSH2 0x3512 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0xA91 CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH2 0x17CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0xAB1 CALLDATASIZE PUSH1 0x4 PUSH2 0x358C JUMP JUMPDEST PUSH2 0x1818 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x4D3 SWAP1 PUSH1 0x1 PUSH1 0x58 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0xAF8 CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH2 0x1931 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0xB18 CALLDATASIZE PUSH1 0x4 PUSH2 0x365E JUMP JUMPDEST PUSH2 0x1A09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xA SLOAD PUSH2 0x4D3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0xF DUP1 SLOAD PUSH2 0xB4C SWAP1 PUSH2 0x3897 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 0xB78 SWAP1 PUSH2 0x3897 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBC5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB9A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBC5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBA8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBDC CALLER DUP5 DUP5 PUSH2 0x1CDB JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF3 DUP5 DUP5 DUP5 PUSH2 0x1DE8 JUMP JUMPDEST PUSH2 0xC45 DUP5 CALLER PUSH2 0xC40 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3956 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x21D7 JUMP JUMPDEST PUSH2 0x1CDB JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD DUP3 GT ISZERO PUSH2 0xCA8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416D74206D757374206265206C657373207468616E20746F74207265666C0000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xCB2 PUSH2 0x2211 JUMP JUMPDEST SWAP1 POP PUSH2 0xCBE DUP4 DUP3 PUSH2 0x1C99 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xCEF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xD4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x105B1C9958591E48195E18DB1D591959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x9 SLOAD DUP2 LT ISZERO PUSH2 0xE6B JUMPI DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xD74 JUMPI PUSH2 0xD74 PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0xE59 JUMPI PUSH1 0x9 DUP1 SLOAD PUSH2 0xD9F SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3880 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xDAF JUMPI PUSH2 0xDAF PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP4 SWAP1 DUP2 LT PUSH2 0xDDB JUMPI PUSH2 0xDDB PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND OR SWAP1 SSTORE SWAP2 DUP5 AND DUP2 MSTORE PUSH1 0x5 DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP3 SWAP1 SSTORE PUSH1 0x8 SWAP1 SWAP3 MSTORE KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 PUSH2 0xE33 JUMPI PUSH2 0xE33 PUSH2 0x3903 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 DUP2 ADD PUSH1 0x0 NOT SWAP1 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE ADD SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH2 0xE63 DUP2 PUSH2 0x38D2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD4D JUMP JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0xBDC SWAP2 DUP6 SWAP1 PUSH2 0xC40 SWAP1 DUP7 PUSH2 0x2234 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578636C75646564206164647265737365732063616E6E6F742063616C6C2074 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x3434B990333AB731BA34B7B7 PUSH1 0xA1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF25 DUP4 PUSH2 0x2293 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH2 0xF51 SWAP2 SWAP1 POP DUP3 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0xC SLOAD PUSH2 0xF77 SWAP1 DUP3 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0xC SSTORE PUSH1 0xD SLOAD PUSH2 0xF87 SWAP1 DUP5 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0xD SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xFB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB SLOAD DUP4 GT ISZERO PUSH2 0x1031 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416D74206D757374206265206C657373207468616E20737570706C7900000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST DUP2 PUSH2 0x1050 JUMPI PUSH1 0x0 PUSH2 0x1041 DUP5 PUSH2 0x2293 JUMP JUMPDEST POP SWAP4 SWAP6 POP PUSH2 0xBE0 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x105B DUP5 PUSH2 0x2293 JUMP JUMPDEST POP SWAP3 SWAP6 POP PUSH2 0xBE0 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1094 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x110D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4163636F756E7420697320616C7265616479206578636C756465642066726F6D PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x81C995DD85C99 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1167 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x114D SWAP1 PUSH2 0xC4F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x9 DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0x6E1540171B6C0C960B71A7020D9F60077F6AF931A8BBF590DA0223DACF75C7AF ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x120A JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xBE0 SWAP1 PUSH2 0xC4F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1256 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x397E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP4 SWAP1 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x12B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 LT DUP1 ISZERO SWAP1 PUSH2 0x12D5 JUMPI POP PUSH1 0x64 DUP2 GT ISZERO JUMPDEST PUSH2 0x1307 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0x24 DUP3 ADD MSTORE PUSH3 0x32B939 PUSH1 0xE9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH2 0x1327 PUSH1 0x64 PUSH2 0x1321 DUP4 PUSH1 0xB SLOAD PUSH2 0x1C1A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH2 0x1C99 JUMP JUMPDEST PUSH1 0x14 SSTORE POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1357 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH2 0x1369 DUP2 PUSH8 0xDE0B6B3A7640000 PUSH2 0x3861 JUMP JUMPDEST PUSH1 0x16 SSTORE POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1399 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x13DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x5A45524F2041444452455353 PUSH1 0xA0 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x58 SHL MUL PUSH32 0xFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x10 DUP1 SLOAD PUSH2 0xB4C SWAP1 PUSH2 0x3897 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBDC CALLER DUP5 PUSH2 0xC40 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x399E PUSH1 0x25 SWAP2 CODECOPY CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x21D7 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x14F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F7520646F6E27742068617665207065726D697373696F6E20746F20756E6C PUSH1 0x44 DUP3 ADD MSTORE PUSH22 0x1BD8DAC81D1A19481D1BDAD95B8818DBDB9D1C9858DD PUSH1 0x52 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x2 SLOAD TIMESTAMP GT PUSH2 0x1547 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436F6E7472616374206973206C6F636B656420756E74696C2037206461797300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x397E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 LOG3 PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBDC CALLER DUP5 DUP5 PUSH2 0x1DE8 JUMP JUMPDEST PUSH1 0x10 DUP1 SLOAD PUSH2 0x15B0 SWAP1 PUSH2 0x3897 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 0x15DC SWAP1 PUSH2 0x3897 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1629 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x15FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1629 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x160C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x165B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x12 DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x53726DFCAF90650AA7EB35524F4D3220F07413C8D6CB404CC8C18BF5591BC159 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH2 0x15B0 SWAP1 PUSH2 0x3897 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x16D9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xC8 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 LT DUP1 ISZERO SWAP1 PUSH2 0x16F6 JUMPI POP PUSH1 0x64 DUP2 GT ISZERO JUMPDEST PUSH2 0x1728 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0x24 DUP3 ADD MSTORE PUSH3 0x32B939 PUSH1 0xE9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH2 0x1742 PUSH1 0x64 PUSH2 0x1321 DUP4 PUSH1 0xB SLOAD PUSH2 0x1C1A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x13 SSTORE POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1772 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE PUSH2 0x17A1 DUP2 TIMESTAMP PUSH2 0x3802 JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x397E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP4 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x17F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1842 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ADDRESS EQ ISZERO PUSH2 0x188B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x53656C66207769746864726177 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x18AC PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1908 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 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 0x192C SWAP2 SWAP1 PUSH2 0x35D5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x195B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x19C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND SWAP4 SWAP3 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x397E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1A33 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF PUSH1 0x1 PUSH1 0xA8 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1A7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6 PUSH1 0x24 DUP3 ADD MSTORE PUSH6 0x2A231032B939 PUSH1 0xD1 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP6 AND GT ISZERO PUSH2 0x1AC5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6 PUSH1 0x24 DUP3 ADD MSTORE PUSH6 0x26231032B939 PUSH1 0xD1 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP5 AND GT ISZERO PUSH2 0x1B0E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6 PUSH1 0x24 DUP3 ADD MSTORE PUSH6 0x21231032B939 PUSH1 0xD1 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF PUSH1 0x1 PUSH1 0xB8 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP4 AND GT ISZERO PUSH2 0x1B57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6 PUSH1 0x24 DUP3 ADD MSTORE PUSH6 0x2BA31032B939 PUSH1 0xD1 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x1BA1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x2121231032B939 PUSH1 0xC9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD PUSH4 0xFF00FF00 NOT AND PUSH2 0x100 PUSH1 0xFF SWAP8 DUP9 AND MUL PUSH4 0xFF000000 NOT AND OR PUSH4 0x1000000 SWAP6 DUP8 AND SWAP6 SWAP1 SWAP6 MUL SWAP5 SWAP1 SWAP5 OR PUSH10 0xFF000000FF0000000000 NOT AND PUSH1 0x1 PUSH1 0x28 SHL SWAP4 DUP7 AND SWAP4 SWAP1 SWAP4 MUL PUSH1 0xFF PUSH1 0x48 SHL NOT AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x48 SHL SWAP3 DUP6 AND SWAP3 SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR PUSH1 0xFF PUSH1 0x38 SHL NOT AND PUSH1 0x1 PUSH1 0x38 SHL SWAP2 SWAP1 SWAP4 AND MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1C29 JUMPI POP PUSH1 0x0 PUSH2 0xBE0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C35 DUP4 DUP6 PUSH2 0x3861 JUMP JUMPDEST SWAP1 POP DUP3 PUSH2 0x1C42 DUP6 DUP4 PUSH2 0x383F JUMP JUMPDEST EQ PUSH2 0xCBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206D756C7469706C69636174696F6E206F766572666C6F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x77 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBE DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 DUP2 MSTORE POP PUSH2 0x2324 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1D31 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1D87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F207A65726F20616464726573730000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1E48 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1E9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1F00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657220616D6F756E74206D757374206265206772656174657220 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x7468616E207A65726F PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1F2C JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1F94 JUMPI PUSH1 0x13 SLOAD DUP2 GT ISZERO PUSH2 0x1F94 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657220616D6F756E74206578636565647320746865206D617854 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x3C20B6B7BAB73A17 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1FC0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1FD4 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1FEE JUMPI POP PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x202C JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x209C JUMPI PUSH1 0x0 PUSH2 0x203C DUP4 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x14 SLOAD SWAP1 SWAP2 POP PUSH2 0x204C DUP4 DUP4 PUSH2 0x3802 JUMP JUMPDEST GT ISZERO PUSH2 0x209A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45786365656473206D6178696D756D2077616C6C657420616D6F756E74000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x20A7 ADDRESS PUSH2 0x11CD JUMP JUMPDEST SWAP1 POP PUSH1 0x13 SLOAD DUP2 LT PUSH2 0x20B7 JUMPI POP PUSH1 0x13 SLOAD JUMPDEST PUSH1 0x15 SLOAD PUSH1 0x11 SLOAD SWAP1 DUP3 LT ISZERO SWAP1 PUSH1 0x1 PUSH1 0xF8 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x210A JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x2118 JUMPI POP PUSH1 0x12 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2178 JUMPI DUP1 ISZERO PUSH2 0x2131 JUMPI PUSH1 0x15 SLOAD SWAP2 POP PUSH2 0x2131 DUP3 PUSH2 0x2352 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2178 JUMPI SELFBALANCE PUSH8 0xDE0B6B3A7640000 DUP2 GT ISZERO PUSH2 0x2176 JUMPI PUSH1 0x16 SLOAD DUP2 GT ISZERO PUSH2 0x2163 JUMPI POP PUSH1 0x16 SLOAD JUMPDEST PUSH2 0x2176 PUSH2 0x2171 DUP3 PUSH1 0x64 PUSH2 0x1C99 JUMP JUMPDEST PUSH2 0x2577 JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 SWAP1 PUSH1 0xFF AND DUP1 PUSH2 0x21BA JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x21C3 JUMPI POP PUSH1 0x0 JUMPDEST PUSH2 0x21CF DUP7 DUP7 DUP7 DUP5 PUSH2 0x25AD JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x21FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP2 SWAP1 PUSH2 0x373C JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x2208 DUP5 DUP7 PUSH2 0x3880 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x221E PUSH2 0x27CE JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x222D DUP3 DUP3 PUSH2 0x1C99 JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2241 DUP4 DUP6 PUSH2 0x3802 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xCBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x22AA DUP11 PUSH2 0x2950 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x22C8 DUP14 DUP7 DUP7 PUSH2 0x22C3 PUSH2 0x2211 JUMP JUMPDEST PUSH2 0x2992 JUMP JUMPDEST SWAP2 SWAP16 SWAP1 SWAP15 POP SWAP1 SWAP13 POP SWAP6 SWAP11 POP SWAP4 SWAP9 POP SWAP2 SWAP7 POP SWAP3 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBE DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 DUP2 MSTORE POP PUSH2 0x21D7 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH2 0x2345 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP2 SWAP1 PUSH2 0x373C JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x2208 DUP5 DUP7 PUSH2 0x383F JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB AND PUSH1 0x1 PUSH1 0xF8 SHL OR SWAP1 DUP2 SWAP1 SSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL DUP2 DIV PUSH1 0xFF SWAP1 DUP2 AND SWAP2 PUSH4 0x1000000 DUP2 DIV DUP3 AND SWAP2 PUSH2 0x239F SWAP2 PUSH1 0x1 PUSH1 0x38 SHL DUP2 DIV DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x28 SHL SWAP1 SWAP2 DIV AND PUSH2 0x381A JUMP JUMPDEST PUSH2 0x23A9 SWAP2 SWAP1 PUSH2 0x381A JUMP JUMPDEST PUSH2 0x23B3 SWAP2 SWAP1 PUSH2 0x381A JUMP JUMPDEST PUSH1 0x11 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x28 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2412 JUMPI PUSH1 0x11 SLOAD PUSH2 0x23F4 SWAP1 PUSH1 0xFF PUSH1 0x1 PUSH1 0x28 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0x23EE SWAP1 DUP8 SWAP1 DUP8 AND PUSH2 0x1C99 JUMP JUMPDEST SWAP1 PUSH2 0x1C1A JUMP JUMPDEST PUSH1 0x3 SLOAD SWAP1 SWAP3 POP PUSH2 0x240F SWAP1 ADDRESS SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH2 0x29E2 JUMP JUMPDEST POP DUP1 JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 PUSH1 0x38 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2474 JUMPI PUSH1 0x11 SLOAD PUSH2 0x2445 SWAP1 PUSH1 0xFF PUSH1 0x1 PUSH1 0x38 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0x23EE SWAP1 DUP8 SWAP1 DUP8 AND PUSH2 0x1C99 JUMP JUMPDEST SWAP2 POP PUSH2 0x2467 ADDRESS PUSH1 0x11 PUSH1 0xB SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH2 0x29E2 JUMP JUMPDEST PUSH2 0x2471 DUP3 DUP3 PUSH2 0x3802 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x24BF JUMPI PUSH1 0x11 SLOAD PUSH2 0x24A7 SWAP1 PUSH1 0xFF PUSH1 0x1 PUSH1 0x48 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0x23EE SWAP1 DUP8 SWAP1 DUP8 AND PUSH2 0x1C99 JUMP JUMPDEST SWAP2 POP PUSH2 0x24B2 DUP3 PUSH2 0x2B72 JUMP JUMPDEST PUSH2 0x24BC DUP3 DUP3 PUSH2 0x3802 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x11 SLOAD PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2562 JUMPI PUSH2 0x24DB DUP5 DUP3 PUSH2 0x22E2 JUMP JUMPDEST SWAP4 POP PUSH1 0x0 PUSH2 0x24EA DUP6 PUSH1 0x2 PUSH2 0x1C99 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x24F8 DUP7 DUP4 PUSH2 0x22E2 JUMP JUMPDEST SWAP1 POP SELFBALANCE PUSH2 0x2504 DUP4 PUSH2 0x2B72 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2510 SELFBALANCE DUP4 PUSH2 0x22E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x251C DUP4 DUP3 PUSH2 0x2D39 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x17BBFB9A6069321B6DED73BD96327C9E6B7212A5CD51FF219CD61370ACAFB561 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMPDEST POP POP PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB AND PUSH1 0x1 PUSH1 0xF8 SHL OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x259B JUMPI PUSH2 0x259B DUP2 PUSH2 0x2E2E JUMP JUMPDEST POP PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB AND SWAP1 SSTORE JUMP JUMPDEST DUP1 PUSH2 0x25BA JUMPI PUSH2 0x25BA PUSH2 0x2FD3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x25FB JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x2610 JUMPI PUSH2 0x260B DUP5 DUP5 DUP5 PUSH2 0x310F JUMP JUMPDEST PUSH2 0x270E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x2651 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2661 JUMPI PUSH2 0x260B DUP5 DUP5 DUP5 PUSH2 0x3235 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x26A3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x26B3 JUMPI PUSH2 0x260B DUP5 DUP5 DUP5 PUSH2 0x32DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x26F3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2703 JUMPI PUSH2 0x260B DUP5 DUP5 DUP5 PUSH2 0x3322 JUMP JUMPDEST PUSH2 0x270E DUP5 DUP5 DUP5 PUSH2 0x32DE JUMP JUMPDEST DUP1 PUSH2 0x27C8 JUMPI PUSH1 0x11 DUP1 SLOAD PUSH1 0xFF PUSH1 0x48 SHL NOT PUSH8 0xFF00FF0000000000 NOT PUSH4 0xFF00FF00 NOT DUP4 AND PUSH4 0xFF000000 NOT PUSH2 0x100 PUSH3 0x10000 DUP7 DIV PUSH1 0xFF SWAP1 DUP2 AND SWAP2 SWAP1 SWAP2 MUL SWAP2 DUP3 AND SWAP3 SWAP1 SWAP3 OR PUSH5 0x100000000 PUSH2 0xFF00 NOT SWAP1 SWAP7 AND SWAP1 SWAP2 OR SWAP5 SWAP1 SWAP5 DIV DUP2 AND PUSH4 0x1000000 MUL SWAP4 SWAP1 SWAP4 OR SWAP1 DUP2 AND PUSH1 0xFF PUSH1 0x38 SHL NOT PUSH7 0x1000000000000 DUP4 DIV DUP6 AND PUSH1 0x1 PUSH1 0x28 SHL MUL SWAP1 DUP2 AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 PUSH1 0x40 SHL PUSH6 0xFF0000000000 NOT SWAP1 SWAP4 AND SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 DIV DUP4 AND PUSH1 0x1 PUSH1 0x38 SHL MUL OR SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x50 SHL SWAP1 SWAP2 DIV SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x48 SHL MUL OR SWAP1 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xB SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 JUMPDEST PUSH1 0x9 SLOAD DUP2 LT ISZERO PUSH2 0x2920 JUMPI DUP3 PUSH1 0x4 PUSH1 0x0 PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x27FD JUMPI PUSH2 0x27FD PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SLOAD GT DUP1 PUSH2 0x2868 JUMPI POP DUP2 PUSH1 0x5 PUSH1 0x0 PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x2841 JUMPI PUSH2 0x2841 PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SLOAD GT JUMPDEST ISZERO PUSH2 0x287E JUMPI PUSH1 0xC SLOAD PUSH1 0xB SLOAD SWAP5 POP SWAP5 POP POP POP POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x28C4 PUSH1 0x4 PUSH1 0x0 PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x2898 JUMPI PUSH2 0x2898 PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SLOAD DUP5 SWAP1 PUSH2 0x22E2 JUMP JUMPDEST SWAP3 POP PUSH2 0x290C PUSH1 0x5 PUSH1 0x0 PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x28E0 JUMPI PUSH2 0x28E0 PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SLOAD DUP4 SWAP1 PUSH2 0x22E2 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x2918 DUP2 PUSH2 0x38D2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x27DB JUMP JUMPDEST POP PUSH1 0xB SLOAD PUSH1 0xC SLOAD PUSH2 0x2930 SWAP2 PUSH2 0x1C99 JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x2947 JUMPI PUSH1 0xC SLOAD PUSH1 0xB SLOAD SWAP4 POP SWAP4 POP POP POP SWAP1 SWAP2 JUMP JUMPDEST SWAP1 SWAP4 SWAP1 SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x295F DUP6 PUSH2 0x3395 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x296C DUP7 PUSH2 0x33B5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2984 DUP3 PUSH2 0x297E DUP10 DUP7 PUSH2 0x22E2 JUMP JUMPDEST SWAP1 PUSH2 0x22E2 JUMP JUMPDEST SWAP8 SWAP3 SWAP7 POP SWAP1 SWAP5 POP SWAP1 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x29A1 DUP9 DUP7 PUSH2 0x1C1A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x29AF DUP9 DUP8 PUSH2 0x1C1A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x29BD DUP9 DUP9 PUSH2 0x1C1A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x29CF DUP3 PUSH2 0x297E DUP7 DUP7 PUSH2 0x22E2 JUMP JUMPDEST SWAP4 SWAP12 SWAP4 SWAP11 POP SWAP2 SWAP9 POP SWAP2 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29EC PUSH2 0x2211 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x29FA DUP4 DUP4 PUSH2 0x1C1A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x2A20 SWAP1 DUP3 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x2A4F SWAP1 DUP3 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP9 AND DUP2 MSTORE PUSH1 0x8 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2AC0 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2AA6 SWAP1 DUP5 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2B1E JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2B04 SWAP1 DUP5 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP6 PUSH1 0x40 MLOAD PUSH2 0x2B63 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD DUP4 MSTORE PUSH1 0x0 SWAP3 PUSH1 0x20 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP ADDRESS DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2BA7 JUMPI PUSH2 0x2BA7 PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C34 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 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 0x2C58 SWAP2 SWAP1 PUSH2 0x34F5 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x2C6B JUMPI PUSH2 0x2C6B PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP PUSH2 0x2CB6 ADDRESS PUSH32 0x0 DUP5 PUSH2 0x1CDB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x791AC947 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x791AC947 SWAP1 PUSH2 0x2D0B SWAP1 DUP6 SWAP1 PUSH1 0x0 SWAP1 DUP7 SWAP1 ADDRESS SWAP1 TIMESTAMP SWAP1 PUSH1 0x4 ADD PUSH2 0x37C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2D64 ADDRESS PUSH32 0x0 DUP5 PUSH2 0x1CDB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xF305D719 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 PUSH1 0x44 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE TIMESTAMP PUSH1 0xA4 DUP3 ADD MSTORE PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0xF305D719 SWAP1 DUP4 SWAP1 PUSH1 0xC4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E02 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP 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 0x2E27 SWAP2 SWAP1 PUSH2 0x3630 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD DUP4 MSTORE PUSH1 0x0 SWAP3 PUSH1 0x20 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2EBC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 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 0x2EE0 SWAP2 SWAP1 PUSH2 0x34F5 JUMP JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2EF3 JUMPI PUSH2 0x2EF3 PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP ADDRESS DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x2F27 JUMPI PUSH2 0x2F27 PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD ADD MSTORE PUSH1 0x3 SLOAD PUSH32 0x0 DUP3 AND SWAP2 PUSH4 0xB6F9DE95 SWAP2 DUP6 SWAP2 PUSH1 0x0 SWAP2 DUP7 SWAP2 AND PUSH2 0x2F7E TIMESTAMP PUSH2 0x12C PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F9D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3707 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FCA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x2FF5 JUMPI POP PUSH1 0x11 SLOAD PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x300B JUMPI POP PUSH1 0x11 SLOAD PUSH1 0x1 PUSH1 0x28 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x3021 JUMPI POP PUSH1 0x11 SLOAD PUSH1 0x1 PUSH1 0x38 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x3037 JUMPI POP PUSH1 0x11 SLOAD PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x303E JUMPI JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD PUSH11 0xFFFF00FF00FF00FF00FF00 NOT PUSH9 0xFF00FF000000000000 NOT PUSH5 0xFF00FF0000 NOT DUP4 AND PUSH5 0xFF00000000 NOT PUSH2 0x100 DUP6 DIV PUSH1 0xFF SWAP1 DUP2 AND PUSH3 0x10000 MUL SWAP2 DUP3 AND SWAP3 SWAP1 SWAP3 OR PUSH4 0x1000000 PUSH3 0xFF0000 NOT SWAP1 SWAP7 AND SWAP1 SWAP2 OR SWAP5 SWAP1 SWAP5 DIV DUP2 AND PUSH5 0x100000000 MUL SWAP4 SWAP1 SWAP4 OR SWAP1 DUP2 AND PUSH9 0xFF0000000000000000 NOT PUSH1 0x1 PUSH1 0x28 SHL DUP4 DIV DUP6 AND PUSH7 0x1000000000000 MUL SWAP1 DUP2 AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 PUSH1 0x38 SHL PUSH7 0xFF000000000000 NOT SWAP1 SWAP4 AND SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 DIV DUP4 AND PUSH1 0x1 PUSH1 0x40 SHL MUL OR SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x48 SHL SWAP1 SWAP2 DIV SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH10 0xFF00FF00FF00FF00FF00 NOT AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3121 DUP8 PUSH2 0x2293 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP16 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP6 SWAP12 POP SWAP4 SWAP10 POP SWAP2 SWAP8 POP SWAP6 POP SWAP4 POP SWAP2 POP PUSH2 0x3153 SWAP1 DUP9 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x4 SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x3182 SWAP1 DUP8 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP11 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x31B1 SWAP1 DUP7 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x31D3 DUP2 PUSH2 0x3416 JUMP JUMPDEST PUSH2 0x31DD DUP5 DUP4 PUSH2 0x349E JUMP JUMPDEST DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP6 PUSH1 0x40 MLOAD PUSH2 0x3222 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3247 DUP8 PUSH2 0x2293 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP16 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP6 SWAP12 POP SWAP4 SWAP10 POP SWAP2 SWAP8 POP SWAP6 POP SWAP4 POP SWAP2 POP PUSH2 0x3279 SWAP1 DUP8 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP12 AND DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x32AF SWAP1 DUP5 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x4 SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x31B1 SWAP1 DUP7 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x32F0 DUP8 PUSH2 0x2293 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP16 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP6 SWAP12 POP SWAP4 SWAP10 POP SWAP2 SWAP8 POP SWAP6 POP SWAP4 POP SWAP2 POP PUSH2 0x3182 SWAP1 DUP8 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3334 DUP8 PUSH2 0x2293 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP16 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP6 SWAP12 POP SWAP4 SWAP10 POP SWAP2 SWAP8 POP SWAP6 POP SWAP4 POP SWAP2 POP PUSH2 0x3366 SWAP1 DUP9 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x4 SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x3279 SWAP1 DUP8 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xBE0 SWAP1 PUSH1 0x64 SWAP1 PUSH2 0x1321 SWAP1 DUP6 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1C1A JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xBE0 SWAP1 PUSH1 0x64 SWAP1 PUSH2 0x1321 SWAP1 PUSH1 0xFF PUSH1 0x1 PUSH1 0x48 SHL DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x38 SHL DUP2 DIV DUP3 AND SWAP2 PUSH2 0x33F8 SWAP2 PUSH1 0x1 PUSH1 0x28 SHL DUP2 DIV DUP3 AND SWAP2 PUSH4 0x1000000 SWAP1 SWAP2 DIV AND PUSH2 0x381A JUMP JUMPDEST PUSH2 0x3402 SWAP2 SWAP1 PUSH2 0x381A JUMP JUMPDEST PUSH2 0x340C SWAP2 SWAP1 PUSH2 0x381A JUMP JUMPDEST DUP6 SWAP1 PUSH1 0xFF AND PUSH2 0x1C1A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3420 PUSH2 0x2211 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x342E DUP4 DUP4 PUSH2 0x1C1A JUMP JUMPDEST ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x344B SWAP1 DUP3 PUSH2 0x2234 JUMP JUMPDEST ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x8 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x192C JUMPI ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3489 SWAP1 DUP5 PUSH2 0x2234 JUMP JUMPDEST ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x34AB SWAP1 DUP4 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0xC SSTORE PUSH1 0xD SLOAD PUSH2 0x34BB SWAP1 DUP3 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0xD SSTORE POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x34D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x34EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCBE DUP2 PUSH2 0x392F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3507 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCBE DUP2 PUSH2 0x392F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3530 DUP2 PUSH2 0x392F JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3540 DUP2 PUSH2 0x392F JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3560 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x356B DUP2 PUSH2 0x392F JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x357B DUP2 PUSH2 0x392F JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x359F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x35AA DUP2 PUSH2 0x392F JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCBE DUP2 PUSH2 0x3947 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCBE DUP2 PUSH2 0x3947 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x361E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3540 DUP2 PUSH2 0x3947 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3645 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3676 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x367F DUP7 PUSH2 0x34C2 JUMP JUMPDEST SWAP5 POP PUSH2 0x368D PUSH1 0x20 DUP8 ADD PUSH2 0x34C2 JUMP JUMPDEST SWAP4 POP PUSH2 0x369B PUSH1 0x40 DUP8 ADD PUSH2 0x34C2 JUMP JUMPDEST SWAP3 POP PUSH2 0x36A9 PUSH1 0x60 DUP8 ADD PUSH2 0x34C2 JUMP JUMPDEST SWAP2 POP PUSH2 0x36B7 PUSH1 0x80 DUP8 ADD PUSH2 0x34C2 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x36FC JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x36D7 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3720 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x36C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3769 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x374D JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x377B JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST DUP6 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x37E5 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x36C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x3815 JUMPI PUSH2 0x3815 PUSH2 0x38ED JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP5 AND DUP1 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0x3837 JUMPI PUSH2 0x3837 PUSH2 0x38ED JUMP JUMPDEST ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x385C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x387B JUMPI PUSH2 0x387B PUSH2 0x38ED JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3892 JUMPI PUSH2 0x3892 PUSH2 0x38ED JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x38AB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x38CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x38E6 JUMPI PUSH2 0x38E6 PUSH2 0x38ED JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3944 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3944 JUMPI PUSH1 0x0 DUP1 REVERT INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E63658BE0079C531659141344 0xCD 0x1F 0xD0 LOG4 CALLCODE DUP5 NOT 0x49 PUSH32 0x9722A3DAAFE3B4186F6B6457E045524332303A2064656372656173656420616C PUSH13 0x6F77616E63652062656C6F7720 PUSH27 0x65726FA2646970667358221220ECD62A288463A7F3EA80D11D249A 0x28 PUSH17 0x521DE16E9C1384B974150BCC4898272E64 PUSH20 0x6F6C634300080700330000000000000000000000 ",
"sourceMap": "27577:24612:0:-:0;;;27734:57;;;-1:-1:-1;;;;;;28023:38:0;;;;;27829:2;28407:66;;28431:42;-1:-1:-1;;;;;;28407:66:0;;;;;;28717:40;;;-1:-1:-1;;28717:40:0;;;-1:-1:-1;28717:40:0;;;;;;28860:24;;;-1:-1:-1;;;;;;;;;;28980:51:0;;-1:-1:-1;;27804:27:0;27734:57;-1:-1:-1;;28860:24:0;;28923:7;;;28891:39;;28980:51;;;;;;;28943:30;-1:-1:-1;;28943:30:0;;;-1:-1:-1;;28943:30:0;;;;;;;;29018:13;;;;;;28980:51;;;;;;29156:45;;;-1:-1:-1;;;;29040:25:0;-1:-1:-1;;;;29040:25:0;;29105:8;;;29072:41;;29156:45;;;;;;;29122:27;-1:-1:-1;;;;29122:27:0;;;-1:-1:-1;;;;29122:27:0;;;;;;;;29191:10;;;;;;29156:45;;;29245:47;;;29210:28;-1:-1:-1;;;;29210:28:0;;;;29281:11;;;;;;;29245:47;;;;;29469:40;;;;;;;;;;;29689:10;27872:28;29653:46;30039:1312;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19714:17;19757:18;;-1:-1:-1;;;;;;19757:18:0;8478:10;19757:18;;;;;19791:43;;8478:10;;;;19791:43;;19714:17;;19791:43;-1:-1:-1;30295:17:0;;;;:5;;:17;;;;;:::i;:::-;-1:-1:-1;30323:21:0;;;;:7;;:21;;;;;:::i;:::-;-1:-1:-1;30355:9:0;:19;;-1:-1:-1;;30355:19:0;;;;;;;30385:7;:26;;;30440:13;30385:26;-1:-1:-1;;30440:13:0;:::i;:::-;30433:21;;-1:-1:-1;;30433:21:0;:::i;:::-;30422:7;:33;;;-1:-1:-1;;;;;30476:19:0;;;;;;;:7;:19;;;;;;;;:29;;;;30518:9;:22;;;;;;;-1:-1:-1;;;;;;;;30518:22:0;;;;;;;;;:9;30578:7;:58;;30620:5;;30578:23;;;;;;:11;;;;;:23;;:::i;:::-;:27;;;;;;:58;;;;:::i;:::-;30563:12;:73;;;;30666:62;30712:5;30666:27;30678:14;30666:27;;:7;;:11;;;;;;:27;;;;:::i;:62::-;30647:16;:81;30781:33;30809:4;30781:23;:16;30802:1;30781:20;;;;;;;:23;;:::i;:33::-;30749:29;:65;30888:6;;30993:22;;;-1:-1:-1;;;30993:22:0;;;;-1:-1:-1;;;;;30888:6:0;;;;;;30993:20;;:22;;;;;;;;;;;;;;30888:6;30993:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;30975:66:0;;31050:4;31057:12;-1:-1:-1;;;;;31057:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30975:102;;-1:-1:-1;;;;;;30975:102:0;;;;;;;-1:-1:-1;;;;;2502:15:1;;;30975:102:0;;;2484:34:1;2554:15;;2534:18;;;2527:43;2419:18;;30975:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30963:114;;;;-1:-1:-1;;;;;;30963:114:0;;;;;31141:26;;;;;;;-1:-1:-1;;;;;31188:30:0;;;;;;:18;-1:-1:-1;31188:30:0;;;;;;;:37;;31221:4;-1:-1:-1;;31188:37:0;;;;;;;;31263:4;31236:33;;;;;:40;;;;;;;;;;31335:7;;31302:41;;3517:25:1;;;31302:41:0;;3490:18:1;31302:41:0;;;;;;;30270:1081;30039:1312;;;;;;;;27577:24612;;5103:471;5161:7;5406:6;5402:47;;-1:-1:-1;5436:1:0;5429:8;;5402:47;5461:9;5473:5;5477:1;5473;:5;:::i;:::-;5461:17;-1:-1:-1;5506:1:0;5497:5;5501:1;5461:17;5497:5;:::i;:::-;:10;5489:56;;;;-1:-1:-1;;;5489:56:0;;3171:2:1;5489:56:0;;;3153:21:1;3210:2;3190:18;;;3183:30;3249:34;3229:18;;;3222:62;-1:-1:-1;;;3300:18:1;;;3293:31;3341:19;;5489:56:0;;;;;;;;;5565:1;-1:-1:-1;5103:471:0;;;;;:::o;6083:132::-;6141:7;6168:39;6172:1;6175;6168:39;;;;;;;;;;;;;;;;;:3;;;:39;;:::i;6744:278::-;6830:7;6865:12;6858:5;6850:28;;;;-1:-1:-1;;;6850:28:0;;;;;;;;:::i;:::-;-1:-1:-1;6889:9:0;6901:5;6905:1;6901;:5;:::i;:::-;6889:17;6744:278;-1:-1:-1;;;;;6744:278:0:o;27577:24612::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27577:24612:0;;;-1:-1:-1;27577:24612:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:686:1;68:5;121:3;114:4;106:6;102:17;98:27;88:55;;139:1;136;129:12;88:55;162:13;;-1:-1:-1;;;;;224:10:1;;;221:36;;;237:18;;:::i;:::-;312:2;306:9;280:2;366:13;;-1:-1:-1;;362:22:1;;;386:2;358:31;354:40;342:53;;;410:18;;;430:22;;;407:46;404:72;;;456:18;;:::i;:::-;496:10;492:2;485:22;531:2;523:6;516:18;577:3;570:4;565:2;557:6;553:15;549:26;546:35;543:55;;;594:1;591;584:12;543:55;607:63;667:2;660:4;652:6;648:17;641:4;633:6;629:17;607:63;:::i;:::-;688:6;14:686;-1:-1:-1;;;;;;14:686:1:o;705:160::-;782:13;;835:4;824:16;;814:27;;804:55;;855:1;852;845:12;804:55;705:160;;;:::o;870:251::-;940:6;993:2;981:9;972:7;968:23;964:32;961:52;;;1009:1;1006;999:12;961:52;1041:9;1035:16;1060:31;1085:5;1060:31;:::i;1126:1141::-;1281:6;1289;1297;1305;1313;1321;1329;1337;1390:3;1378:9;1369:7;1365:23;1361:33;1358:53;;;1407:1;1404;1397:12;1358:53;1439:9;1433:16;1458:31;1483:5;1458:31;:::i;:::-;1557:2;1542:18;;1536:25;1508:5;;-1:-1:-1;;;;;;1610:14:1;;;1607:34;;;1637:1;1634;1627:12;1607:34;1660:61;1713:7;1704:6;1693:9;1689:22;1660:61;:::i;:::-;1650:71;;1767:2;1756:9;1752:18;1746:25;1730:41;;1796:2;1786:8;1783:16;1780:36;;;1812:1;1809;1802:12;1780:36;;1835:63;1890:7;1879:8;1868:9;1864:24;1835:63;:::i;:::-;1825:73;;;1917:47;1960:2;1949:9;1945:18;1917:47;:::i;:::-;1907:57;;2004:3;1993:9;1989:19;1983:26;1973:36;;2028:48;2071:3;2060:9;2056:19;2028:48;:::i;:::-;2018:58;;2095:48;2138:3;2127:9;2123:19;2095:48;:::i;:::-;2085:58;;2188:3;2177:9;2173:19;2167:26;2202:33;2227:7;2202:33;:::i;:::-;2254:7;2244:17;;;1126:1141;;;;;;;;;;;:::o;2581:383::-;2730:2;2719:9;2712:21;2693:4;2762:6;2756:13;2805:6;2800:2;2789:9;2785:18;2778:34;2821:66;2880:6;2875:2;2864:9;2860:18;2855:2;2847:6;2843:15;2821:66;:::i;:::-;2948:2;2927:15;-1:-1:-1;;2923:29:1;2908:45;;;;2955:2;2904:54;;2581:383;-1:-1:-1;;2581:383:1:o;3553:120::-;3593:1;3619;3609:35;;3624:18;;:::i;:::-;-1:-1:-1;3658:9:1;;3553:120::o;3678:168::-;3718:7;3784:1;3780;3776:6;3772:14;3769:1;3766:21;3761:1;3754:9;3747:17;3743:45;3740:71;;;3791:18;;:::i;:::-;-1:-1:-1;3831:9:1;;3678:168::o;3851:125::-;3891:4;3919:1;3916;3913:8;3910:34;;;3924:18;;:::i;:::-;-1:-1:-1;3961:9:1;;3851:125::o;3981:258::-;4053:1;4063:113;4077:6;4074:1;4071:13;4063:113;;;4153:11;;;4147:18;4134:11;;;4127:39;4099:2;4092:10;4063:113;;;4194:6;4191:1;4188:13;4185:48;;;4229:1;4220:6;4215:3;4211:16;4204:27;4185:48;;3981:258;;;:::o;4244:380::-;4323:1;4319:12;;;;4366;;;4387:61;;4441:4;4433:6;4429:17;4419:27;;4387:61;4494:2;4486:6;4483:14;4463:18;4460:38;4457:161;;;4540:10;4535:3;4531:20;4528:1;4521:31;4575:4;4572:1;4565:15;4603:4;4600:1;4593:15;4457:161;;4244:380;;;:::o;4629:112::-;4661:1;4687;4677:35;;4692:18;;:::i;:::-;-1:-1:-1;4726:9:1;;4629:112::o;4746:127::-;4807:10;4802:3;4798:20;4795:1;4788:31;4838:4;4835:1;4828:15;4862:4;4859:1;4852:15;4878:127;4939:10;4934:3;4930:20;4927:1;4920:31;4970:4;4967:1;4960:15;4994:4;4991:1;4984:15;5010:127;5071:10;5066:3;5062:20;5059:1;5052:31;5102:4;5099:1;5092:15;5126:4;5123:1;5116:15;5142:131;-1:-1:-1;;;;;5217:31:1;;5207:42;;5197:70;;5263:1;5260;5253:12;5197:70;5142:131;:::o;:::-;27577:24612:0;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_2350": {
"entryPoint": null,
"id": 2350,
"parameterSlots": 0,
"returnSlots": 0
},
"@_approve_2865": {
"entryPoint": 7387,
"id": 2865,
"parameterSlots": 3,
"returnSlots": 0
},
"@_burnFee_1450": {
"entryPoint": null,
"id": 1450,
"parameterSlots": 0,
"returnSlots": 0
},
"@_buybackFee_1462": {
"entryPoint": null,
"id": 1462,
"parameterSlots": 0,
"returnSlots": 0
},
"@_getCurrentSupply_2619": {
"entryPoint": 10190,
"id": 2619,
"parameterSlots": 0,
"returnSlots": 2
},
"@_getRValues_2515": {
"entryPoint": 10642,
"id": 2515,
"parameterSlots": 4,
"returnSlots": 3
},
"@_getRate_2533": {
"entryPoint": 8721,
"id": 2533,
"parameterSlots": 0,
"returnSlots": 1
},
"@_getTValues_2461": {
"entryPoint": 10576,
"id": 2461,
"parameterSlots": 1,
"returnSlots": 3
},
"@_getValues_2422": {
"entryPoint": 8851,
"id": 2422,
"parameterSlots": 1,
"returnSlots": 6
},
"@_liquidityFee_1444": {
"entryPoint": null,
"id": 1444,
"parameterSlots": 0,
"returnSlots": 0
},
"@_maxTxAmount_1479": {
"entryPoint": null,
"id": 1479,
"parameterSlots": 0,
"returnSlots": 0
},
"@_maxWalletAmount_1481": {
"entryPoint": null,
"id": 1481,
"parameterSlots": 0,
"returnSlots": 0
},
"@_msgSender_284": {
"entryPoint": null,
"id": 284,
"parameterSlots": 0,
"returnSlots": 1
},
"@_name_1431": {
"entryPoint": 5794,
"id": 1431,
"parameterSlots": 0,
"returnSlots": 0
},
"@_reflectFee_2372": {
"entryPoint": 13470,
"id": 2372,
"parameterSlots": 2,
"returnSlots": 0
},
"@_symbol_1433": {
"entryPoint": 5539,
"id": 1433,
"parameterSlots": 0,
"returnSlots": 0
},
"@_tTotal_1422": {
"entryPoint": null,
"id": 1422,
"parameterSlots": 0,
"returnSlots": 0
},
"@_takeLiquidity_2678": {
"entryPoint": 13334,
"id": 2678,
"parameterSlots": 1,
"returnSlots": 0
},
"@_taxFee_1438": {
"entryPoint": null,
"id": 1438,
"parameterSlots": 0,
"returnSlots": 0
},
"@_tokenTransferNoFee_3874": {
"entryPoint": 10722,
"id": 3874,
"parameterSlots": 3,
"returnSlots": 0
},
"@_tokenTransfer_3496": {
"entryPoint": 9645,
"id": 3496,
"parameterSlots": 4,
"returnSlots": 0
},
"@_transferBothExcluded_3792": {
"entryPoint": 13090,
"id": 3792,
"parameterSlots": 3,
"returnSlots": 0
},
"@_transferFromExcluded_3707": {
"entryPoint": 12559,
"id": 3707,
"parameterSlots": 3,
"returnSlots": 0
},
"@_transferStandard_3559": {
"entryPoint": 13022,
"id": 3559,
"parameterSlots": 3,
"returnSlots": 0
},
"@_transferToExcluded_3633": {
"entryPoint": 12853,
"id": 3633,
"parameterSlots": 3,
"returnSlots": 0
},
"@_transfer_3069": {
"entryPoint": 7656,
"id": 3069,
"parameterSlots": 3,
"returnSlots": 0
},
"@_walletFee_1456": {
"entryPoint": null,
"id": 1456,
"parameterSlots": 0,
"returnSlots": 0
},
"@addLiquidity_3401": {
"entryPoint": 11577,
"id": 3401,
"parameterSlots": 2,
"returnSlots": 0
},
"@add_102": {
"entryPoint": 8756,
"id": 102,
"parameterSlots": 2,
"returnSlots": 1
},
"@allowance_1749": {
"entryPoint": null,
"id": 1749,
"parameterSlots": 2,
"returnSlots": 1
},
"@approve_1769": {
"entryPoint": 3023,
"id": 1769,
"parameterSlots": 2,
"returnSlots": 1
},
"@balanceOf_1712": {
"entryPoint": 4557,
"id": 1712,
"parameterSlots": 1,
"returnSlots": 1
},
"@buyBackTokens_3255": {
"entryPoint": 9591,
"id": 3255,
"parameterSlots": 1,
"returnSlots": 0
},
"@buyBackUpperLimitAmount_2230": {
"entryPoint": null,
"id": 2230,
"parameterSlots": 0,
"returnSlots": 1
},
"@calculateLiquidityFee_2720": {
"entryPoint": 13237,
"id": 2720,
"parameterSlots": 1,
"returnSlots": 1
},
"@calculateTaxFee_2696": {
"entryPoint": 13205,
"id": 2696,
"parameterSlots": 1,
"returnSlots": 1
},
"@decimals_1680": {
"entryPoint": null,
"id": 1680,
"parameterSlots": 0,
"returnSlots": 1
},
"@decreaseAllowance_1861": {
"entryPoint": 5166,
"id": 1861,
"parameterSlots": 2,
"returnSlots": 1
},
"@deliver_1931": {
"entryPoint": 3749,
"id": 1931,
"parameterSlots": 1,
"returnSlots": 0
},
"@div_199": {
"entryPoint": 7321,
"id": 199,
"parameterSlots": 2,
"returnSlots": 1
},
"@div_227": {
"entryPoint": 8996,
"id": 227,
"parameterSlots": 3,
"returnSlots": 1
},
"@excludeFromFee_2117": {
"entryPoint": 3983,
"id": 2117,
"parameterSlots": 1,
"returnSlots": 0
},
"@excludeFromReward_2039": {
"entryPoint": 4202,
"id": 2039,
"parameterSlots": 1,
"returnSlots": 0
},
"@feeWallet_1472": {
"entryPoint": null,
"id": 1472,
"parameterSlots": 0,
"returnSlots": 0
},
"@geUnlockTime_829": {
"entryPoint": null,
"id": 829,
"parameterSlots": 0,
"returnSlots": 1
},
"@includeInFee_2131": {
"entryPoint": 6093,
"id": 2131,
"parameterSlots": 1,
"returnSlots": 0
},
"@includeInReward_2103": {
"entryPoint": 3269,
"id": 2103,
"parameterSlots": 1,
"returnSlots": 0
},
"@increaseAllowance_1833": {
"entryPoint": 3695,
"id": 1833,
"parameterSlots": 2,
"returnSlots": 1
},
"@isExcludedFromFee_2821": {
"entryPoint": null,
"id": 2821,
"parameterSlots": 1,
"returnSlots": 1
},
"@isExcludedFromReward_1873": {
"entryPoint": null,
"id": 1873,
"parameterSlots": 1,
"returnSlots": 1
},
"@lock_863": {
"entryPoint": 5960,
"id": 863,
"parameterSlots": 1,
"returnSlots": 0
},
"@maxBurnFee_1373": {
"entryPoint": null,
"id": 1373,
"parameterSlots": 0,
"returnSlots": 0
},
"@maxBuybackFee_1379": {
"entryPoint": null,
"id": 1379,
"parameterSlots": 0,
"returnSlots": 0
},
"@maxLiqFee_1367": {
"entryPoint": null,
"id": 1367,
"parameterSlots": 0,
"returnSlots": 0
},
"@maxTaxFee_1370": {
"entryPoint": null,
"id": 1370,
"parameterSlots": 0,
"returnSlots": 0
},
"@maxWalletFee_1376": {
"entryPoint": null,
"id": 1376,
"parameterSlots": 0,
"returnSlots": 0
},
"@minMxTxPercentage_1382": {
"entryPoint": null,
"id": 1382,
"parameterSlots": 0,
"returnSlots": 0
},
"@minMxWalletPercentage_1385": {
"entryPoint": null,
"id": 1385,
"parameterSlots": 0,
"returnSlots": 0
},
"@mintedByCryptoCravers_1429": {
"entryPoint": null,
"id": 1429,
"parameterSlots": 0,
"returnSlots": 0
},
"@mul_182": {
"entryPoint": 7194,
"id": 182,
"parameterSlots": 2,
"returnSlots": 1
},
"@name_1664": {
"entryPoint": 2877,
"id": 1664,
"parameterSlots": 0,
"returnSlots": 1
},
"@numTokensSellToAddToLiquidity_1483": {
"entryPoint": null,
"id": 1483,
"parameterSlots": 0,
"returnSlots": 0
},
"@owner_758": {
"entryPoint": null,
"id": 758,
"parameterSlots": 0,
"returnSlots": 1
},
"@pcsV2Pair_1470": {
"entryPoint": null,
"id": 1470,
"parameterSlots": 0,
"returnSlots": 0
},
"@pcsV2Router_1468": {
"entryPoint": null,
"id": 1468,
"parameterSlots": 0,
"returnSlots": 0
},
"@recoverBEP20_3903": {
"entryPoint": 6168,
"id": 3903,
"parameterSlots": 2,
"returnSlots": 0
},
"@reflectionFromToken_1969": {
"entryPoint": 4061,
"id": 1969,
"parameterSlots": 2,
"returnSlots": 1
},
"@removeAllFee_2785": {
"entryPoint": 12243,
"id": 2785,
"parameterSlots": 0,
"returnSlots": 0
},
"@renounceOwnership_793": {
"entryPoint": 4652,
"id": 793,
"parameterSlots": 0,
"returnSlots": 0
},
"@restoreAllFee_2809": {
"entryPoint": null,
"id": 2809,
"parameterSlots": 0,
"returnSlots": 0
},
"@router_1413": {
"entryPoint": null,
"id": 1413,
"parameterSlots": 0,
"returnSlots": 0
},
"@setAllFeePercent_2222": {
"entryPoint": 6665,
"id": 2222,
"parameterSlots": 5,
"returnSlots": 0
},
"@setBuybackUpperLimit_2246": {
"entryPoint": 4909,
"id": 2246,
"parameterSlots": 1,
"returnSlots": 0
},
"@setFeeWallet_2346": {
"entryPoint": 4975,
"id": 2346,
"parameterSlots": 1,
"returnSlots": 0
},
"@setMaxTxPercent_2277": {
"entryPoint": 5807,
"id": 2277,
"parameterSlots": 1,
"returnSlots": 0
},
"@setMaxWalletPercent_2308": {
"entryPoint": 4750,
"id": 2308,
"parameterSlots": 1,
"returnSlots": 0
},
"@setSwapAndLiquifyEnabled_2324": {
"entryPoint": 5681,
"id": 2324,
"parameterSlots": 1,
"returnSlots": 0
},
"@sub_119": {
"entryPoint": 8930,
"id": 119,
"parameterSlots": 2,
"returnSlots": 1
},
"@sub_147": {
"entryPoint": 8663,
"id": 147,
"parameterSlots": 3,
"returnSlots": 1
},
"@swapAndLiquifyEnabled_1477": {
"entryPoint": null,
"id": 1477,
"parameterSlots": 0,
"returnSlots": 0
},
"@swapAndLiquify_3238": {
"entryPoint": 9042,
"id": 3238,
"parameterSlots": 1,
"returnSlots": 0
},
"@swapBNBForTokens_3364": {
"entryPoint": 11822,
"id": 3364,
"parameterSlots": 1,
"returnSlots": 0
},
"@swapTokensForBNB_3315": {
"entryPoint": 11122,
"id": 3315,
"parameterSlots": 1,
"returnSlots": 0
},
"@symbol_1672": {
"entryPoint": 5151,
"id": 1672,
"parameterSlots": 0,
"returnSlots": 1
},
"@tokenFromReflection_1994": {
"entryPoint": 3151,
"id": 1994,
"parameterSlots": 1,
"returnSlots": 1
},
"@totalFees_1881": {
"entryPoint": null,
"id": 1881,
"parameterSlots": 0,
"returnSlots": 1
},
"@totalSupply_1689": {
"entryPoint": null,
"id": 1689,
"parameterSlots": 0,
"returnSlots": 1
},
"@transferFrom_1806": {
"entryPoint": 3046,
"id": 1806,
"parameterSlots": 3,
"returnSlots": 1
},
"@transferOwnership_821": {
"entryPoint": 6449,
"id": 821,
"parameterSlots": 1,
"returnSlots": 0
},
"@transfer_1732": {
"entryPoint": 5526,
"id": 1732,
"parameterSlots": 2,
"returnSlots": 1
},
"@unlock_892": {
"entryPoint": 5245,
"id": 892,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_tuple_t_address": {
"entryPoint": 13528,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address_fromMemory": {
"entryPoint": 13557,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address_payable": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_address": {
"entryPoint": 13586,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_addresst_uint256": {
"entryPoint": 13643,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 13708,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_bool": {
"entryPoint": 13752,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bool_fromMemory": {
"entryPoint": 13781,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 13810,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_bool": {
"entryPoint": 13835,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory": {
"entryPoint": 13872,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_uint8t_uint8t_uint8t_uint8t_uint8": {
"entryPoint": 13918,
"id": null,
"parameterSlots": 2,
"returnSlots": 5
},
"abi_decode_uint8": {
"entryPoint": 13506,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_array_address_dyn": {
"entryPoint": 14019,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256_t_rational_0_by_1_t_rational_0_by_1_t_address_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256_t_address_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 7,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_contract$_IUniswapV2Router02_$1345__to_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_rational_0_by_1_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__to_t_uint256_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 14087,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14140,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_0a150a59f942022a5a44bdaaeb69d3ee25ccc0cd5ebd413e29589f8e44033604__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_0ccc31ad4f25ab8975c23164f21fc6d7b1f3b19f5592fbe63b70a4f6f9c44e4f__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_0d40e284ffd055bd8840f191ed1f02dce82bb38fb1f4dbb23f78f7078eddb4cf__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_2051c6991296c0c60bcba3f53f03e44690fdd1eb5b30a5cc77344e1e2153b904__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_2989bbad43d512502fee71d9f296ddb4a84ac6be9e39d77d07ad87c08e1337ce__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_367728d6f44731c16c559c0217fff6d163e627732494d917a99a19fd59fa9611__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_39c6e0b8942859654c1b57b03db22f0a853699ba56dec1f2e7b469fc5f799f0c__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_43b0e660ad101df55bfb849ee72141c43ba8ea700e3967a0486bb4b215d9daba__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_44cf7dee57eb32df978678dff225a43aa862593bab772765d55e55e02ae21e5c__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_593b493ab8c2bec350c206dc58fc75ffac084af98edec4f38464690d86293c00__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_66396a07fa8344d81b812cfe3bea3e63cf5a5f15b46663d05f60f8e8a2326e51__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_693968cc8483aee141c429c686274dd12f5a917a7c541b486d2ebc0ad56fd77b__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_72052210969ce5fd88e52b5e685de9548acef9bb1b6d02e29c1765d0674948dd__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14225,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_99bff3441bc269354c96b34031f9d42a77cbae10e0bb5477e27d043990841981__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9edb5ab58321f35d2386ea65721c9b107daa2c273610fc16d394af2a320ba785__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_a8f48bf52d5a96a70f3d52ca1a2b0c88f3923a03d9deba051fdb4d3b3f01e1a1__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_adf93d141dbe7cff7d72e75578bf90784ed3760db271ddf89fdff418ee330bfd__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_cb99ad4e768a50aa355acec00dfedbf03b752ba865bb2dd9fc45b6e7362a7baa__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_da5b84b361fa05a4f3af909679698c341f1c059578e88700626ca2887a222e3b__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_daa7a83ac0ecc6a136d3bf55312ce4851f0dcdce22538ff9e09ae0e42e666b03__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_ecefcaf5fbcf9ca6dcdb02298ba1da96f4ead317b0a4779917ecb2e5e7dc3ac4__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_f2e3946af51d005de1814b7ef535f243c51e9dce3219c71605f658a5a46bd4a4__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_rational_0_by_1_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__to_t_uint256_t_uint256_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 14278,
"id": null,
"parameterSlots": 6,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 14338,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint8": {
"entryPoint": 14362,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_div_t_uint256": {
"entryPoint": 14399,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 14433,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 14464,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 14487,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"increment_t_uint256": {
"entryPoint": 14546,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 14573,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x31": {
"entryPoint": 14595,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 14617,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_address": {
"entryPoint": 14639,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_bool": {
"entryPoint": 14663,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:20218:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "61:109:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "71:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "93:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "80:12:1"
},
"nodeType": "YulFunctionCall",
"src": "80:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "71:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "148:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "157:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "160:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "150:6:1"
},
"nodeType": "YulFunctionCall",
"src": "150:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "150:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "122:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "133:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "140:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "129:3:1"
},
"nodeType": "YulFunctionCall",
"src": "129:16:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "119:2:1"
},
"nodeType": "YulFunctionCall",
"src": "119:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "112:6:1"
},
"nodeType": "YulFunctionCall",
"src": "112:35:1"
},
"nodeType": "YulIf",
"src": "109:55:1"
}
]
},
"name": "abi_decode_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "51:5:1",
"type": ""
}
],
"src": "14:156:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "245:177:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "291:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "300:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "303:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "293:6:1"
},
"nodeType": "YulFunctionCall",
"src": "293:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "293:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "266:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "275:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "262:3:1"
},
"nodeType": "YulFunctionCall",
"src": "262:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "287:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "258:3:1"
},
"nodeType": "YulFunctionCall",
"src": "258:32:1"
},
"nodeType": "YulIf",
"src": "255:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "316:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "342:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "329:12:1"
},
"nodeType": "YulFunctionCall",
"src": "329:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "320:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "386:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "361:24:1"
},
"nodeType": "YulFunctionCall",
"src": "361:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "361:31:1"
},
{
"nodeType": "YulAssignment",
"src": "401:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "411:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "401:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "211:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "222:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "234:6:1",
"type": ""
}
],
"src": "175:247:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "508:170:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "554:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "563:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "566:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "556:6:1"
},
"nodeType": "YulFunctionCall",
"src": "556:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "556:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "529:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "538:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "525:3:1"
},
"nodeType": "YulFunctionCall",
"src": "525:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "550:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "521:3:1"
},
"nodeType": "YulFunctionCall",
"src": "521:32:1"
},
"nodeType": "YulIf",
"src": "518:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "579:29:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "598:9:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "592:5:1"
},
"nodeType": "YulFunctionCall",
"src": "592:16:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "583:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "642:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "617:24:1"
},
"nodeType": "YulFunctionCall",
"src": "617:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "617:31:1"
},
{
"nodeType": "YulAssignment",
"src": "657:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "667:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "657:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "474:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "485:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "497:6:1",
"type": ""
}
],
"src": "427:251:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "761:177:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "807:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "816:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "819:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "809:6:1"
},
"nodeType": "YulFunctionCall",
"src": "809:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "809:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "782:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "791:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "778:3:1"
},
"nodeType": "YulFunctionCall",
"src": "778:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "803:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "774:3:1"
},
"nodeType": "YulFunctionCall",
"src": "774:32:1"
},
"nodeType": "YulIf",
"src": "771:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "832:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "858:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "845:12:1"
},
"nodeType": "YulFunctionCall",
"src": "845:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "836:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "902:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "877:24:1"
},
"nodeType": "YulFunctionCall",
"src": "877:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "877:31:1"
},
{
"nodeType": "YulAssignment",
"src": "917:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "927:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "917:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "727:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "738:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "750:6:1",
"type": ""
}
],
"src": "683:255:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1030:301:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1076:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1085:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1088:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1078:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1078:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1078:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1051:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1060:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1047:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1047:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1072:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1043:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1043:32:1"
},
"nodeType": "YulIf",
"src": "1040:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1101:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1127:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1114:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1114:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1105:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1171:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "1146:24:1"
},
"nodeType": "YulFunctionCall",
"src": "1146:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "1146:31:1"
},
{
"nodeType": "YulAssignment",
"src": "1186:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1196:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1186:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1210:47:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1242:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1253:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1238:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1238:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1225:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1225:32:1"
},
"variables": [
{
"name": "value_1",
"nodeType": "YulTypedName",
"src": "1214:7:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value_1",
"nodeType": "YulIdentifier",
"src": "1291:7:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "1266:24:1"
},
"nodeType": "YulFunctionCall",
"src": "1266:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1266:33:1"
},
{
"nodeType": "YulAssignment",
"src": "1308:17:1",
"value": {
"name": "value_1",
"nodeType": "YulIdentifier",
"src": "1318:7:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1308:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "988:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "999:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1011:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1019:6:1",
"type": ""
}
],
"src": "943:388:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1440:352:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1486:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1495:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1498:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1488:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1488:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1488:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1461:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1470:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1457:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1457:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1482:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1453:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1453:32:1"
},
"nodeType": "YulIf",
"src": "1450:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1511:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1537:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1524:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1524:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1515:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1581:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "1556:24:1"
},
"nodeType": "YulFunctionCall",
"src": "1556:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "1556:31:1"
},
{
"nodeType": "YulAssignment",
"src": "1596:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1606:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1596:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1620:47:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1652:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1663:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1648:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1648:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1635:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1635:32:1"
},
"variables": [
{
"name": "value_1",
"nodeType": "YulTypedName",
"src": "1624:7:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value_1",
"nodeType": "YulIdentifier",
"src": "1701:7:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "1676:24:1"
},
"nodeType": "YulFunctionCall",
"src": "1676:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1676:33:1"
},
{
"nodeType": "YulAssignment",
"src": "1718:17:1",
"value": {
"name": "value_1",
"nodeType": "YulIdentifier",
"src": "1728:7:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1718:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1744:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1771:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1782:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1767:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1767:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1754:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1754:32:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "1744:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1390:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1401:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1413:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1421:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "1429:6:1",
"type": ""
}
],
"src": "1336:456:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1884:228:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1930:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1939:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1942:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1932:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1932:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1932:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1905:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1914:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1901:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1901:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1926:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1897:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1897:32:1"
},
"nodeType": "YulIf",
"src": "1894:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1955:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1981:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1968:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1968:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1959:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2025:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "2000:24:1"
},
"nodeType": "YulFunctionCall",
"src": "2000:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "2000:31:1"
},
{
"nodeType": "YulAssignment",
"src": "2040:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2050:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2040:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2064:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2091:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2102:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2087:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2087:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2074:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2074:32:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2064:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1842:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1853:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1865:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1873:6:1",
"type": ""
}
],
"src": "1797:315:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2184:174:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2230:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2239:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2242:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2232:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2232:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2232:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2205:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2214:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2201:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2201:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2226:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2197:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2197:32:1"
},
"nodeType": "YulIf",
"src": "2194:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2255:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2281:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2268:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2268:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2259:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2322:5:1"
}
],
"functionName": {
"name": "validator_revert_bool",
"nodeType": "YulIdentifier",
"src": "2300:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2300:28:1"
},
"nodeType": "YulExpressionStatement",
"src": "2300:28:1"
},
{
"nodeType": "YulAssignment",
"src": "2337:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2347:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2337:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2150:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2161:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2173:6:1",
"type": ""
}
],
"src": "2117:241:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2441:167:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2487:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2496:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2499:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2489:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2489:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2489:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2462:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2471:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2458:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2458:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2483:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2454:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2454:32:1"
},
"nodeType": "YulIf",
"src": "2451:52:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2512:29:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2531:9:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2525:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2525:16:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2516:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2572:5:1"
}
],
"functionName": {
"name": "validator_revert_bool",
"nodeType": "YulIdentifier",
"src": "2550:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2550:28:1"
},
"nodeType": "YulExpressionStatement",
"src": "2550:28:1"
},
{
"nodeType": "YulAssignment",
"src": "2587:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2597:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2587:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_bool_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2407:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2418:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2430:6:1",
"type": ""
}
],
"src": "2363:245:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2683:110:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2729:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2738:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2741:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2731:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2731:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2731:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2704:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2713:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2700:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2700:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2725:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2696:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2696:32:1"
},
"nodeType": "YulIf",
"src": "2693:52:1"
},
{
"nodeType": "YulAssignment",
"src": "2754:33:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2777:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2764:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2764:23:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2754:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2649:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2660:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2672:6:1",
"type": ""
}
],
"src": "2613:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2882:225:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2928:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2937:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2940:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2930:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2930:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2930:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2903:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2912:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2899:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2899:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2924:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2895:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2895:32:1"
},
"nodeType": "YulIf",
"src": "2892:52:1"
},
{
"nodeType": "YulAssignment",
"src": "2953:33:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2976:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2963:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2963:23:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2953:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2995:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3025:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3036:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3021:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3021:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3008:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3008:32:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2999:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3071:5:1"
}
],
"functionName": {
"name": "validator_revert_bool",
"nodeType": "YulIdentifier",
"src": "3049:21:1"
},
"nodeType": "YulFunctionCall",
"src": "3049:28:1"
},
"nodeType": "YulExpressionStatement",
"src": "3049:28:1"
},
{
"nodeType": "YulAssignment",
"src": "3086:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "3096:5:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3086:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2840:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2851:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2863:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2871:6:1",
"type": ""
}
],
"src": "2798:309:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3227:191:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3273:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3282:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3285:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3275:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3275:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3275:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3248:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3257:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3244:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3244:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3269:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3240:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3240:32:1"
},
"nodeType": "YulIf",
"src": "3237:52:1"
},
{
"nodeType": "YulAssignment",
"src": "3298:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3314:9:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3308:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3308:16:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3298:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3333:35:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3353:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3364:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3349:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3349:18:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3343:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3343:25:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3333:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3377:35:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3397:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3408:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3393:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3393:18:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3387:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3387:25:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3377:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3177:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3188:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3200:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3208:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "3216:6:1",
"type": ""
}
],
"src": "3112:306:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3551:336:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3598:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3607:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3610:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3600:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3600:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3600:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3572:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3581:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3568:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3568:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3593:3:1",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3564:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3564:33:1"
},
"nodeType": "YulIf",
"src": "3561:53:1"
},
{
"nodeType": "YulAssignment",
"src": "3623:37:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3650:9:1"
}
],
"functionName": {
"name": "abi_decode_uint8",
"nodeType": "YulIdentifier",
"src": "3633:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3633:27:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3623:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3669:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3700:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3711:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3696:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3696:18:1"
}
],
"functionName": {
"name": "abi_decode_uint8",
"nodeType": "YulIdentifier",
"src": "3679:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3679:36:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3669:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3724:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3755:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3766:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3751:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3751:18:1"
}
],
"functionName": {
"name": "abi_decode_uint8",
"nodeType": "YulIdentifier",
"src": "3734:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3734:36:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3724:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3779:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3810:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3821:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3806:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3806:18:1"
}
],
"functionName": {
"name": "abi_decode_uint8",
"nodeType": "YulIdentifier",
"src": "3789:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3789:36:1"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "3779:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3834:47:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3865:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3876:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3861:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3861:19:1"
}
],
"functionName": {
"name": "abi_decode_uint8",
"nodeType": "YulIdentifier",
"src": "3844:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3844:37:1"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "3834:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint8t_uint8t_uint8t_uint8t_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3485:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3496:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3508:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3516:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "3524:6:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "3532:6:1",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "3540:6:1",
"type": ""
}
],
"src": "3423:464:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3953:400:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3963:26:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3983:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3977:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3977:12:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3967:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4005:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4010:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3998:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3998:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "3998:19:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4026:14:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4036:4:1",
"type": "",
"value": "0x20"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "4030:2:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4049:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4060:3:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "4065:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4056:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4056:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4049:3:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4077:28:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4095:5:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "4102:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4091:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4091:14:1"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "4081:6:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4114:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4123:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "4118:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4182:146:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4203:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "4218:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4212:5:1"
},
"nodeType": "YulFunctionCall",
"src": "4212:13:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4235:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4240:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "4231:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4231:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4244:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4227:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4227:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4208:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4208:39:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4196:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4196:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "4196:52:1"
},
{
"nodeType": "YulAssignment",
"src": "4261:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4272:3:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "4277:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4268:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4268:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4261:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4293:25:1",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "4307:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "4315:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4303:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4303:15:1"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "4293:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4144:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4147:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4141:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4141:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "4155:18:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4157:14:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4166:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4169:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4162:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4162:9:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4157:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "4137:3:1",
"statements": []
},
"src": "4133:195:1"
},
{
"nodeType": "YulAssignment",
"src": "4337:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4344:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4337:3:1"
}
]
}
]
},
"name": "abi_encode_array_address_dyn",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3930:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3937:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3945:3:1",
"type": ""
}
],
"src": "3892:461:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4459:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4469:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4481:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4492:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4477:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4477:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4469:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4511:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4526:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4542:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4547:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "4538:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4538:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4551:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4534:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4534:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4522:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4522:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4504:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4504:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "4504:51:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4428:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4439:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4450:4:1",
"type": ""
}
],
"src": "4358:203:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4683:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4693:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4705:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4716:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4701:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4701:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4693:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4735:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4750:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4766:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4771:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "4762:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4762:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4775:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4758:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4758:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4746:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4746:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4728:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4728:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "4728:51:1"
}
]
},
"name": "abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4652:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4663:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4674:4:1",
"type": ""
}
],
"src": "4566:219:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4919:145:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4929:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4941:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4952:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4937:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4937:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4929:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4971:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4986:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5002:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5007:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "4998:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4998:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5011:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4994:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4994:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4982:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4982:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4964:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4964:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "4964:51:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5035:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5046:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5031:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5031:18:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5051:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5024:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5024:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "5024:34:1"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4880:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "4891:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4899:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4910:4:1",
"type": ""
}
],
"src": "4790:274:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5326:350:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5336:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5348:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5359:3:1",
"type": "",
"value": "192"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5344:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5344:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5336:4:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "5372:29:1",
"value": {
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5390:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5395:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "5386:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5386:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5399:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5382:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5382:19:1"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "5376:2:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5417:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5432:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "5440:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5428:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5428:15:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5410:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5410:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "5410:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5464:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5475:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5460:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5460:18:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5480:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5453:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5453:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "5453:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5507:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5518:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5503:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5503:18:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "5523:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5496:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5496:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "5496:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5550:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5561:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5546:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5546:18:1"
},
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "5566:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5539:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5539:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "5539:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5593:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5604:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5589:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5589:19:1"
},
{
"arguments": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "5614:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "5622:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5610:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5610:15:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5582:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5582:44:1"
},
"nodeType": "YulExpressionStatement",
"src": "5582:44:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5646:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5657:3:1",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5642:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5642:19:1"
},
{
"name": "value5",
"nodeType": "YulIdentifier",
"src": "5663:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5635:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5635:35:1"
},
"nodeType": "YulExpressionStatement",
"src": "5635:35:1"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_rational_0_by_1_t_rational_0_by_1_t_address_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5255:9:1",
"type": ""
},
{
"name": "value5",
"nodeType": "YulTypedName",
"src": "5266:6:1",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "5274:6:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "5282:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5290:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5298:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5306:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5317:4:1",
"type": ""
}
],
"src": "5069:607:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5776:92:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5786:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5798:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5809:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5794:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5794:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5786:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5828:9:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5853:6:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5846:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5846:14:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5839:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5839:22:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5821:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5821:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "5821:41:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5745:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5756:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5767:4:1",
"type": ""
}
],
"src": "5681:187:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6001:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6011:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6023:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6034:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6019:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6019:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6011:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6053:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6068:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6084:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6089:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "6080:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6080:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6093:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6076:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6076:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "6064:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6064:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6046:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6046:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "6046:51:1"
}
]
},
"name": "abi_encode_tuple_t_contract$_IUniswapV2Router02_$1345__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5970:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5981:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5992:4:1",
"type": ""
}
],
"src": "5873:230:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6351:267:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6368:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6379:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6361:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6361:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "6361:25:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6406:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6417:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6402:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6402:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6422:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6395:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6395:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "6395:31:1"
},
{
"nodeType": "YulAssignment",
"src": "6435:65:1",
"value": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "6472:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6484:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6495:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6480:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6480:19:1"
}
],
"functionName": {
"name": "abi_encode_array_address_dyn",
"nodeType": "YulIdentifier",
"src": "6443:28:1"
},
"nodeType": "YulFunctionCall",
"src": "6443:57:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6435:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6520:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6531:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6516:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6516:18:1"
},
{
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6540:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6556:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6561:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "6552:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6552:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6565:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6548:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6548:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "6536:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6536:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6509:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6509:60:1"
},
"nodeType": "YulExpressionStatement",
"src": "6509:60:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6589:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6600:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6585:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6585:18:1"
},
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "6605:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6578:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6578:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "6578:34:1"
}
]
},
"name": "abi_encode_tuple_t_rational_0_by_1_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__to_t_uint256_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6296:9:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "6307:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "6315:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "6323:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6331:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6342:4:1",
"type": ""
}
],
"src": "6108:510:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6744:476:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6754:12:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6764:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "6758:2:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6782:9:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "6793:2:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6775:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6775:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "6775:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "6805:27:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6825:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "6819:5:1"
},
"nodeType": "YulFunctionCall",
"src": "6819:13:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6809:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6852:9:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "6863:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6848:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6848:18:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6868:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6841:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6841:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "6841:34:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "6884:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6893:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "6888:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6953:90:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6982:9:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "6993:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6978:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6978:17:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6997:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6974:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6974:26:1"
},
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "7016:6:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7024:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7012:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7012:14:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "7028:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7008:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7008:23:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "7002:5:1"
},
"nodeType": "YulFunctionCall",
"src": "7002:30:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6967:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6967:66:1"
},
"nodeType": "YulExpressionStatement",
"src": "6967:66:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "6914:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6917:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "6911:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6911:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "6925:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6927:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "6936:1:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "6939:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6932:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6932:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "6927:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "6907:3:1",
"statements": []
},
"src": "6903:140:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7077:66:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7106:9:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7117:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7102:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7102:22:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7126:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7098:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7098:31:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7131:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7091:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7091:42:1"
},
"nodeType": "YulExpressionStatement",
"src": "7091:42:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7058:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7061:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "7055:2:1"
},
"nodeType": "YulFunctionCall",
"src": "7055:13:1"
},
"nodeType": "YulIf",
"src": "7052:91:1"
},
{
"nodeType": "YulAssignment",
"src": "7152:62:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7168:9:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7187:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7195:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7183:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7183:15:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7204:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "7200:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7200:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7179:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7179:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7164:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7164:45:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7211:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7160:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7160:54:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7152:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6713:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6724:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6735:4:1",
"type": ""
}
],
"src": "6623:597:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7399:180:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7416:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7427:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7409:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7409:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7409:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7450:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7461:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7446:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7446:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7466:2:1",
"type": "",
"value": "30"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7439:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7439:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "7439:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7489:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7500:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7485:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7485:18:1"
},
{
"hexValue": "45524332303a20617070726f766520746f207a65726f2061646472657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7505:32:1",
"type": "",
"value": "ERC20: approve to zero address"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7478:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7478:60:1"
},
"nodeType": "YulExpressionStatement",
"src": "7478:60:1"
},
{
"nodeType": "YulAssignment",
"src": "7547:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7559:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7570:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7555:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7555:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7547:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_0a150a59f942022a5a44bdaaeb69d3ee25ccc0cd5ebd413e29589f8e44033604__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7376:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7390:4:1",
"type": ""
}
],
"src": "7225:354:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7758:229:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7775:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7786:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7768:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7768:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7768:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7809:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7820:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7805:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7805:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7825:2:1",
"type": "",
"value": "39"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7798:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7798:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "7798:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7848:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7859:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7844:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7844:18:1"
},
{
"hexValue": "4163636f756e7420697320616c7265616479206578636c756465642066726f6d",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7864:34:1",
"type": "",
"value": "Account is already excluded from"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7837:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7837:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "7837:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7919:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7930:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7915:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7915:18:1"
},
{
"hexValue": "20726577617264",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7935:9:1",
"type": "",
"value": " reward"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7908:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7908:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "7908:37:1"
},
{
"nodeType": "YulAssignment",
"src": "7954:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7966:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7977:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7962:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7962:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7954:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_0ccc31ad4f25ab8975c23164f21fc6d7b1f3b19f5592fbe63b70a4f6f9c44e4f__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7735:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7749:4:1",
"type": ""
}
],
"src": "7584:403:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8166:178:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8183:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8194:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8176:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8176:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8176:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8217:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8228:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8213:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8213:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8233:2:1",
"type": "",
"value": "28"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8206:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8206:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8206:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8256:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8267:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8252:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8252:18:1"
},
{
"hexValue": "416d74206d757374206265206c657373207468616e20737570706c79",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8272:30:1",
"type": "",
"value": "Amt must be less than supply"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8245:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8245:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "8245:58:1"
},
{
"nodeType": "YulAssignment",
"src": "8312:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8324:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8335:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8320:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8320:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8312:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_0d40e284ffd055bd8840f191ed1f02dce82bb38fb1f4dbb23f78f7078eddb4cf__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8143:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8157:4:1",
"type": ""
}
],
"src": "7992:352:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8523:155:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8540:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8551:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8533:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8533:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8533:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8574:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8585:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8570:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8570:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8590:1:1",
"type": "",
"value": "6"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8563:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8563:29:1"
},
"nodeType": "YulExpressionStatement",
"src": "8563:29:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8612:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8623:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8608:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8608:18:1"
},
{
"hexValue": "574620657272",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8628:8:1",
"type": "",
"value": "WF err"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8601:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8601:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "8601:36:1"
},
{
"nodeType": "YulAssignment",
"src": "8646:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8658:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8669:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8654:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8654:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8646:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_2051c6991296c0c60bcba3f53f03e44690fdd1eb5b30a5cc77344e1e2153b904__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8500:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8514:4:1",
"type": ""
}
],
"src": "8349:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8857:228:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8874:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8885:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8867:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8867:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8867:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8908:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8919:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8904:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8904:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8924:2:1",
"type": "",
"value": "38"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8897:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8897:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8897:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8947:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8958:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8943:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8943:18:1"
},
{
"hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8963:34:1",
"type": "",
"value": "Ownable: new owner is the zero a"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8936:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8936:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "8936:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9018:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9029:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9014:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9014:18:1"
},
{
"hexValue": "646472657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "9034:8:1",
"type": "",
"value": "ddress"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9007:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9007:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "9007:36:1"
},
{
"nodeType": "YulAssignment",
"src": "9052:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9064:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9075:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9060:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9060:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9052:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8834:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8848:4:1",
"type": ""
}
],
"src": "8683:402:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9264:155:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9281:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9292:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9274:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9274:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "9274:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9315:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9326:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9311:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9311:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9331:1:1",
"type": "",
"value": "6"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9304:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9304:29:1"
},
"nodeType": "YulExpressionStatement",
"src": "9304:29:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9353:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9364:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9349:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9349:18:1"
},
{
"hexValue": "424620657272",
"kind": "string",
"nodeType": "YulLiteral",
"src": "9369:8:1",
"type": "",
"value": "BF err"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9342:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9342:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "9342:36:1"
},
{
"nodeType": "YulAssignment",
"src": "9387:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9399:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9410:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9395:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9395:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9387:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_2989bbad43d512502fee71d9f296ddb4a84ac6be9e39d77d07ad87c08e1337ce__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9241:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9255:4:1",
"type": ""
}
],
"src": "9090:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9598:177:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9615:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9626:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9608:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9608:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "9608:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9649:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9660:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9645:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9645:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9665:2:1",
"type": "",
"value": "27"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9638:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9638:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "9638:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9688:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9699:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9684:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9684:18:1"
},
{
"hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77",
"kind": "string",
"nodeType": "YulLiteral",
"src": "9704:29:1",
"type": "",
"value": "SafeMath: addition overflow"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9677:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9677:57:1"
},
"nodeType": "YulExpressionStatement",
"src": "9677:57:1"
},
{
"nodeType": "YulAssignment",
"src": "9743:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9755:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9766:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9751:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9751:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9743:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9575:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9589:4:1",
"type": ""
}
],
"src": "9424:351:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9954:223:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9971:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9982:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9964:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9964:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "9964:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10005:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10016:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10001:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10001:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10021:2:1",
"type": "",
"value": "33"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9994:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9994:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "9994:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10044:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10055:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10040:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10040:18:1"
},
{
"hexValue": "45524332303a207472616e736665722066726f6d207a65726f20616464726573",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10060:34:1",
"type": "",
"value": "ERC20: transfer from zero addres"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10033:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10033:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "10033:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10115:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10126:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10111:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10111:18:1"
},
{
"hexValue": "73",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10131:3:1",
"type": "",
"value": "s"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10104:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10104:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "10104:31:1"
},
{
"nodeType": "YulAssignment",
"src": "10144:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10156:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10167:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10152:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10152:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10144:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_367728d6f44731c16c559c0217fff6d163e627732494d917a99a19fd59fa9611__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9931:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9945:4:1",
"type": ""
}
],
"src": "9780:397:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10356:155:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10373:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10384:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10366:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10366:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "10366:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10407:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10418:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10403:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10403:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10423:1:1",
"type": "",
"value": "6"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10396:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10396:29:1"
},
"nodeType": "YulExpressionStatement",
"src": "10396:29:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10445:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10456:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10441:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10441:18:1"
},
{
"hexValue": "544620657272",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10461:8:1",
"type": "",
"value": "TF err"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10434:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10434:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "10434:36:1"
},
{
"nodeType": "YulAssignment",
"src": "10479:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10491:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10502:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10487:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10487:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10479:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_39c6e0b8942859654c1b57b03db22f0a853699ba56dec1f2e7b469fc5f799f0c__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10333:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10347:4:1",
"type": ""
}
],
"src": "10182:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10690:155:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10707:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10718:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10700:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10700:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "10700:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10741:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10752:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10737:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10737:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10757:1:1",
"type": "",
"value": "6"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10730:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10730:29:1"
},
"nodeType": "YulExpressionStatement",
"src": "10730:29:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10779:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10790:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10775:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10775:18:1"
},
{
"hexValue": "4c4620657272",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10795:8:1",
"type": "",
"value": "LF err"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10768:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10768:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "10768:36:1"
},
{
"nodeType": "YulAssignment",
"src": "10813:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10825:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10836:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10821:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10821:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10813:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_43b0e660ad101df55bfb849ee72141c43ba8ea700e3967a0486bb4b215d9daba__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10667:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10681:4:1",
"type": ""
}
],
"src": "10516:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11024:163:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11041:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11052:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11034:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11034:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "11034:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11075:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11086:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11071:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11071:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11091:2:1",
"type": "",
"value": "13"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11064:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11064:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "11064:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11114:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11125:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11110:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11110:18:1"
},
{
"hexValue": "53656c66207769746864726177",
"kind": "string",
"nodeType": "YulLiteral",
"src": "11130:15:1",
"type": "",
"value": "Self withdraw"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11103:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11103:43:1"
},
"nodeType": "YulExpressionStatement",
"src": "11103:43:1"
},
{
"nodeType": "YulAssignment",
"src": "11155:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11167:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11178:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11163:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11163:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11155:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_44cf7dee57eb32df978678dff225a43aa862593bab772765d55e55e02ae21e5c__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11001:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11015:4:1",
"type": ""
}
],
"src": "10850:337:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11366:181:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11383:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11394:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11376:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11376:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "11376:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11417:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11428:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11413:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11413:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11433:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11406:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11406:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "11406:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11456:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11467:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11452:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11452:18:1"
},
{
"hexValue": "45524332303a207472616e7366657220746f207a65726f2061646472657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "11472:33:1",
"type": "",
"value": "ERC20: transfer to zero address"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11445:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11445:61:1"
},
"nodeType": "YulExpressionStatement",
"src": "11445:61:1"
},
{
"nodeType": "YulAssignment",
"src": "11515:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11527:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11538:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11523:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11523:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11515:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_593b493ab8c2bec350c206dc58fc75ffac084af98edec4f38464690d86293c00__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11343:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11357:4:1",
"type": ""
}
],
"src": "11192:355:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11726:166:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11743:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11754:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11736:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11736:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "11736:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11777:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11788:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11773:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11773:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11793:2:1",
"type": "",
"value": "16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11766:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11766:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "11766:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11816:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11827:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11812:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11812:18:1"
},
{
"hexValue": "416c7265616479206578636c75646564",
"kind": "string",
"nodeType": "YulLiteral",
"src": "11832:18:1",
"type": "",
"value": "Already excluded"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11805:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11805:46:1"
},
"nodeType": "YulExpressionStatement",
"src": "11805:46:1"
},
{
"nodeType": "YulAssignment",
"src": "11860:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11872:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11883:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11868:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11868:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11860:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_66396a07fa8344d81b812cfe3bea3e63cf5a5f15b46663d05f60f8e8a2326e51__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11703:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11717:4:1",
"type": ""
}
],
"src": "11552:340:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12071:180:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12088:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12099:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12081:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12081:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "12081:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12122:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12133:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12118:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12118:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12138:2:1",
"type": "",
"value": "30"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12111:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12111:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "12111:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12161:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12172:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12157:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12157:18:1"
},
{
"hexValue": "416d74206d757374206265206c657373207468616e20746f74207265666c",
"kind": "string",
"nodeType": "YulLiteral",
"src": "12177:32:1",
"type": "",
"value": "Amt must be less than tot refl"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12150:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12150:60:1"
},
"nodeType": "YulExpressionStatement",
"src": "12150:60:1"
},
{
"nodeType": "YulAssignment",
"src": "12219:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12231:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12242:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12227:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12227:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "12219:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_693968cc8483aee141c429c686274dd12f5a917a7c541b486d2ebc0ad56fd77b__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "12048:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "12062:4:1",
"type": ""
}
],
"src": "11897:354:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12430:230:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12447:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12458:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12440:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12440:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "12440:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12481:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12492:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12477:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12477:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12497:2:1",
"type": "",
"value": "40"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12470:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12470:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "12470:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12520:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12531:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12516:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12516:18:1"
},
{
"hexValue": "5472616e7366657220616d6f756e74206578636565647320746865206d617854",
"kind": "string",
"nodeType": "YulLiteral",
"src": "12536:34:1",
"type": "",
"value": "Transfer amount exceeds the maxT"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12509:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12509:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "12509:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12591:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12602:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12587:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12587:18:1"
},
{
"hexValue": "78416d6f756e742e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "12607:10:1",
"type": "",
"value": "xAmount."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12580:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12580:38:1"
},
"nodeType": "YulExpressionStatement",
"src": "12580:38:1"
},
{
"nodeType": "YulAssignment",
"src": "12627:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12639:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12650:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12635:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12635:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "12627:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_72052210969ce5fd88e52b5e685de9548acef9bb1b6d02e29c1765d0674948dd__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "12407:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "12421:4:1",
"type": ""
}
],
"src": "12256:404:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12839:223:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12856:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12867:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12849:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12849:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "12849:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12890:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12901:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12886:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12886:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12906:2:1",
"type": "",
"value": "33"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12879:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12879:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "12879:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12929:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12940:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12925:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12925:18:1"
},
{
"hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f",
"kind": "string",
"nodeType": "YulLiteral",
"src": "12945:34:1",
"type": "",
"value": "SafeMath: multiplication overflo"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12918:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12918:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "12918:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13000:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13011:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12996:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12996:18:1"
},
{
"hexValue": "77",
"kind": "string",
"nodeType": "YulLiteral",
"src": "13016:3:1",
"type": "",
"value": "w"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12989:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12989:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "12989:31:1"
},
{
"nodeType": "YulAssignment",
"src": "13029:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13041:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13052:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13037:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13037:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "13029:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "12816:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "12830:4:1",
"type": ""
}
],
"src": "12665:397:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13241:182:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13258:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13269:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13251:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13251:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "13251:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13292:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13303:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13288:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13288:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13308:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13281:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13281:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "13281:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13331:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13342:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13327:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13327:18:1"
},
{
"hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "13347:34:1",
"type": "",
"value": "Ownable: caller is not the owner"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13320:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13320:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "13320:62:1"
},
{
"nodeType": "YulAssignment",
"src": "13391:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13403:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13414:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13399:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13399:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "13391:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "13218:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "13232:4:1",
"type": ""
}
],
"src": "13067:356:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13602:179:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13619:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13630:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13612:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13612:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "13612:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13653:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13664:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13649:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13649:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13669:2:1",
"type": "",
"value": "29"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13642:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13642:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "13642:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13692:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13703:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13688:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13688:18:1"
},
{
"hexValue": "45786365656473206d6178696d756d2077616c6c657420616d6f756e74",
"kind": "string",
"nodeType": "YulLiteral",
"src": "13708:31:1",
"type": "",
"value": "Exceeds maximum wallet amount"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13681:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13681:59:1"
},
"nodeType": "YulExpressionStatement",
"src": "13681:59:1"
},
{
"nodeType": "YulAssignment",
"src": "13749:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13761:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13772:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13757:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13757:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "13749:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_99bff3441bc269354c96b34031f9d42a77cbae10e0bb5477e27d043990841981__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "13579:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "13593:4:1",
"type": ""
}
],
"src": "13428:353:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13960:231:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13977:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13988:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13970:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13970:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "13970:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14011:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14022:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14007:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14007:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14027:2:1",
"type": "",
"value": "41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14000:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14000:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "14000:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14050:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14061:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14046:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14046:18:1"
},
{
"hexValue": "5472616e7366657220616d6f756e74206d757374206265206772656174657220",
"kind": "string",
"nodeType": "YulLiteral",
"src": "14066:34:1",
"type": "",
"value": "Transfer amount must be greater "
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14039:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14039:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "14039:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14121:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14132:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14117:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14117:18:1"
},
{
"hexValue": "7468616e207a65726f",
"kind": "string",
"nodeType": "YulLiteral",
"src": "14137:11:1",
"type": "",
"value": "than zero"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14110:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14110:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "14110:39:1"
},
{
"nodeType": "YulAssignment",
"src": "14158:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14170:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14181:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14166:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14166:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "14158:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9edb5ab58321f35d2386ea65721c9b107daa2c273610fc16d394af2a320ba785__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "13937:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "13951:4:1",
"type": ""
}
],
"src": "13786:405:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14370:156:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14387:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14398:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14380:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14380:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "14380:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14421:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14432:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14417:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14417:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14437:1:1",
"type": "",
"value": "7"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14410:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14410:29:1"
},
"nodeType": "YulExpressionStatement",
"src": "14410:29:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14459:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14470:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14455:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14455:18:1"
},
{
"hexValue": "42424620657272",
"kind": "string",
"nodeType": "YulLiteral",
"src": "14475:9:1",
"type": "",
"value": "BBF err"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14448:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14448:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "14448:37:1"
},
{
"nodeType": "YulAssignment",
"src": "14494:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14506:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14517:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14502:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14502:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "14494:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_a8f48bf52d5a96a70f3d52ca1a2b0c88f3923a03d9deba051fdb4d3b3f01e1a1__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "14347:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "14361:4:1",
"type": ""
}
],
"src": "14196:330:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14705:162:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14722:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14733:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14715:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14715:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "14715:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14756:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14767:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14752:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14752:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14772:2:1",
"type": "",
"value": "12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14745:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14745:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "14745:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14795:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14806:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14791:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14791:18:1"
},
{
"hexValue": "5a45524f2041444452455353",
"kind": "string",
"nodeType": "YulLiteral",
"src": "14811:14:1",
"type": "",
"value": "ZERO ADDRESS"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14784:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14784:42:1"
},
"nodeType": "YulExpressionStatement",
"src": "14784:42:1"
},
{
"nodeType": "YulAssignment",
"src": "14835:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14847:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14858:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14843:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14843:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "14835:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_adf93d141dbe7cff7d72e75578bf90784ed3760db271ddf89fdff418ee330bfd__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "14682:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "14696:4:1",
"type": ""
}
],
"src": "14531:336:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15046:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15063:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15074:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15056:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15056:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "15056:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15097:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15108:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15093:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15093:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15113:1:1",
"type": "",
"value": "3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15086:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15086:29:1"
},
"nodeType": "YulExpressionStatement",
"src": "15086:29:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15135:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15146:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15131:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15131:18:1"
},
{
"hexValue": "657272",
"kind": "string",
"nodeType": "YulLiteral",
"src": "15151:5:1",
"type": "",
"value": "err"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15124:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15124:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "15124:33:1"
},
{
"nodeType": "YulAssignment",
"src": "15166:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15178:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15189:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15174:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15174:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "15166:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_cb99ad4e768a50aa355acec00dfedbf03b752ba865bb2dd9fc45b6e7362a7baa__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "15023:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "15037:4:1",
"type": ""
}
],
"src": "14872:326:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15377:181:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15394:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15405:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15387:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15387:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "15387:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15428:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15439:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15424:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15424:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15444:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15417:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15417:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "15417:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15467:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15478:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15463:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15463:18:1"
},
{
"hexValue": "436f6e7472616374206973206c6f636b656420756e74696c20372064617973",
"kind": "string",
"nodeType": "YulLiteral",
"src": "15483:33:1",
"type": "",
"value": "Contract is locked until 7 days"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15456:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15456:61:1"
},
"nodeType": "YulExpressionStatement",
"src": "15456:61:1"
},
{
"nodeType": "YulAssignment",
"src": "15526:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15538:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15549:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15534:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15534:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "15526:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_da5b84b361fa05a4f3af909679698c341f1c059578e88700626ca2887a222e3b__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "15354:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "15368:4:1",
"type": ""
}
],
"src": "15203:355:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15737:244:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15754:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15765:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15747:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15747:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "15747:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15788:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15799:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15784:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15784:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15804:2:1",
"type": "",
"value": "54"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15777:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15777:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "15777:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15827:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15838:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15823:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15823:18:1"
},
{
"hexValue": "596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c",
"kind": "string",
"nodeType": "YulLiteral",
"src": "15843:34:1",
"type": "",
"value": "You don't have permission to unl"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15816:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15816:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "15816:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15898:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15909:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15894:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15894:18:1"
},
{
"hexValue": "6f636b2074686520746f6b656e20636f6e7472616374",
"kind": "string",
"nodeType": "YulLiteral",
"src": "15914:24:1",
"type": "",
"value": "ock the token contract"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15887:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15887:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "15887:52:1"
},
{
"nodeType": "YulAssignment",
"src": "15948:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15960:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15971:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15956:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15956:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "15948:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_daa7a83ac0ecc6a136d3bf55312ce4851f0dcdce22538ff9e09ae0e42e666b03__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "15714:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "15728:4:1",
"type": ""
}
],
"src": "15563:418:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16160:234:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16177:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16188:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16170:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16170:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "16170:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16211:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16222:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16207:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16207:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16227:2:1",
"type": "",
"value": "44"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16200:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16200:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "16200:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16250:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16261:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16246:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16246:18:1"
},
{
"hexValue": "4578636c75646564206164647265737365732063616e6e6f742063616c6c2074",
"kind": "string",
"nodeType": "YulLiteral",
"src": "16266:34:1",
"type": "",
"value": "Excluded addresses cannot call t"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16239:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16239:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "16239:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16321:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16332:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16317:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16317:18:1"
},
{
"hexValue": "6869732066756e6374696f6e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "16337:14:1",
"type": "",
"value": "his function"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16310:42:1"
},
"nodeType": "YulExpressionStatement",
"src": "16310:42:1"
},
{
"nodeType": "YulAssignment",
"src": "16361:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16373:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16384:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16369:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16369:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "16361:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_ecefcaf5fbcf9ca6dcdb02298ba1da96f4ead317b0a4779917ecb2e5e7dc3ac4__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "16137:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "16151:4:1",
"type": ""
}
],
"src": "15986:408:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16573:182:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16590:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16601:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16583:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16583:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "16583:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16624:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16635:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16620:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16620:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16640:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16613:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16613:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "16613:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16663:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16674:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16659:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16659:18:1"
},
{
"hexValue": "45524332303a20617070726f76652066726f6d207a65726f2061646472657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "16679:34:1",
"type": "",
"value": "ERC20: approve from zero address"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16652:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16652:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "16652:62:1"
},
{
"nodeType": "YulAssignment",
"src": "16723:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16735:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16746:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16731:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16731:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "16723:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_f2e3946af51d005de1814b7ef535f243c51e9dce3219c71605f658a5a46bd4a4__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "16550:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "16564:4:1",
"type": ""
}
],
"src": "16399:356:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16861:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "16871:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16883:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16894:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16879:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16879:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "16871:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16913:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "16924:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16906:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16906:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "16906:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "16830:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "16841:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "16852:4:1",
"type": ""
}
],
"src": "16760:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17213:311:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17230:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "17241:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "17223:6:1"
},
"nodeType": "YulFunctionCall",
"src": "17223:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "17223:25:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17268:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17279:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17264:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17264:18:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "17284:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "17257:6:1"
},
"nodeType": "YulFunctionCall",
"src": "17257:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "17257:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17311:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17322:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17307:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17307:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17327:3:1",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "17300:6:1"
},
"nodeType": "YulFunctionCall",
"src": "17300:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "17300:31:1"
},
{
"nodeType": "YulAssignment",
"src": "17340:65:1",
"value": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "17377:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17389:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17400:3:1",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17385:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17385:19:1"
}
],
"functionName": {
"name": "abi_encode_array_address_dyn",
"nodeType": "YulIdentifier",
"src": "17348:28:1"
},
"nodeType": "YulFunctionCall",
"src": "17348:57:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "17340:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17425:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17436:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17421:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17421:18:1"
},
{
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "17445:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17461:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17466:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "17457:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17457:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17470:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "17453:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17453:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "17441:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17441:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "17414:6:1"
},
"nodeType": "YulFunctionCall",
"src": "17414:60:1"
},
"nodeType": "YulExpressionStatement",
"src": "17414:60:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17494:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17505:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17490:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17490:19:1"
},
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "17511:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "17483:6:1"
},
"nodeType": "YulFunctionCall",
"src": "17483:35:1"
},
"nodeType": "YulExpressionStatement",
"src": "17483:35:1"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_rational_0_by_1_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__to_t_uint256_t_uint256_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "17150:9:1",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "17161:6:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "17169:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "17177:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "17185:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "17193:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "17204:4:1",
"type": ""
}
],
"src": "16942:582:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17686:162:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17696:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17708:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17719:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17704:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17704:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "17696:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17738:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "17749:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "17731:6:1"
},
"nodeType": "YulFunctionCall",
"src": "17731:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "17731:25:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17776:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17787:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17772:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17772:18:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "17792:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "17765:6:1"
},
"nodeType": "YulFunctionCall",
"src": "17765:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "17765:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17819:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17830:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17815:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17815:18:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "17835:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "17808:6:1"
},
"nodeType": "YulFunctionCall",
"src": "17808:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "17808:34:1"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "17639:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "17650:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "17658:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "17666:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "17677:4:1",
"type": ""
}
],
"src": "17529:319:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17950:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17960:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17972:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17983:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17968:3:1"
},
"nodeType": "YulFunctionCall",
"src": "17968:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "17960:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "18002:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "18017:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18025:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "18013:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18013:17:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "17995:6:1"
},
"nodeType": "YulFunctionCall",
"src": "17995:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "17995:36:1"
}
]
},
"name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "17919:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "17930:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "17941:4:1",
"type": ""
}
],
"src": "17853:184:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18090:80:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "18117:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "18119:16:1"
},
"nodeType": "YulFunctionCall",
"src": "18119:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "18119:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "18106:1:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "18113:1:1"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "18109:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18109:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "18103:2:1"
},
"nodeType": "YulFunctionCall",
"src": "18103:13:1"
},
"nodeType": "YulIf",
"src": "18100:39:1"
},
{
"nodeType": "YulAssignment",
"src": "18148:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "18159:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "18162:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18155:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18155:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "18148:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "18073:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "18076:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "18082:3:1",
"type": ""
}
],
"src": "18042:128:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18221:158:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "18231:23:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "18246:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18249:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "18242:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18242:12:1"
},
"variables": [
{
"name": "x_1",
"nodeType": "YulTypedName",
"src": "18235:3:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "18263:23:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "18278:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18281:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "18274:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18274:12:1"
},
"variables": [
{
"name": "y_1",
"nodeType": "YulTypedName",
"src": "18267:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "18322:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "18324:16:1"
},
"nodeType": "YulFunctionCall",
"src": "18324:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "18324:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x_1",
"nodeType": "YulIdentifier",
"src": "18301:3:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18310:4:1",
"type": "",
"value": "0xff"
},
{
"name": "y_1",
"nodeType": "YulIdentifier",
"src": "18316:3:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "18306:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18306:14:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "18298:2:1"
},
"nodeType": "YulFunctionCall",
"src": "18298:23:1"
},
"nodeType": "YulIf",
"src": "18295:49:1"
},
{
"nodeType": "YulAssignment",
"src": "18353:20:1",
"value": {
"arguments": [
{
"name": "x_1",
"nodeType": "YulIdentifier",
"src": "18364:3:1"
},
{
"name": "y_1",
"nodeType": "YulIdentifier",
"src": "18369:3:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18360:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18360:13:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "18353:3:1"
}
]
}
]
},
"name": "checked_add_t_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "18204:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "18207:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "18213:3:1",
"type": ""
}
],
"src": "18175:204:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18430:171:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "18461:111:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18482:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18489:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18494:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "18485:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18485:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "18475:6:1"
},
"nodeType": "YulFunctionCall",
"src": "18475:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "18475:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18526:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18529:4:1",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "18519:6:1"
},
"nodeType": "YulFunctionCall",
"src": "18519:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "18519:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18554:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18557:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "18547:6:1"
},
"nodeType": "YulFunctionCall",
"src": "18547:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "18547:15:1"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "18450:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "18443:6:1"
},
"nodeType": "YulFunctionCall",
"src": "18443:9:1"
},
"nodeType": "YulIf",
"src": "18440:132:1"
},
{
"nodeType": "YulAssignment",
"src": "18581:14:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "18590:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "18593:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "18586:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18586:9:1"
},
"variableNames": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "18581:1:1"
}
]
}
]
},
"name": "checked_div_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "18415:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "18418:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nodeType": "YulTypedName",
"src": "18424:1:1",
"type": ""
}
],
"src": "18384:217:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18658:116:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "18717:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "18719:16:1"
},
"nodeType": "YulFunctionCall",
"src": "18719:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "18719:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "18689:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "18682:6:1"
},
"nodeType": "YulFunctionCall",
"src": "18682:9:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "18675:6:1"
},
"nodeType": "YulFunctionCall",
"src": "18675:17:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "18697:1:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18708:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "18704:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18704:6:1"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "18712:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "18700:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18700:14:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "18694:2:1"
},
"nodeType": "YulFunctionCall",
"src": "18694:21:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "18671:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18671:45:1"
},
"nodeType": "YulIf",
"src": "18668:71:1"
},
{
"nodeType": "YulAssignment",
"src": "18748:20:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "18763:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "18766:1:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "18759:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18759:9:1"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "18748:7:1"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "18637:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "18640:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "18646:7:1",
"type": ""
}
],
"src": "18606:168:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18828:76:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "18850:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "18852:16:1"
},
"nodeType": "YulFunctionCall",
"src": "18852:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "18852:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "18844:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "18847:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "18841:2:1"
},
"nodeType": "YulFunctionCall",
"src": "18841:8:1"
},
"nodeType": "YulIf",
"src": "18838:34:1"
},
{
"nodeType": "YulAssignment",
"src": "18881:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "18893:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "18896:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "18889:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18889:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "18881:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "18810:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "18813:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "18819:4:1",
"type": ""
}
],
"src": "18779:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18964:325:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "18974:22:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18988:1:1",
"type": "",
"value": "1"
},
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "18991:4:1"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "18984:3:1"
},
"nodeType": "YulFunctionCall",
"src": "18984:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "18974:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "19005:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "19035:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19041:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "19031:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19031:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "19009:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "19082:31:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "19084:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "19098:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19106:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "19094:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19094:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "19084:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "19062:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "19055:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19055:26:1"
},
"nodeType": "YulIf",
"src": "19052:61:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19172:111:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19193:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19200:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19205:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "19196:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19196:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19186:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19186:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "19186:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19237:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19240:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19230:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19230:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "19230:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19265:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19268:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "19258:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19258:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "19258:15:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "19128:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "19151:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19159:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "19148:2:1"
},
"nodeType": "YulFunctionCall",
"src": "19148:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "19125:2:1"
},
"nodeType": "YulFunctionCall",
"src": "19125:38:1"
},
"nodeType": "YulIf",
"src": "19122:161:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "18944:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "18953:6:1",
"type": ""
}
],
"src": "18909:380:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19341:88:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "19372:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "19374:16:1"
},
"nodeType": "YulFunctionCall",
"src": "19374:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "19374:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "19357:5:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19368:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "19364:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19364:6:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "19354:2:1"
},
"nodeType": "YulFunctionCall",
"src": "19354:17:1"
},
"nodeType": "YulIf",
"src": "19351:43:1"
},
{
"nodeType": "YulAssignment",
"src": "19403:20:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "19414:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19421:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19410:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19410:13:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "19403:3:1"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "19323:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "19333:3:1",
"type": ""
}
],
"src": "19294:135:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19466:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19483:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19490:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19495:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "19486:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19486:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19476:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19476:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "19476:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19523:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19526:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19516:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19516:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "19516:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19547:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19550:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "19540:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19540:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "19540:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "19434:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19598:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19615:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19622:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19627:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "19618:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19618:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19608:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19608:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "19608:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19655:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19658:4:1",
"type": "",
"value": "0x31"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19648:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19648:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "19648:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19679:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19682:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "19672:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19672:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "19672:15:1"
}
]
},
"name": "panic_error_0x31",
"nodeType": "YulFunctionDefinition",
"src": "19566:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19730:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19747:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19754:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19759:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "19750:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19750:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19740:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19740:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "19740:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19787:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19790:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19780:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19780:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "19780:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19811:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19814:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "19804:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19804:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "19804:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "19698:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19862:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19879:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19886:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19891:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "19882:3:1"
},
"nodeType": "YulFunctionCall",
"src": "19882:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19872:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19872:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "19872:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19919:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19922:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "19912:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19912:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "19912:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19943:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19946:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "19936:6:1"
},
"nodeType": "YulFunctionCall",
"src": "19936:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "19936:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "19830:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "20007:86:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "20071:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20080:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20083:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "20073:6:1"
},
"nodeType": "YulFunctionCall",
"src": "20073:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "20073:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "20030:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "20041:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20056:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20061:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "20052:3:1"
},
"nodeType": "YulFunctionCall",
"src": "20052:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20065:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "20048:3:1"
},
"nodeType": "YulFunctionCall",
"src": "20048:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "20037:3:1"
},
"nodeType": "YulFunctionCall",
"src": "20037:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "20027:2:1"
},
"nodeType": "YulFunctionCall",
"src": "20027:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "20020:6:1"
},
"nodeType": "YulFunctionCall",
"src": "20020:50:1"
},
"nodeType": "YulIf",
"src": "20017:70:1"
}
]
},
"name": "validator_revert_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "19996:5:1",
"type": ""
}
],
"src": "19962:131:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "20140:76:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "20194:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20203:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20206:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "20196:6:1"
},
"nodeType": "YulFunctionCall",
"src": "20196:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "20196:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "20163:5:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "20184:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "20177:6:1"
},
"nodeType": "YulFunctionCall",
"src": "20177:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "20170:6:1"
},
"nodeType": "YulFunctionCall",
"src": "20170:21:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "20160:2:1"
},
"nodeType": "YulFunctionCall",
"src": "20160:32:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "20153:6:1"
},
"nodeType": "YulFunctionCall",
"src": "20153:40:1"
},
"nodeType": "YulIf",
"src": "20150:60:1"
}
]
},
"name": "validator_revert_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "20129:5:1",
"type": ""
}
],
"src": "20098:118:1"
}
]
},
"contents": "{\n { }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_payable(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256t_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_bool(value)\n value1 := value\n }\n function abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n value2 := mload(add(headStart, 64))\n }\n function abi_decode_tuple_t_uint8t_uint8t_uint8t_uint8t_uint8(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n value1 := abi_decode_uint8(add(headStart, 32))\n value2 := abi_decode_uint8(add(headStart, 64))\n value3 := abi_decode_uint8(add(headStart, 96))\n value4 := abi_decode_uint8(add(headStart, 128))\n }\n function abi_encode_array_address_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_uint256_t_rational_0_by_1_t_rational_0_by_1_t_address_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256_t_address_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 192)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_contract$_IUniswapV2Router02_$1345__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_rational_0_by_1_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__to_t_uint256_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 128)\n tail := abi_encode_array_address_dyn(value1, add(headStart, 128))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0a150a59f942022a5a44bdaaeb69d3ee25ccc0cd5ebd413e29589f8e44033604__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERC20: approve to zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0ccc31ad4f25ab8975c23164f21fc6d7b1f3b19f5592fbe63b70a4f6f9c44e4f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Account is already excluded from\")\n mstore(add(headStart, 96), \" reward\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0d40e284ffd055bd8840f191ed1f02dce82bb38fb1f4dbb23f78f7078eddb4cf__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"Amt must be less than supply\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_2051c6991296c0c60bcba3f53f03e44690fdd1eb5b30a5cc77344e1e2153b904__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 6)\n mstore(add(headStart, 64), \"WF err\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2989bbad43d512502fee71d9f296ddb4a84ac6be9e39d77d07ad87c08e1337ce__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 6)\n mstore(add(headStart, 64), \"BF err\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"SafeMath: addition overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_367728d6f44731c16c559c0217fff6d163e627732494d917a99a19fd59fa9611__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERC20: transfer from zero addres\")\n mstore(add(headStart, 96), \"s\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_39c6e0b8942859654c1b57b03db22f0a853699ba56dec1f2e7b469fc5f799f0c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 6)\n mstore(add(headStart, 64), \"TF err\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_43b0e660ad101df55bfb849ee72141c43ba8ea700e3967a0486bb4b215d9daba__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 6)\n mstore(add(headStart, 64), \"LF err\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_44cf7dee57eb32df978678dff225a43aa862593bab772765d55e55e02ae21e5c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 13)\n mstore(add(headStart, 64), \"Self withdraw\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_593b493ab8c2bec350c206dc58fc75ffac084af98edec4f38464690d86293c00__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: transfer to zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_66396a07fa8344d81b812cfe3bea3e63cf5a5f15b46663d05f60f8e8a2326e51__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"Already excluded\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_693968cc8483aee141c429c686274dd12f5a917a7c541b486d2ebc0ad56fd77b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"Amt must be less than tot refl\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_72052210969ce5fd88e52b5e685de9548acef9bb1b6d02e29c1765d0674948dd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"Transfer amount exceeds the maxT\")\n mstore(add(headStart, 96), \"xAmount.\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"SafeMath: multiplication overflo\")\n mstore(add(headStart, 96), \"w\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_99bff3441bc269354c96b34031f9d42a77cbae10e0bb5477e27d043990841981__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Exceeds maximum wallet amount\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9edb5ab58321f35d2386ea65721c9b107daa2c273610fc16d394af2a320ba785__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"Transfer amount must be greater \")\n mstore(add(headStart, 96), \"than zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a8f48bf52d5a96a70f3d52ca1a2b0c88f3923a03d9deba051fdb4d3b3f01e1a1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 7)\n mstore(add(headStart, 64), \"BBF err\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_adf93d141dbe7cff7d72e75578bf90784ed3760db271ddf89fdff418ee330bfd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 12)\n mstore(add(headStart, 64), \"ZERO ADDRESS\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_cb99ad4e768a50aa355acec00dfedbf03b752ba865bb2dd9fc45b6e7362a7baa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 3)\n mstore(add(headStart, 64), \"err\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_da5b84b361fa05a4f3af909679698c341f1c059578e88700626ca2887a222e3b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"Contract is locked until 7 days\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_daa7a83ac0ecc6a136d3bf55312ce4851f0dcdce22538ff9e09ae0e42e666b03__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 54)\n mstore(add(headStart, 64), \"You don't have permission to unl\")\n mstore(add(headStart, 96), \"ock the token contract\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ecefcaf5fbcf9ca6dcdb02298ba1da96f4ead317b0a4779917ecb2e5e7dc3ac4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 44)\n mstore(add(headStart, 64), \"Excluded addresses cannot call t\")\n mstore(add(headStart, 96), \"his function\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f2e3946af51d005de1814b7ef535f243c51e9dce3219c71605f658a5a46bd4a4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERC20: approve from zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_rational_0_by_1_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__to_t_uint256_t_uint256_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 160)\n tail := abi_encode_array_address_dyn(value2, add(headStart, 160))\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_add_t_uint8(x, y) -> sum\n {\n let x_1 := and(x, 0xff)\n let y_1 := and(y, 0xff)\n if gt(x_1, sub(0xff, y_1)) { panic_error_0x11() }\n sum := add(x_1, y_1)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {
"1468": [
{
"length": 32,
"start": 1201
},
{
"length": 32,
"start": 11209
},
{
"length": 32,
"start": 11409
},
{
"length": 32,
"start": 11469
},
{
"length": 32,
"start": 11583
},
{
"length": 32,
"start": 11687
},
{
"length": 32,
"start": 11857
},
{
"length": 32,
"start": 12098
}
],
"1470": [
{
"length": 32,
"start": 1684
},
{
"length": 32,
"start": 8183
},
{
"length": 32,
"start": 8406
}
]
},
"linkReferences": {},
"object": "6080604052600436106103905760003560e01c806370a08231116101dc578063bdc653ef11610102578063dd467064116100a0578063f25f4b561161006f578063f25f4b5614610ab6578063f2fde38b14610add578063f6a3c9a914610afd578063f887ea4014610b1d57600080fd5b8063dd46706414610a10578063dd62ed3e14610a30578063ea2f0b3714610a76578063efa0880614610a9657600080fd5b8063c7992f9a116100dc578063c7992f9a146109a4578063d12a7688146109c5578063d28d8852146109db578063d543dbeb146109f057600080fd5b8063bdc653ef1461094e578063c0b0fda214610963578063c49b9a801461098457600080fd5b806390d49b9d1161017a578063a9059cbb11610149578063a9059cbb146108ee578063af465a271461090e578063b09f126614610924578063b6c523241461093957600080fd5b806390d49b9d1461088457806395d89b41146108a4578063a457c2d7146108b9578063a69df4b5146108d957600080fd5b806382bf293c116101b657806382bf293c146107ed57806382d2a4bb1461080d57806388f820201461082d5780638da5cb5b1461086657600080fd5b806370a08231146107a2578063715018a6146107c25780637d1db4a5146107d757600080fd5b80633bd5d173116102c1578063521432901161025f5780635fa429111161022e5780635fa42911146107305780636bc87c3a1461074a5780636c0a24eb1461076b57806370690b111461078157600080fd5b8063521432901461068257806352390c02146106b65780635342acb4146106d657806354ce65781461070f57600080fd5b8063437823ec1161029b578063437823ec146106075780634549b039146106275780634a74bb021461064757806351330a191461066157600080fd5b80633bd5d173146105a55780633c81385c146105c5578063430ca090146105e657600080fd5b80632d6abf871161032e578063324f8dbf11610308578063324f8dbf146105235780633685d4191461054457806339509351146105665780633b124fe71461058657600080fd5b80632d6abf871461049f5780632d838119146104eb578063313ce5671461050b57600080fd5b806315fa749a1161036a57806315fa749a1461041657806318160ddd1461044957806319de79ab1461045e57806323b872dd1461047f57600080fd5b806306fdde031461039c578063095ea7b3146103c757806313114a9d146103f757600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103b1610b3d565b6040516103be919061373c565b60405180910390f35b3480156103d357600080fd5b506103e76103e236600461358c565b610bcf565b60405190151581526020016103be565b34801561040357600080fd5b50600d545b6040519081526020016103be565b34801561042257600080fd5b5060035461043790600160c01b900460ff1681565b60405160ff90911681526020016103be565b34801561045557600080fd5b50600b54610408565b34801561046a57600080fd5b5060115461043790600160481b900460ff1681565b34801561048b57600080fd5b506103e761049a36600461354b565b610be6565b3480156104ab57600080fd5b506104d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103be565b3480156104f757600080fd5b506104086105063660046135f2565b610c4f565b34801561051757600080fd5b5060115460ff16610437565b34801561052f57600080fd5b5060035461043790600160c81b900460ff1681565b34801561055057600080fd5b5061056461055f3660046134d8565b610cc5565b005b34801561057257600080fd5b506103e761058136600461358c565b610e6f565b34801561059257600080fd5b5060115461043790610100900460ff1681565b3480156105b157600080fd5b506105646105c03660046135f2565b610ea5565b3480156105d157600080fd5b5060035461043790600160b01b900460ff1681565b3480156105f257600080fd5b5060035461043790600160a01b900460ff1681565b34801561061357600080fd5b506105646106223660046134d8565b610f8f565b34801561063357600080fd5b5061040861064236600461360b565b610fdd565b34801561065357600080fd5b506012546103e79060ff1681565b34801561066d57600080fd5b5060035461043790600160b81b900460ff1681565b34801561068e57600080fd5b506104d37f000000000000000000000000000000000000000000000000000000000000000081565b3480156106c257600080fd5b506105646106d13660046134d8565b61106a565b3480156106e257600080fd5b506103e76106f13660046134d8565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561071b57600080fd5b5060115461043790600160381b900460ff1681565b34801561073c57600080fd5b50600e546103e79060ff1681565b34801561075657600080fd5b50601154610437906301000000900460ff1681565b34801561077757600080fd5b5061040860145481565b34801561078d57600080fd5b5060035461043790600160d01b900460ff1681565b3480156107ae57600080fd5b506104086107bd3660046134d8565b6111cd565b3480156107ce57600080fd5b5061056461122c565b3480156107e357600080fd5b5061040860135481565b3480156107f957600080fd5b506105646108083660046135f2565b61128e565b34801561081957600080fd5b506105646108283660046135f2565b61132d565b34801561083957600080fd5b506103e76108483660046134d8565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561087257600080fd5b506000546001600160a01b03166104d3565b34801561089057600080fd5b5061056461089f3660046134d8565b61136f565b3480156108b057600080fd5b506103b161141f565b3480156108c557600080fd5b506103e76108d436600461358c565b61142e565b3480156108e557600080fd5b5061056461147d565b3480156108fa57600080fd5b506103e761090936600461358c565b611596565b34801561091a57600080fd5b50610408600b5481565b34801561093057600080fd5b506103b16115a3565b34801561094557600080fd5b50600254610408565b34801561095a57600080fd5b50601654610408565b34801561096f57600080fd5b5060115461043790600160281b900460ff1681565b34801561099057600080fd5b5061056461099f3660046135b8565b611631565b3480156109b057600080fd5b5060035461043790600160a81b900460ff1681565b3480156109d157600080fd5b5061040860155481565b3480156109e757600080fd5b506103b16116a2565b3480156109fc57600080fd5b50610564610a0b3660046135f2565b6116af565b348015610a1c57600080fd5b50610564610a2b3660046135f2565b611748565b348015610a3c57600080fd5b50610408610a4b366004613512565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610a8257600080fd5b50610564610a913660046134d8565b6117cd565b348015610aa257600080fd5b50610564610ab136600461358c565b611818565b348015610ac257600080fd5b506011546104d390600160581b90046001600160a01b031681565b348015610ae957600080fd5b50610564610af83660046134d8565b611931565b348015610b0957600080fd5b50610564610b1836600461365e565b611a09565b348015610b2957600080fd5b50600a546104d3906001600160a01b031681565b6060600f8054610b4c90613897565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7890613897565b8015610bc55780601f10610b9a57610100808354040283529160200191610bc5565b820191906000526020600020905b815481529060010190602001808311610ba857829003601f168201915b5050505050905090565b6000610bdc338484611cdb565b5060015b92915050565b6000610bf3848484611de8565b610c458433610c4085604051806060016040528060288152602001613956602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906121d7565b611cdb565b5060019392505050565b6000600c54821115610ca85760405162461bcd60e51b815260206004820152601e60248201527f416d74206d757374206265206c657373207468616e20746f74207265666c000060448201526064015b60405180910390fd5b6000610cb2612211565b9050610cbe8382611c99565b9392505050565b6000546001600160a01b03163314610cef5760405162461bcd60e51b8152600401610c9f90613791565b6001600160a01b03811660009081526008602052604090205460ff16610d4a5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e48195e18db1d59195960821b6044820152606401610c9f565b60005b600954811015610e6b57816001600160a01b031660098281548110610d7457610d74613919565b6000918252602090912001546001600160a01b03161415610e595760098054610d9f90600190613880565b81548110610daf57610daf613919565b600091825260209091200154600980546001600160a01b039092169183908110610ddb57610ddb613919565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600582526040808220829055600890925220805460ff191690556009805480610e3357610e33613903565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610e63816138d2565b915050610d4d565b5050565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610bdc918590610c409086612234565b3360008181526008602052604090205460ff1615610f1a5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610c9f565b6000610f2583612293565b505050506001600160a01b038416600090815260046020526040902054919250610f51919050826122e2565b6001600160a01b038316600090815260046020526040902055600c54610f7790826122e2565b600c55600d54610f879084612234565b600d55505050565b6000546001600160a01b03163314610fb95760405162461bcd60e51b8152600401610c9f90613791565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000600b548311156110315760405162461bcd60e51b815260206004820152601c60248201527f416d74206d757374206265206c657373207468616e20737570706c79000000006044820152606401610c9f565b8161105057600061104184612293565b50939550610be0945050505050565b600061105b84612293565b50929550610be0945050505050565b6000546001600160a01b031633146110945760405162461bcd60e51b8152600401610c9f90613791565b6001600160a01b03811660009081526008602052604090205460ff161561110d5760405162461bcd60e51b815260206004820152602760248201527f4163636f756e7420697320616c7265616479206578636c756465642066726f6d604482015266081c995dd85c9960ca1b6064820152608401610c9f565b6001600160a01b03811660009081526004602052604090205415611167576001600160a01b03811660009081526004602052604090205461114d90610c4f565b6001600160a01b0382166000908152600560205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526008602052604081205460ff161561120a57506001600160a01b031660009081526005602052604090205490565b6001600160a01b038216600090815260046020526040902054610be090610c4f565b6000546001600160a01b031633146112565760405162461bcd60e51b8152600401610c9f90613791565b600080546040516001600160a01b039091169060008051602061397e833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112b85760405162461bcd60e51b8152600401610c9f90613791565b600354600160d01b900460ff1681108015906112d5575060648111155b6113075760405162461bcd60e51b815260206004820152600360248201526232b93960e91b6044820152606401610c9f565b611327606461132183600b54611c1a90919063ffffffff16565b90611c99565b60145550565b6000546001600160a01b031633146113575760405162461bcd60e51b8152600401610c9f90613791565b61136981670de0b6b3a7640000613861565b60165550565b6000546001600160a01b031633146113995760405162461bcd60e51b8152600401610c9f90613791565b6001600160a01b0381166113de5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f204144445245535360a01b6044820152606401610c9f565b601180546001600160a01b03909216600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff909216919091179055565b606060108054610b4c90613897565b6000610bdc3384610c408560405180606001604052806025815260200161399e602591393360009081526006602090815260408083206001600160a01b038d16845290915290205491906121d7565b6001546001600160a01b031633146114f65760405162461bcd60e51b815260206004820152603660248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152751bd8dac81d1a19481d1bdad95b8818dbdb9d1c9858dd60521b6064820152608401610c9f565b60025442116115475760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c20372064617973006044820152606401610c9f565b600154600080546040516001600160a01b03938416939091169160008051602061397e83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610bdc338484611de8565b601080546115b090613897565b80601f01602080910402602001604051908101604052809291908181526020018280546115dc90613897565b80156116295780601f106115fe57610100808354040283529160200191611629565b820191906000526020600020905b81548152906001019060200180831161160c57829003601f168201915b505050505081565b6000546001600160a01b0316331461165b5760405162461bcd60e51b8152600401610c9f90613791565b6012805460ff19168215159081179091556040519081527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599060200160405180910390a150565b600f80546115b090613897565b6000546001600160a01b031633146116d95760405162461bcd60e51b8152600401610c9f90613791565b600354600160c81b900460ff1681108015906116f6575060648111155b6117285760405162461bcd60e51b815260206004820152600360248201526232b93960e91b6044820152606401610c9f565b611742606461132183600b54611c1a90919063ffffffff16565b60135550565b6000546001600160a01b031633146117725760405162461bcd60e51b8152600401610c9f90613791565b60008054600180546001600160a01b03199081166001600160a01b038416179091551690556117a18142613802565b600255600080546040516001600160a01b039091169060008051602061397e833981519152908390a350565b6000546001600160a01b031633146117f75760405162461bcd60e51b8152600401610c9f90613791565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b031633146118425760405162461bcd60e51b8152600401610c9f90613791565b6001600160a01b03821630141561188b5760405162461bcd60e51b815260206004820152600d60248201526c53656c6620776974686472617760981b6044820152606401610c9f565b816001600160a01b031663a9059cbb6118ac6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b1580156118f457600080fd5b505af1158015611908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192c91906135d5565b505050565b6000546001600160a01b0316331461195b5760405162461bcd60e51b8152600401610c9f90613791565b6001600160a01b0381166119c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c9f565b600080546040516001600160a01b038085169392169160008051602061397e83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611a335760405162461bcd60e51b8152600401610c9f90613791565b60035460ff600160a81b90910481169086161115611a7c5760405162461bcd60e51b81526020600482015260066024820152652a231032b93960d11b6044820152606401610c9f565b60035460ff600160a01b90910481169085161115611ac55760405162461bcd60e51b815260206004820152600660248201526526231032b93960d11b6044820152606401610c9f565b60035460ff600160b01b90910481169084161115611b0e5760405162461bcd60e51b815260206004820152600660248201526521231032b93960d11b6044820152606401610c9f565b60035460ff600160b81b90910481169083161115611b575760405162461bcd60e51b81526020600482015260066024820152652ba31032b93960d11b6044820152606401610c9f565b60035460ff600160c01b90910481169082161115611ba15760405162461bcd60e51b81526020600482015260076024820152662121231032b93960c91b6044820152606401610c9f565b6011805463ff00ff00191661010060ff9788160263ff0000001916176301000000958716959095029490941769ff000000ff00000000001916600160281b9386169390930260ff60481b191692909217600160481b928516929092029190911760ff60381b1916600160381b9190931602919091179055565b600082611c2957506000610be0565b6000611c358385613861565b905082611c42858361383f565b14610cbe5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c9f565b6000610cbe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612324565b6001600160a01b038316611d315760405162461bcd60e51b815260206004820181905260248201527f45524332303a20617070726f76652066726f6d207a65726f20616464726573736044820152606401610c9f565b6001600160a01b038216611d875760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20617070726f766520746f207a65726f206164647265737300006044820152606401610c9f565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611e485760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610c9f565b6001600160a01b038216611e9e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610c9f565b60008111611f005760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610c9f565b6000546001600160a01b03848116911614801590611f2c57506000546001600160a01b03838116911614155b15611f9457601354811115611f945760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c9f565b6000546001600160a01b03848116911614801590611fc057506000546001600160a01b03838116911614155b8015611fd457506001600160a01b03821615155b8015611fee57506003546001600160a01b03838116911614155b801561202c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b1561209c57600061203c836111cd565b60145490915061204c8383613802565b111561209a5760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e740000006044820152606401610c9f565b505b60006120a7306111cd565b905060135481106120b757506013545b6015546011549082101590600160f81b900460ff1615801561210a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b8015612118575060125460ff165b1561217857801561213157601554915061213182612352565b601154600160481b900460ff16156121785747670de0b6b3a76400008111156121765760165481111561216357506016545b612176612171826064611c99565b612577565b505b6001600160a01b03851660009081526007602052604090205460019060ff16806121ba57506001600160a01b03851660009081526007602052604090205460ff165b156121c3575060005b6121cf868686846125ad565b505050505050565b600081848411156121fb5760405162461bcd60e51b8152600401610c9f919061373c565b5060006122088486613880565b95945050505050565b600080600061221e6127ce565b909250905061222d8282611c99565b9250505090565b6000806122418385613802565b905083811015610cbe5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c9f565b60008060008060008060008060006122aa8a612950565b92509250925060008060006122c88d86866122c3612211565b612992565b919f909e50909c50959a5093985091965092945050505050565b6000610cbe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121d7565b600081836123455760405162461bcd60e51b8152600401610c9f919061373c565b506000612208848661383f565b601180546001600160f81b0316600160f81b1790819055600090600160481b810460ff908116916301000000810482169161239f91600160381b8104821691600160281b9091041661381a565b6123a9919061381a565b6123b3919061381a565b6011549091506000908190600160281b900460ff1615612412576011546123f49060ff600160281b9091048116906123ee9087908716611c99565b90611c1a565b60035490925061240f9030906001600160a01b0316846129e2565b50805b601154600160381b900460ff1615612474576011546124459060ff600160381b9091048116906123ee9087908716611c99565b9150612467306011600b9054906101000a90046001600160a01b0316846129e2565b6124718282613802565b90505b601154600160481b900460ff16156124bf576011546124a79060ff600160481b9091048116906123ee9087908716611c99565b91506124b282612b72565b6124bc8282613802565b90505b6011546301000000900460ff1615612562576124db84826122e2565b935060006124ea856002611c99565b905060006124f886836122e2565b90504761250483612b72565b600061251047836122e2565b905061251c8382612d39565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a1505050505b5050601180546001600160f81b031690555050565b601180546001600160f81b0316600160f81b179055801561259b5761259b81612e2e565b50601180546001600160f81b03169055565b806125ba576125ba612fd3565b6001600160a01b03841660009081526008602052604090205460ff1680156125fb57506001600160a01b03831660009081526008602052604090205460ff16155b156126105761260b84848461310f565b61270e565b6001600160a01b03841660009081526008602052604090205460ff1615801561265157506001600160a01b03831660009081526008602052604090205460ff165b156126615761260b848484613235565b6001600160a01b03841660009081526008602052604090205460ff161580156126a357506001600160a01b03831660009081526008602052604090205460ff16155b156126b35761260b8484846132de565b6001600160a01b03841660009081526008602052604090205460ff1680156126f357506001600160a01b03831660009081526008602052604090205460ff165b156127035761260b848484613322565b61270e8484846132de565b806127c8576011805460ff60481b1967ff00ff00000000001963ff00ff0019831663ff0000001961010062010000860460ff908116919091029182169290921764010000000061ff00199096169091179490940481166301000000029390931790811660ff60381b19660100000000000083048516600160281b0290811691909117600160401b65ff000000000019909316909117919091048316600160381b0217908116600160501b909104909116600160481b021790555b50505050565b600c54600b546000918291825b600954811015612920578260046000600984815481106127fd576127fd613919565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612868575081600560006009848154811061284157612841613919565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561287e57600c54600b54945094505050509091565b6128c4600460006009848154811061289857612898613919565b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906122e2565b925061290c60056000600984815481106128e0576128e0613919565b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906122e2565b915080612918816138d2565b9150506127db565b50600b54600c5461293091611c99565b82101561294757600c54600b549350935050509091565b90939092509050565b60008060008061295f85613395565b9050600061296c866133b5565b905060006129848261297e89866122e2565b906122e2565b979296509094509092505050565b60008080806129a18886611c1a565b905060006129af8887611c1a565b905060006129bd8888611c1a565b905060006129cf8261297e86866122e2565b939b939a50919850919650505050505050565b60006129ec612211565b905060006129fa8383611c1a565b6001600160a01b038616600090815260046020526040902054909150612a2090826122e2565b6001600160a01b038087166000908152600460205260408082209390935590861681522054612a4f9082612234565b6001600160a01b0380861660009081526004602090815260408083209490945591881681526008909152205460ff1615612ac0576001600160a01b038516600090815260056020526040902054612aa690846122e2565b6001600160a01b0386166000908152600560205260409020555b6001600160a01b03841660009081526008602052604090205460ff1615612b1e576001600160a01b038416600090815260056020526040902054612b049084612234565b6001600160a01b0385166000908152600560205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b6391815260200190565b60405180910390a35050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612ba757612ba7613919565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612c2057600080fd5b505afa158015612c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5891906134f5565b81600181518110612c6b57612c6b613919565b60200260200101906001600160a01b031690816001600160a01b031681525050612cb6307f000000000000000000000000000000000000000000000000000000000000000084611cdb565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790612d0b9085906000908690309042906004016137c6565b600060405180830381600087803b158015612d2557600080fd5b505af11580156121cf573d6000803e3d6000fd5b612d64307f000000000000000000000000000000000000000000000000000000000000000084611cdb565b60035460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000009091169063f305d71990839060c4016060604051808303818588803b158015612dee57600080fd5b505af1158015612e02573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e279190613630565b5050505050565b6040805160028082526060820183526000926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612ea857600080fd5b505afa158015612ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee091906134f5565b81600081518110612ef357612ef3613919565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110612f2757612f27613919565b6001600160a01b0392831660209182029290920101526003547f000000000000000000000000000000000000000000000000000000000000000082169163b6f9de95918591600091869116612f7e4261012c612234565b6040518663ffffffff1660e01b8152600401612f9d9493929190613707565b6000604051808303818588803b158015612fb657600080fd5b505af1158015612fca573d6000803e3d6000fd5b50505050505050565b601154610100900460ff16158015612ff557506011546301000000900460ff16155b801561300b5750601154600160281b900460ff16155b80156130215750601154600160381b900460ff16155b80156130375750601154600160481b900460ff16155b1561303e57565b601180546affff00ff00ff00ff00ff001968ff00ff0000000000001964ff00ff000019831664ff0000000019610100850460ff908116620100000291821692909217630100000062ff000019909616909117949094048116640100000000029390931790811668ff000000000000000019600160281b8304851666010000000000000290811691909117600160381b66ff00000000000019909316909117919091048316600160401b0217908116600160481b909104909116600160501b0269ff00ff00ff00ff00ff001916179055565b60008060008060008061312187612293565b6001600160a01b038f16600090815260056020526040902054959b5093995091975095509350915061315390886122e2565b6001600160a01b038a1660009081526005602090815260408083209390935560049052205461318290876122e2565b6001600160a01b03808b1660009081526004602052604080822093909355908a16815220546131b19086612234565b6001600160a01b0389166000908152600460205260409020556131d381613416565b6131dd848361349e565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161322291815260200190565b60405180910390a3505050505050505050565b60008060008060008061324787612293565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061327990876122e2565b6001600160a01b03808b16600090815260046020908152604080832094909455918b168152600590915220546132af9084612234565b6001600160a01b0389166000908152600560209081526040808320939093556004905220546131b19086612234565b6000806000806000806132f087612293565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061318290876122e2565b60008060008060008061333487612293565b6001600160a01b038f16600090815260056020526040902054959b5093995091975095509350915061336690886122e2565b6001600160a01b038a1660009081526005602090815260408083209390935560049052205461327990876122e2565b601154600090610be090606490611321908590610100900460ff16611c1a565b601154600090610be0906064906113219060ff600160481b8204811691600160381b81048216916133f891600160281b810482169163010000009091041661381a565b613402919061381a565b61340c919061381a565b859060ff16611c1a565b6000613420612211565b9050600061342e8383611c1a565b3060009081526004602052604090205490915061344b9082612234565b3060009081526004602090815260408083209390935560089052205460ff161561192c57306000908152600560205260409020546134899084612234565b30600090815260056020526040902055505050565b600c546134ab90836122e2565b600c55600d546134bb9082612234565b600d555050565b803560ff811681146134d357600080fd5b919050565b6000602082840312156134ea57600080fd5b8135610cbe8161392f565b60006020828403121561350757600080fd5b8151610cbe8161392f565b6000806040838503121561352557600080fd5b82356135308161392f565b915060208301356135408161392f565b809150509250929050565b60008060006060848603121561356057600080fd5b833561356b8161392f565b9250602084013561357b8161392f565b929592945050506040919091013590565b6000806040838503121561359f57600080fd5b82356135aa8161392f565b946020939093013593505050565b6000602082840312156135ca57600080fd5b8135610cbe81613947565b6000602082840312156135e757600080fd5b8151610cbe81613947565b60006020828403121561360457600080fd5b5035919050565b6000806040838503121561361e57600080fd5b82359150602083013561354081613947565b60008060006060848603121561364557600080fd5b8351925060208401519150604084015190509250925092565b600080600080600060a0868803121561367657600080fd5b61367f866134c2565b945061368d602087016134c2565b935061369b604087016134c2565b92506136a9606087016134c2565b91506136b7608087016134c2565b90509295509295909350565b600081518084526020808501945080840160005b838110156136fc5781516001600160a01b0316875295820195908201906001016136d7565b509495945050505050565b84815260806020820152600061372060808301866136c3565b6001600160a01b03949094166040830152506060015292915050565b600060208083528351808285015260005b818110156137695785810183015185820160400152820161374d565b8181111561377b576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b85815284602082015260a0604082015260006137e560a08301866136c3565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115613815576138156138ed565b500190565b600060ff821660ff84168060ff03821115613837576138376138ed565b019392505050565b60008261385c57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561387b5761387b6138ed565b500290565b600082821015613892576138926138ed565b500390565b600181811c908216806138ab57607f821691505b602082108114156138cc57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156138e6576138e66138ed565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461394457600080fd5b50565b801515811461394457600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ecd62a288463a7f3ea80d11d249a2870521de16e9c1384b974150bcc4898272e64736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x390 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x1DC JUMPI DUP1 PUSH4 0xBDC653EF GT PUSH2 0x102 JUMPI DUP1 PUSH4 0xDD467064 GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xF25F4B56 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xF25F4B56 EQ PUSH2 0xAB6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xADD JUMPI DUP1 PUSH4 0xF6A3C9A9 EQ PUSH2 0xAFD JUMPI DUP1 PUSH4 0xF887EA40 EQ PUSH2 0xB1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDD467064 EQ PUSH2 0xA10 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0xA30 JUMPI DUP1 PUSH4 0xEA2F0B37 EQ PUSH2 0xA76 JUMPI DUP1 PUSH4 0xEFA08806 EQ PUSH2 0xA96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC7992F9A GT PUSH2 0xDC JUMPI DUP1 PUSH4 0xC7992F9A EQ PUSH2 0x9A4 JUMPI DUP1 PUSH4 0xD12A7688 EQ PUSH2 0x9C5 JUMPI DUP1 PUSH4 0xD28D8852 EQ PUSH2 0x9DB JUMPI DUP1 PUSH4 0xD543DBEB EQ PUSH2 0x9F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBDC653EF EQ PUSH2 0x94E JUMPI DUP1 PUSH4 0xC0B0FDA2 EQ PUSH2 0x963 JUMPI DUP1 PUSH4 0xC49B9A80 EQ PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x90D49B9D GT PUSH2 0x17A JUMPI DUP1 PUSH4 0xA9059CBB GT PUSH2 0x149 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x8EE JUMPI DUP1 PUSH4 0xAF465A27 EQ PUSH2 0x90E JUMPI DUP1 PUSH4 0xB09F1266 EQ PUSH2 0x924 JUMPI DUP1 PUSH4 0xB6C52324 EQ PUSH2 0x939 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x90D49B9D EQ PUSH2 0x884 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x8A4 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x8B9 JUMPI DUP1 PUSH4 0xA69DF4B5 EQ PUSH2 0x8D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x82BF293C GT PUSH2 0x1B6 JUMPI DUP1 PUSH4 0x82BF293C EQ PUSH2 0x7ED JUMPI DUP1 PUSH4 0x82D2A4BB EQ PUSH2 0x80D JUMPI DUP1 PUSH4 0x88F82020 EQ PUSH2 0x82D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x866 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x7A2 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x7C2 JUMPI DUP1 PUSH4 0x7D1DB4A5 EQ PUSH2 0x7D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3BD5D173 GT PUSH2 0x2C1 JUMPI DUP1 PUSH4 0x52143290 GT PUSH2 0x25F JUMPI DUP1 PUSH4 0x5FA42911 GT PUSH2 0x22E JUMPI DUP1 PUSH4 0x5FA42911 EQ PUSH2 0x730 JUMPI DUP1 PUSH4 0x6BC87C3A EQ PUSH2 0x74A JUMPI DUP1 PUSH4 0x6C0A24EB EQ PUSH2 0x76B JUMPI DUP1 PUSH4 0x70690B11 EQ PUSH2 0x781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x52143290 EQ PUSH2 0x682 JUMPI DUP1 PUSH4 0x52390C02 EQ PUSH2 0x6B6 JUMPI DUP1 PUSH4 0x5342ACB4 EQ PUSH2 0x6D6 JUMPI DUP1 PUSH4 0x54CE6578 EQ PUSH2 0x70F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x437823EC GT PUSH2 0x29B JUMPI DUP1 PUSH4 0x437823EC EQ PUSH2 0x607 JUMPI DUP1 PUSH4 0x4549B039 EQ PUSH2 0x627 JUMPI DUP1 PUSH4 0x4A74BB02 EQ PUSH2 0x647 JUMPI DUP1 PUSH4 0x51330A19 EQ PUSH2 0x661 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3BD5D173 EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0x3C81385C EQ PUSH2 0x5C5 JUMPI DUP1 PUSH4 0x430CA090 EQ PUSH2 0x5E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2D6ABF87 GT PUSH2 0x32E JUMPI DUP1 PUSH4 0x324F8DBF GT PUSH2 0x308 JUMPI DUP1 PUSH4 0x324F8DBF EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0x3685D419 EQ PUSH2 0x544 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x566 JUMPI DUP1 PUSH4 0x3B124FE7 EQ PUSH2 0x586 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2D6ABF87 EQ PUSH2 0x49F JUMPI DUP1 PUSH4 0x2D838119 EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x50B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x15FA749A GT PUSH2 0x36A JUMPI DUP1 PUSH4 0x15FA749A EQ PUSH2 0x416 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0x19DE79AB EQ PUSH2 0x45E JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x47F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0x13114A9D EQ PUSH2 0x3F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x397 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B1 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3BE SWAP2 SWAP1 PUSH2 0x373C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E7 PUSH2 0x3E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x358C JUMP JUMPDEST PUSH2 0xBCF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x403 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xD SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x422 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x455 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB SLOAD PUSH2 0x408 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E7 PUSH2 0x49A CALLDATASIZE PUSH1 0x4 PUSH2 0x354B JUMP JUMPDEST PUSH2 0xBE6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D3 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x506 CALLDATASIZE PUSH1 0x4 PUSH2 0x35F2 JUMP JUMPDEST PUSH2 0xC4F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH1 0xFF AND PUSH2 0x437 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0xC8 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x550 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x55F CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH2 0xCC5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x572 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E7 PUSH2 0x581 CALLDATASIZE PUSH1 0x4 PUSH2 0x358C JUMP JUMPDEST PUSH2 0xE6F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x592 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x437 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x5C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x35F2 JUMP JUMPDEST PUSH2 0xEA5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x613 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x622 CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH2 0xF8F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x633 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x642 CALLDATASIZE PUSH1 0x4 PUSH2 0x360B JUMP JUMPDEST PUSH2 0xFDD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x653 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x12 SLOAD PUSH2 0x3E7 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0xB8 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x68E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D3 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x6D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH2 0x106A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E7 PUSH2 0x6F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0x38 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xE SLOAD PUSH2 0x3E7 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x756 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x437 SWAP1 PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x14 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x78D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x7BD CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH2 0x11CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x122C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x13 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x808 CALLDATASIZE PUSH1 0x4 PUSH2 0x35F2 JUMP JUMPDEST PUSH2 0x128E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x819 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x828 CALLDATASIZE PUSH1 0x4 PUSH2 0x35F2 JUMP JUMPDEST PUSH2 0x132D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E7 PUSH2 0x848 CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x872 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x4D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x890 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x89F CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH2 0x136F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B1 PUSH2 0x141F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E7 PUSH2 0x8D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x358C JUMP JUMPDEST PUSH2 0x142E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x147D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E7 PUSH2 0x909 CALLDATASIZE PUSH1 0x4 PUSH2 0x358C JUMP JUMPDEST PUSH2 0x1596 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x91A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x930 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B1 PUSH2 0x15A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x945 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x408 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x16 SLOAD PUSH2 0x408 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0x28 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x990 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0x99F CALLDATASIZE PUSH1 0x4 PUSH2 0x35B8 JUMP JUMPDEST PUSH2 0x1631 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x437 SWAP1 PUSH1 0x1 PUSH1 0xA8 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x15 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B1 PUSH2 0x16A2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0xA0B CALLDATASIZE PUSH1 0x4 PUSH2 0x35F2 JUMP JUMPDEST PUSH2 0x16AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0xA2B CALLDATASIZE PUSH1 0x4 PUSH2 0x35F2 JUMP JUMPDEST PUSH2 0x1748 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0xA4B CALLDATASIZE PUSH1 0x4 PUSH2 0x3512 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0xA91 CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH2 0x17CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0xAB1 CALLDATASIZE PUSH1 0x4 PUSH2 0x358C JUMP JUMPDEST PUSH2 0x1818 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x4D3 SWAP1 PUSH1 0x1 PUSH1 0x58 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0xAF8 CALLDATASIZE PUSH1 0x4 PUSH2 0x34D8 JUMP JUMPDEST PUSH2 0x1931 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH2 0xB18 CALLDATASIZE PUSH1 0x4 PUSH2 0x365E JUMP JUMPDEST PUSH2 0x1A09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xA SLOAD PUSH2 0x4D3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0xF DUP1 SLOAD PUSH2 0xB4C SWAP1 PUSH2 0x3897 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 0xB78 SWAP1 PUSH2 0x3897 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBC5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB9A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBC5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBA8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBDC CALLER DUP5 DUP5 PUSH2 0x1CDB JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF3 DUP5 DUP5 DUP5 PUSH2 0x1DE8 JUMP JUMPDEST PUSH2 0xC45 DUP5 CALLER PUSH2 0xC40 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3956 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x21D7 JUMP JUMPDEST PUSH2 0x1CDB JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC SLOAD DUP3 GT ISZERO PUSH2 0xCA8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416D74206D757374206265206C657373207468616E20746F74207265666C0000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xCB2 PUSH2 0x2211 JUMP JUMPDEST SWAP1 POP PUSH2 0xCBE DUP4 DUP3 PUSH2 0x1C99 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xCEF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xD4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x105B1C9958591E48195E18DB1D591959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x9 SLOAD DUP2 LT ISZERO PUSH2 0xE6B JUMPI DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xD74 JUMPI PUSH2 0xD74 PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0xE59 JUMPI PUSH1 0x9 DUP1 SLOAD PUSH2 0xD9F SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3880 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xDAF JUMPI PUSH2 0xDAF PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP4 SWAP1 DUP2 LT PUSH2 0xDDB JUMPI PUSH2 0xDDB PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND OR SWAP1 SSTORE SWAP2 DUP5 AND DUP2 MSTORE PUSH1 0x5 DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP3 SWAP1 SSTORE PUSH1 0x8 SWAP1 SWAP3 MSTORE KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 PUSH2 0xE33 JUMPI PUSH2 0xE33 PUSH2 0x3903 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 DUP2 ADD PUSH1 0x0 NOT SWAP1 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE ADD SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH2 0xE63 DUP2 PUSH2 0x38D2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD4D JUMP JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0xBDC SWAP2 DUP6 SWAP1 PUSH2 0xC40 SWAP1 DUP7 PUSH2 0x2234 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578636C75646564206164647265737365732063616E6E6F742063616C6C2074 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x3434B990333AB731BA34B7B7 PUSH1 0xA1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF25 DUP4 PUSH2 0x2293 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH2 0xF51 SWAP2 SWAP1 POP DUP3 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0xC SLOAD PUSH2 0xF77 SWAP1 DUP3 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0xC SSTORE PUSH1 0xD SLOAD PUSH2 0xF87 SWAP1 DUP5 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0xD SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xFB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB SLOAD DUP4 GT ISZERO PUSH2 0x1031 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416D74206D757374206265206C657373207468616E20737570706C7900000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST DUP2 PUSH2 0x1050 JUMPI PUSH1 0x0 PUSH2 0x1041 DUP5 PUSH2 0x2293 JUMP JUMPDEST POP SWAP4 SWAP6 POP PUSH2 0xBE0 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x105B DUP5 PUSH2 0x2293 JUMP JUMPDEST POP SWAP3 SWAP6 POP PUSH2 0xBE0 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1094 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x110D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4163636F756E7420697320616C7265616479206578636C756465642066726F6D PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x81C995DD85C99 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1167 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x114D SWAP1 PUSH2 0xC4F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x9 DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0x6E1540171B6C0C960B71A7020D9F60077F6AF931A8BBF590DA0223DACF75C7AF ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x120A JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xBE0 SWAP1 PUSH2 0xC4F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1256 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x397E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP4 SWAP1 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x12B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 LT DUP1 ISZERO SWAP1 PUSH2 0x12D5 JUMPI POP PUSH1 0x64 DUP2 GT ISZERO JUMPDEST PUSH2 0x1307 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0x24 DUP3 ADD MSTORE PUSH3 0x32B939 PUSH1 0xE9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH2 0x1327 PUSH1 0x64 PUSH2 0x1321 DUP4 PUSH1 0xB SLOAD PUSH2 0x1C1A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH2 0x1C99 JUMP JUMPDEST PUSH1 0x14 SSTORE POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1357 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH2 0x1369 DUP2 PUSH8 0xDE0B6B3A7640000 PUSH2 0x3861 JUMP JUMPDEST PUSH1 0x16 SSTORE POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1399 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x13DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x5A45524F2041444452455353 PUSH1 0xA0 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x58 SHL MUL PUSH32 0xFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x10 DUP1 SLOAD PUSH2 0xB4C SWAP1 PUSH2 0x3897 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBDC CALLER DUP5 PUSH2 0xC40 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x399E PUSH1 0x25 SWAP2 CODECOPY CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x21D7 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x14F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F7520646F6E27742068617665207065726D697373696F6E20746F20756E6C PUSH1 0x44 DUP3 ADD MSTORE PUSH22 0x1BD8DAC81D1A19481D1BDAD95B8818DBDB9D1C9858DD PUSH1 0x52 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x2 SLOAD TIMESTAMP GT PUSH2 0x1547 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436F6E7472616374206973206C6F636B656420756E74696C2037206461797300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x397E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 LOG3 PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBDC CALLER DUP5 DUP5 PUSH2 0x1DE8 JUMP JUMPDEST PUSH1 0x10 DUP1 SLOAD PUSH2 0x15B0 SWAP1 PUSH2 0x3897 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 0x15DC SWAP1 PUSH2 0x3897 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1629 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x15FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1629 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x160C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x165B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x12 DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x53726DFCAF90650AA7EB35524F4D3220F07413C8D6CB404CC8C18BF5591BC159 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH2 0x15B0 SWAP1 PUSH2 0x3897 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x16D9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xC8 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 LT DUP1 ISZERO SWAP1 PUSH2 0x16F6 JUMPI POP PUSH1 0x64 DUP2 GT ISZERO JUMPDEST PUSH2 0x1728 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0x24 DUP3 ADD MSTORE PUSH3 0x32B939 PUSH1 0xE9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH2 0x1742 PUSH1 0x64 PUSH2 0x1321 DUP4 PUSH1 0xB SLOAD PUSH2 0x1C1A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x13 SSTORE POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1772 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE PUSH2 0x17A1 DUP2 TIMESTAMP PUSH2 0x3802 JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x397E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP4 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x17F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1842 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ADDRESS EQ ISZERO PUSH2 0x188B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x53656C66207769746864726177 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA9059CBB PUSH2 0x18AC PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1908 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 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 0x192C SWAP2 SWAP1 PUSH2 0x35D5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x195B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x19C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND SWAP4 SWAP3 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x397E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1A33 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF PUSH1 0x1 PUSH1 0xA8 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1A7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6 PUSH1 0x24 DUP3 ADD MSTORE PUSH6 0x2A231032B939 PUSH1 0xD1 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP6 AND GT ISZERO PUSH2 0x1AC5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6 PUSH1 0x24 DUP3 ADD MSTORE PUSH6 0x26231032B939 PUSH1 0xD1 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP5 AND GT ISZERO PUSH2 0x1B0E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6 PUSH1 0x24 DUP3 ADD MSTORE PUSH6 0x21231032B939 PUSH1 0xD1 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF PUSH1 0x1 PUSH1 0xB8 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP4 AND GT ISZERO PUSH2 0x1B57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6 PUSH1 0x24 DUP3 ADD MSTORE PUSH6 0x2BA31032B939 PUSH1 0xD1 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x1BA1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x2121231032B939 PUSH1 0xC9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD PUSH4 0xFF00FF00 NOT AND PUSH2 0x100 PUSH1 0xFF SWAP8 DUP9 AND MUL PUSH4 0xFF000000 NOT AND OR PUSH4 0x1000000 SWAP6 DUP8 AND SWAP6 SWAP1 SWAP6 MUL SWAP5 SWAP1 SWAP5 OR PUSH10 0xFF000000FF0000000000 NOT AND PUSH1 0x1 PUSH1 0x28 SHL SWAP4 DUP7 AND SWAP4 SWAP1 SWAP4 MUL PUSH1 0xFF PUSH1 0x48 SHL NOT AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x48 SHL SWAP3 DUP6 AND SWAP3 SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR PUSH1 0xFF PUSH1 0x38 SHL NOT AND PUSH1 0x1 PUSH1 0x38 SHL SWAP2 SWAP1 SWAP4 AND MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1C29 JUMPI POP PUSH1 0x0 PUSH2 0xBE0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C35 DUP4 DUP6 PUSH2 0x3861 JUMP JUMPDEST SWAP1 POP DUP3 PUSH2 0x1C42 DUP6 DUP4 PUSH2 0x383F JUMP JUMPDEST EQ PUSH2 0xCBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206D756C7469706C69636174696F6E206F766572666C6F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x77 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBE DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 DUP2 MSTORE POP PUSH2 0x2324 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1D31 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1D87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F207A65726F20616464726573730000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1E48 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1E9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1F00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657220616D6F756E74206D757374206265206772656174657220 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x7468616E207A65726F PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1F2C JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1F94 JUMPI PUSH1 0x13 SLOAD DUP2 GT ISZERO PUSH2 0x1F94 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657220616D6F756E74206578636565647320746865206D617854 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x3C20B6B7BAB73A17 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1FC0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1FD4 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1FEE JUMPI POP PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x202C JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x209C JUMPI PUSH1 0x0 PUSH2 0x203C DUP4 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x14 SLOAD SWAP1 SWAP2 POP PUSH2 0x204C DUP4 DUP4 PUSH2 0x3802 JUMP JUMPDEST GT ISZERO PUSH2 0x209A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45786365656473206D6178696D756D2077616C6C657420616D6F756E74000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x20A7 ADDRESS PUSH2 0x11CD JUMP JUMPDEST SWAP1 POP PUSH1 0x13 SLOAD DUP2 LT PUSH2 0x20B7 JUMPI POP PUSH1 0x13 SLOAD JUMPDEST PUSH1 0x15 SLOAD PUSH1 0x11 SLOAD SWAP1 DUP3 LT ISZERO SWAP1 PUSH1 0x1 PUSH1 0xF8 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x210A JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x2118 JUMPI POP PUSH1 0x12 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2178 JUMPI DUP1 ISZERO PUSH2 0x2131 JUMPI PUSH1 0x15 SLOAD SWAP2 POP PUSH2 0x2131 DUP3 PUSH2 0x2352 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2178 JUMPI SELFBALANCE PUSH8 0xDE0B6B3A7640000 DUP2 GT ISZERO PUSH2 0x2176 JUMPI PUSH1 0x16 SLOAD DUP2 GT ISZERO PUSH2 0x2163 JUMPI POP PUSH1 0x16 SLOAD JUMPDEST PUSH2 0x2176 PUSH2 0x2171 DUP3 PUSH1 0x64 PUSH2 0x1C99 JUMP JUMPDEST PUSH2 0x2577 JUMP JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 SWAP1 PUSH1 0xFF AND DUP1 PUSH2 0x21BA JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x21C3 JUMPI POP PUSH1 0x0 JUMPDEST PUSH2 0x21CF DUP7 DUP7 DUP7 DUP5 PUSH2 0x25AD JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x21FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP2 SWAP1 PUSH2 0x373C JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x2208 DUP5 DUP7 PUSH2 0x3880 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x221E PUSH2 0x27CE JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x222D DUP3 DUP3 PUSH2 0x1C99 JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2241 DUP4 DUP6 PUSH2 0x3802 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xCBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x22AA DUP11 PUSH2 0x2950 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x22C8 DUP14 DUP7 DUP7 PUSH2 0x22C3 PUSH2 0x2211 JUMP JUMPDEST PUSH2 0x2992 JUMP JUMPDEST SWAP2 SWAP16 SWAP1 SWAP15 POP SWAP1 SWAP13 POP SWAP6 SWAP11 POP SWAP4 SWAP9 POP SWAP2 SWAP7 POP SWAP3 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBE DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 DUP2 MSTORE POP PUSH2 0x21D7 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH2 0x2345 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9F SWAP2 SWAP1 PUSH2 0x373C JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x2208 DUP5 DUP7 PUSH2 0x383F JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB AND PUSH1 0x1 PUSH1 0xF8 SHL OR SWAP1 DUP2 SWAP1 SSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL DUP2 DIV PUSH1 0xFF SWAP1 DUP2 AND SWAP2 PUSH4 0x1000000 DUP2 DIV DUP3 AND SWAP2 PUSH2 0x239F SWAP2 PUSH1 0x1 PUSH1 0x38 SHL DUP2 DIV DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x28 SHL SWAP1 SWAP2 DIV AND PUSH2 0x381A JUMP JUMPDEST PUSH2 0x23A9 SWAP2 SWAP1 PUSH2 0x381A JUMP JUMPDEST PUSH2 0x23B3 SWAP2 SWAP1 PUSH2 0x381A JUMP JUMPDEST PUSH1 0x11 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x28 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2412 JUMPI PUSH1 0x11 SLOAD PUSH2 0x23F4 SWAP1 PUSH1 0xFF PUSH1 0x1 PUSH1 0x28 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0x23EE SWAP1 DUP8 SWAP1 DUP8 AND PUSH2 0x1C99 JUMP JUMPDEST SWAP1 PUSH2 0x1C1A JUMP JUMPDEST PUSH1 0x3 SLOAD SWAP1 SWAP3 POP PUSH2 0x240F SWAP1 ADDRESS SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH2 0x29E2 JUMP JUMPDEST POP DUP1 JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 PUSH1 0x38 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2474 JUMPI PUSH1 0x11 SLOAD PUSH2 0x2445 SWAP1 PUSH1 0xFF PUSH1 0x1 PUSH1 0x38 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0x23EE SWAP1 DUP8 SWAP1 DUP8 AND PUSH2 0x1C99 JUMP JUMPDEST SWAP2 POP PUSH2 0x2467 ADDRESS PUSH1 0x11 PUSH1 0xB SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH2 0x29E2 JUMP JUMPDEST PUSH2 0x2471 DUP3 DUP3 PUSH2 0x3802 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x24BF JUMPI PUSH1 0x11 SLOAD PUSH2 0x24A7 SWAP1 PUSH1 0xFF PUSH1 0x1 PUSH1 0x48 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0x23EE SWAP1 DUP8 SWAP1 DUP8 AND PUSH2 0x1C99 JUMP JUMPDEST SWAP2 POP PUSH2 0x24B2 DUP3 PUSH2 0x2B72 JUMP JUMPDEST PUSH2 0x24BC DUP3 DUP3 PUSH2 0x3802 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x11 SLOAD PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2562 JUMPI PUSH2 0x24DB DUP5 DUP3 PUSH2 0x22E2 JUMP JUMPDEST SWAP4 POP PUSH1 0x0 PUSH2 0x24EA DUP6 PUSH1 0x2 PUSH2 0x1C99 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x24F8 DUP7 DUP4 PUSH2 0x22E2 JUMP JUMPDEST SWAP1 POP SELFBALANCE PUSH2 0x2504 DUP4 PUSH2 0x2B72 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2510 SELFBALANCE DUP4 PUSH2 0x22E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x251C DUP4 DUP3 PUSH2 0x2D39 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x17BBFB9A6069321B6DED73BD96327C9E6B7212A5CD51FF219CD61370ACAFB561 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMPDEST POP POP PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB AND PUSH1 0x1 PUSH1 0xF8 SHL OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x259B JUMPI PUSH2 0x259B DUP2 PUSH2 0x2E2E JUMP JUMPDEST POP PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB AND SWAP1 SSTORE JUMP JUMPDEST DUP1 PUSH2 0x25BA JUMPI PUSH2 0x25BA PUSH2 0x2FD3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x25FB JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x2610 JUMPI PUSH2 0x260B DUP5 DUP5 DUP5 PUSH2 0x310F JUMP JUMPDEST PUSH2 0x270E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x2651 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2661 JUMPI PUSH2 0x260B DUP5 DUP5 DUP5 PUSH2 0x3235 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x26A3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x26B3 JUMPI PUSH2 0x260B DUP5 DUP5 DUP5 PUSH2 0x32DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x26F3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2703 JUMPI PUSH2 0x260B DUP5 DUP5 DUP5 PUSH2 0x3322 JUMP JUMPDEST PUSH2 0x270E DUP5 DUP5 DUP5 PUSH2 0x32DE JUMP JUMPDEST DUP1 PUSH2 0x27C8 JUMPI PUSH1 0x11 DUP1 SLOAD PUSH1 0xFF PUSH1 0x48 SHL NOT PUSH8 0xFF00FF0000000000 NOT PUSH4 0xFF00FF00 NOT DUP4 AND PUSH4 0xFF000000 NOT PUSH2 0x100 PUSH3 0x10000 DUP7 DIV PUSH1 0xFF SWAP1 DUP2 AND SWAP2 SWAP1 SWAP2 MUL SWAP2 DUP3 AND SWAP3 SWAP1 SWAP3 OR PUSH5 0x100000000 PUSH2 0xFF00 NOT SWAP1 SWAP7 AND SWAP1 SWAP2 OR SWAP5 SWAP1 SWAP5 DIV DUP2 AND PUSH4 0x1000000 MUL SWAP4 SWAP1 SWAP4 OR SWAP1 DUP2 AND PUSH1 0xFF PUSH1 0x38 SHL NOT PUSH7 0x1000000000000 DUP4 DIV DUP6 AND PUSH1 0x1 PUSH1 0x28 SHL MUL SWAP1 DUP2 AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 PUSH1 0x40 SHL PUSH6 0xFF0000000000 NOT SWAP1 SWAP4 AND SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 DIV DUP4 AND PUSH1 0x1 PUSH1 0x38 SHL MUL OR SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x50 SHL SWAP1 SWAP2 DIV SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x48 SHL MUL OR SWAP1 SSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xB SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 JUMPDEST PUSH1 0x9 SLOAD DUP2 LT ISZERO PUSH2 0x2920 JUMPI DUP3 PUSH1 0x4 PUSH1 0x0 PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x27FD JUMPI PUSH2 0x27FD PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SLOAD GT DUP1 PUSH2 0x2868 JUMPI POP DUP2 PUSH1 0x5 PUSH1 0x0 PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x2841 JUMPI PUSH2 0x2841 PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SLOAD GT JUMPDEST ISZERO PUSH2 0x287E JUMPI PUSH1 0xC SLOAD PUSH1 0xB SLOAD SWAP5 POP SWAP5 POP POP POP POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x28C4 PUSH1 0x4 PUSH1 0x0 PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x2898 JUMPI PUSH2 0x2898 PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SLOAD DUP5 SWAP1 PUSH2 0x22E2 JUMP JUMPDEST SWAP3 POP PUSH2 0x290C PUSH1 0x5 PUSH1 0x0 PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x28E0 JUMPI PUSH2 0x28E0 PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SLOAD DUP4 SWAP1 PUSH2 0x22E2 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x2918 DUP2 PUSH2 0x38D2 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x27DB JUMP JUMPDEST POP PUSH1 0xB SLOAD PUSH1 0xC SLOAD PUSH2 0x2930 SWAP2 PUSH2 0x1C99 JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x2947 JUMPI PUSH1 0xC SLOAD PUSH1 0xB SLOAD SWAP4 POP SWAP4 POP POP POP SWAP1 SWAP2 JUMP JUMPDEST SWAP1 SWAP4 SWAP1 SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x295F DUP6 PUSH2 0x3395 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x296C DUP7 PUSH2 0x33B5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2984 DUP3 PUSH2 0x297E DUP10 DUP7 PUSH2 0x22E2 JUMP JUMPDEST SWAP1 PUSH2 0x22E2 JUMP JUMPDEST SWAP8 SWAP3 SWAP7 POP SWAP1 SWAP5 POP SWAP1 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x29A1 DUP9 DUP7 PUSH2 0x1C1A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x29AF DUP9 DUP8 PUSH2 0x1C1A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x29BD DUP9 DUP9 PUSH2 0x1C1A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x29CF DUP3 PUSH2 0x297E DUP7 DUP7 PUSH2 0x22E2 JUMP JUMPDEST SWAP4 SWAP12 SWAP4 SWAP11 POP SWAP2 SWAP9 POP SWAP2 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29EC PUSH2 0x2211 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x29FA DUP4 DUP4 PUSH2 0x1C1A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x2A20 SWAP1 DUP3 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x2A4F SWAP1 DUP3 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP9 AND DUP2 MSTORE PUSH1 0x8 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2AC0 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2AA6 SWAP1 DUP5 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2B1E JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2B04 SWAP1 DUP5 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP6 PUSH1 0x40 MLOAD PUSH2 0x2B63 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD DUP4 MSTORE PUSH1 0x0 SWAP3 PUSH1 0x20 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP ADDRESS DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2BA7 JUMPI PUSH2 0x2BA7 PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C34 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 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 0x2C58 SWAP2 SWAP1 PUSH2 0x34F5 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x2C6B JUMPI PUSH2 0x2C6B PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP PUSH2 0x2CB6 ADDRESS PUSH32 0x0 DUP5 PUSH2 0x1CDB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x791AC947 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x791AC947 SWAP1 PUSH2 0x2D0B SWAP1 DUP6 SWAP1 PUSH1 0x0 SWAP1 DUP7 SWAP1 ADDRESS SWAP1 TIMESTAMP SWAP1 PUSH1 0x4 ADD PUSH2 0x37C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2D64 ADDRESS PUSH32 0x0 DUP5 PUSH2 0x1CDB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xF305D719 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 PUSH1 0x44 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE TIMESTAMP PUSH1 0xA4 DUP3 ADD MSTORE PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0xF305D719 SWAP1 DUP4 SWAP1 PUSH1 0xC4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E02 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP 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 0x2E27 SWAP2 SWAP1 PUSH2 0x3630 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD DUP4 MSTORE PUSH1 0x0 SWAP3 PUSH1 0x20 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2EBC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 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 0x2EE0 SWAP2 SWAP1 PUSH2 0x34F5 JUMP JUMPDEST DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2EF3 JUMPI PUSH2 0x2EF3 PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP ADDRESS DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x2F27 JUMPI PUSH2 0x2F27 PUSH2 0x3919 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD ADD MSTORE PUSH1 0x3 SLOAD PUSH32 0x0 DUP3 AND SWAP2 PUSH4 0xB6F9DE95 SWAP2 DUP6 SWAP2 PUSH1 0x0 SWAP2 DUP7 SWAP2 AND PUSH2 0x2F7E TIMESTAMP PUSH2 0x12C PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F9D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3707 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FCA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x2FF5 JUMPI POP PUSH1 0x11 SLOAD PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x300B JUMPI POP PUSH1 0x11 SLOAD PUSH1 0x1 PUSH1 0x28 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x3021 JUMPI POP PUSH1 0x11 SLOAD PUSH1 0x1 PUSH1 0x38 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x3037 JUMPI POP PUSH1 0x11 SLOAD PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x303E JUMPI JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD PUSH11 0xFFFF00FF00FF00FF00FF00 NOT PUSH9 0xFF00FF000000000000 NOT PUSH5 0xFF00FF0000 NOT DUP4 AND PUSH5 0xFF00000000 NOT PUSH2 0x100 DUP6 DIV PUSH1 0xFF SWAP1 DUP2 AND PUSH3 0x10000 MUL SWAP2 DUP3 AND SWAP3 SWAP1 SWAP3 OR PUSH4 0x1000000 PUSH3 0xFF0000 NOT SWAP1 SWAP7 AND SWAP1 SWAP2 OR SWAP5 SWAP1 SWAP5 DIV DUP2 AND PUSH5 0x100000000 MUL SWAP4 SWAP1 SWAP4 OR SWAP1 DUP2 AND PUSH9 0xFF0000000000000000 NOT PUSH1 0x1 PUSH1 0x28 SHL DUP4 DIV DUP6 AND PUSH7 0x1000000000000 MUL SWAP1 DUP2 AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 PUSH1 0x38 SHL PUSH7 0xFF000000000000 NOT SWAP1 SWAP4 AND SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 DIV DUP4 AND PUSH1 0x1 PUSH1 0x40 SHL MUL OR SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x48 SHL SWAP1 SWAP2 DIV SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH10 0xFF00FF00FF00FF00FF00 NOT AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3121 DUP8 PUSH2 0x2293 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP16 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP6 SWAP12 POP SWAP4 SWAP10 POP SWAP2 SWAP8 POP SWAP6 POP SWAP4 POP SWAP2 POP PUSH2 0x3153 SWAP1 DUP9 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x4 SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x3182 SWAP1 DUP8 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP11 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x31B1 SWAP1 DUP7 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x31D3 DUP2 PUSH2 0x3416 JUMP JUMPDEST PUSH2 0x31DD DUP5 DUP4 PUSH2 0x349E JUMP JUMPDEST DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP6 PUSH1 0x40 MLOAD PUSH2 0x3222 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3247 DUP8 PUSH2 0x2293 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP16 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP6 SWAP12 POP SWAP4 SWAP10 POP SWAP2 SWAP8 POP SWAP6 POP SWAP4 POP SWAP2 POP PUSH2 0x3279 SWAP1 DUP8 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP12 AND DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x32AF SWAP1 DUP5 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x4 SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x31B1 SWAP1 DUP7 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x32F0 DUP8 PUSH2 0x2293 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP16 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP6 SWAP12 POP SWAP4 SWAP10 POP SWAP2 SWAP8 POP SWAP6 POP SWAP4 POP SWAP2 POP PUSH2 0x3182 SWAP1 DUP8 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3334 DUP8 PUSH2 0x2293 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP16 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP6 SWAP12 POP SWAP4 SWAP10 POP SWAP2 SWAP8 POP SWAP6 POP SWAP4 POP SWAP2 POP PUSH2 0x3366 SWAP1 DUP9 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x4 SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x3279 SWAP1 DUP8 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xBE0 SWAP1 PUSH1 0x64 SWAP1 PUSH2 0x1321 SWAP1 DUP6 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1C1A JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xBE0 SWAP1 PUSH1 0x64 SWAP1 PUSH2 0x1321 SWAP1 PUSH1 0xFF PUSH1 0x1 PUSH1 0x48 SHL DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x38 SHL DUP2 DIV DUP3 AND SWAP2 PUSH2 0x33F8 SWAP2 PUSH1 0x1 PUSH1 0x28 SHL DUP2 DIV DUP3 AND SWAP2 PUSH4 0x1000000 SWAP1 SWAP2 DIV AND PUSH2 0x381A JUMP JUMPDEST PUSH2 0x3402 SWAP2 SWAP1 PUSH2 0x381A JUMP JUMPDEST PUSH2 0x340C SWAP2 SWAP1 PUSH2 0x381A JUMP JUMPDEST DUP6 SWAP1 PUSH1 0xFF AND PUSH2 0x1C1A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3420 PUSH2 0x2211 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x342E DUP4 DUP4 PUSH2 0x1C1A JUMP JUMPDEST ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x344B SWAP1 DUP3 PUSH2 0x2234 JUMP JUMPDEST ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x8 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x192C JUMPI ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3489 SWAP1 DUP5 PUSH2 0x2234 JUMP JUMPDEST ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x34AB SWAP1 DUP4 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0xC SSTORE PUSH1 0xD SLOAD PUSH2 0x34BB SWAP1 DUP3 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0xD SSTORE POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x34D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x34EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCBE DUP2 PUSH2 0x392F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3507 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCBE DUP2 PUSH2 0x392F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3530 DUP2 PUSH2 0x392F JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3540 DUP2 PUSH2 0x392F JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3560 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x356B DUP2 PUSH2 0x392F JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x357B DUP2 PUSH2 0x392F JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x359F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x35AA DUP2 PUSH2 0x392F JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCBE DUP2 PUSH2 0x3947 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCBE DUP2 PUSH2 0x3947 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x361E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3540 DUP2 PUSH2 0x3947 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3645 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3676 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x367F DUP7 PUSH2 0x34C2 JUMP JUMPDEST SWAP5 POP PUSH2 0x368D PUSH1 0x20 DUP8 ADD PUSH2 0x34C2 JUMP JUMPDEST SWAP4 POP PUSH2 0x369B PUSH1 0x40 DUP8 ADD PUSH2 0x34C2 JUMP JUMPDEST SWAP3 POP PUSH2 0x36A9 PUSH1 0x60 DUP8 ADD PUSH2 0x34C2 JUMP JUMPDEST SWAP2 POP PUSH2 0x36B7 PUSH1 0x80 DUP8 ADD PUSH2 0x34C2 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x36FC JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x36D7 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3720 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x36C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3769 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x374D JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x377B JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST DUP6 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x37E5 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x36C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x3815 JUMPI PUSH2 0x3815 PUSH2 0x38ED JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP5 AND DUP1 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0x3837 JUMPI PUSH2 0x3837 PUSH2 0x38ED JUMP JUMPDEST ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x385C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x387B JUMPI PUSH2 0x387B PUSH2 0x38ED JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3892 JUMPI PUSH2 0x3892 PUSH2 0x38ED JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x38AB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x38CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x38E6 JUMPI PUSH2 0x38E6 PUSH2 0x38ED JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3944 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3944 JUMPI PUSH1 0x0 DUP1 REVERT INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E63658BE0079C531659141344 0xCD 0x1F 0xD0 LOG4 CALLCODE DUP5 NOT 0x49 PUSH32 0x9722A3DAAFE3B4186F6B6457E045524332303A2064656372656173656420616C PUSH13 0x6F77616E63652062656C6F7720 PUSH27 0x65726FA2646970667358221220ECD62A288463A7F3EA80D11D249A 0x28 PUSH17 0x521DE16E9C1384B974150BCC4898272E64 PUSH20 0x6F6C634300080700330000000000000000000000 ",
"sourceMap": "27577:24612:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31359:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32271:161;;;;;;;;;;-1:-1:-1;32271:161:0;;;;;:::i;:::-;;:::i;:::-;;;5846:14:1;;5839:22;5821:41;;5809:2;5794:18;32271:161:0;5681:187:1;33392:87:0;;;;;;;;;;-1:-1:-1;33461:10:0;;33392:87;;;16906:25:1;;;16894:2;16879:18;33392:87:0;16760:177:1;27944:31:0;;;;;;;;;;-1:-1:-1;27944:31:0;;;;-1:-1:-1;;;27944:31:0;;;;;;;;;18025:4:1;18013:17;;;17995:36;;17983:2;17968:18;27944:31:0;17853:184:1;31636:95:0;;;;;;;;;;-1:-1:-1;31716:7:0;;31636:95;;29210:28;;;;;;;;;;-1:-1:-1;29210:28:0;;;;-1:-1:-1;;;29210:28:0;;;;;;32440:313;;;;;;;;;;-1:-1:-1;32440:313:0;;;;;:::i;:::-;;:::i;29301:47::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4522:32:1;;;4504:51;;4492:2;4477:18;29301:47:0;4358:203:1;34313:241:0;;;;;;;;;;-1:-1:-1;34313:241:0;;;;;:::i;:::-;;:::i;31545:83::-;;;;;;;;;;-1:-1:-1;31611:9:0;;;;31545:83;;27982:34;;;;;;;;;;-1:-1:-1;27982:34:0;;;;-1:-1:-1;;;27982:34:0;;;;;;34915:468;;;;;;;;;;-1:-1:-1;34915:468:0;;;;;:::i;:::-;;:::i;:::-;;32761:218;;;;;;;;;;-1:-1:-1;32761:218:0;;;;;:::i;:::-;;:::i;28860:24::-;;;;;;;;;;-1:-1:-1;28860:24:0;;;;;;;;;;;33487:377;;;;;;;;;;-1:-1:-1;33487:377:0;;;;;:::i;:::-;;:::i;27872:28::-;;;;;;;;;;-1:-1:-1;27872:28:0;;;;-1:-1:-1;;;27872:28:0;;;;;;27804:27;;;;;;;;;;-1:-1:-1;27804:27:0;;;;-1:-1:-1;;;27804:27:0;;;;;;35397:111;;;;;;;;;;-1:-1:-1;35397:111:0;;;;;:::i;:::-;;:::i;33872:433::-;;;;;;;;;;-1:-1:-1;33872:433:0;;;;;:::i;:::-;;:::i;29469:40::-;;;;;;;;;;-1:-1:-1;29469:40:0;;;;;;;;27907:30;;;;;;;;;;-1:-1:-1;27907:30:0;;;;-1:-1:-1;;;27907:30:0;;;;;;29355:34;;;;;;;;;;;;;;;34562:345;;;;;;;;;;-1:-1:-1;34562:345:0;;;;;:::i;:::-;;:::i;41179:123::-;;;;;;;;;;-1:-1:-1;41179:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;41267:27:0;41243:4;41267:27;;;:18;:27;;;;;;;;;41179:123;29122:27;;;;;;;;;;-1:-1:-1;29122:27:0;;;;-1:-1:-1;;;29122:27:0;;;;;;28717:40;;;;;;;;;;-1:-1:-1;28717:40:0;;;;;;;;28943:30;;;;;;;;;;-1:-1:-1;28943:30:0;;;;;;;;;;;29560:31;;;;;;;;;;;;;;;;28023:38;;;;;;;;;;-1:-1:-1;28023:38:0;;;;-1:-1:-1;;;28023:38:0;;;;;;31739:198;;;;;;;;;;-1:-1:-1;31739:198:0;;;;;:::i;:::-;;:::i;20599:148::-;;;;;;;;;;;;;:::i;29526:27::-;;;;;;;;;;;;;;;;36815:271;;;;;;;;;;-1:-1:-1;36815:271:0;;;;;:::i;:::-;;:::i;36419:133::-;;;;;;;;;;-1:-1:-1;36419:133:0;;;;;:::i;:::-;;:::i;33264:120::-;;;;;;;;;;-1:-1:-1;33264:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;33356:20:0;33332:4;33356:20;;;:11;:20;;;;;;;;;33264:120;19929:79;;;;;;;;;;-1:-1:-1;19967:7:0;19994:6;-1:-1:-1;;;;;19994:6:0;19929:79;;37273:176;;;;;;;;;;-1:-1:-1;37273:176:0;;;;;:::i;:::-;;:::i;31450:87::-;;;;;;;;;;;;;:::i;32987:269::-;;;;;;;;;;-1:-1:-1;32987:269:0;;;;;:::i;:::-;;:::i;21630:324::-;;;;;;;;;;;;;:::i;31945:167::-;;;;;;;;;;-1:-1:-1;31945:167:0;;;;;:::i;:::-;;:::i;28619:22::-;;;;;;;;;;;;;;;;28796:21;;;;;;;;;;;;;:::i;21163:89::-;;;;;;;;;;-1:-1:-1;21235:9:0;;21163:89;;36303:108;;;;;;;;;;-1:-1:-1;36386:17:0;;36303:108;;29040:25;;;;;;;;;;-1:-1:-1;29040:25:0;;;;-1:-1:-1;;;29040:25:0;;;;;;37094:171;;;;;;;;;;-1:-1:-1;37094:171:0;;;;;:::i;:::-;;:::i;27838:27::-;;;;;;;;;;-1:-1:-1;27838:27:0;;;;-1:-1:-1;;;27838:27:0;;;;;;29598:44;;;;;;;;;;;;;;;;28770:19;;;;;;;;;;;;;:::i;36564:243::-;;;;;;;;;;-1:-1:-1;36564:243:0;;;;;:::i;:::-;;:::i;21328:226::-;;;;;;;;;;-1:-1:-1;21328:226:0;;;;;:::i;:::-;;:::i;32120:143::-;;;;;;;;;;-1:-1:-1;32120:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;32228:18:0;;;32201:7;32228:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;32120:143;35520:110;;;;;;;;;;-1:-1:-1;35520:110:0;;;;;:::i;:::-;;:::i;51921:265::-;;;;;;;;;;-1:-1:-1;51921:265:0;;;;;:::i;:::-;;:::i;29396:32::-;;;;;;;;;;-1:-1:-1;29396:32:0;;;;-1:-1:-1;;;29396:32:0;;-1:-1:-1;;;;;29396:32:0;;;20911:244;;;;;;;;;;-1:-1:-1;20911:244:0;;;;;:::i;:::-;;:::i;35642:649::-;;;;;;;;;;-1:-1:-1;35642:649:0;;;;;:::i;:::-;;:::i;28407:66::-;;;;;;;;;;-1:-1:-1;28407:66:0;;;;-1:-1:-1;;;;;28407:66:0;;;31359:83;31396:13;31429:5;31422:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31359:83;:::o;32271:161::-;32346:4;32363:39;8478:10;32386:7;32395:6;32363:8;:39::i;:::-;-1:-1:-1;32420:4:0;32271:161;;;;;:::o;32440:313::-;32538:4;32555:36;32565:6;32573:9;32584:6;32555:9;:36::i;:::-;32602:121;32611:6;8478:10;32633:89;32671:6;32633:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32633:19:0;;;;;;:11;:19;;;;;;;;8478:10;32633:33;;;;;;;;;;:37;:89::i;:::-;32602:8;:121::i;:::-;-1:-1:-1;32741:4:0;32440:313;;;;;:::o;34313:241::-;34379:7;34418;;34407;:18;;34399:61;;;;-1:-1:-1;;;34399:61:0;;12099:2:1;34399:61:0;;;12081:21:1;12138:2;12118:18;;;1
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