Skip to content

Instantly share code, notes, and snippets.

@fadlisaad
Created April 5, 2022 02:56
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 fadlisaad/133f78d21e45cefe11de79fc25492368 to your computer and use it in GitHub Desktop.
Save fadlisaad/133f78d21e45cefe11de79fc25492368 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.4.26+commit.4563c3fc.js&optimize=false&runs=200&gist=
REMIX EXAMPLE PROJECT
Remix example project is present when Remix loads for the very first time or there are no files existing in the File Explorer.
It contains 3 directories:
1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name.
2. 'scripts': Holds two scripts to deploy a contract. It is explained below.
3. 'tests': Contains one test file for 'Ballot' contract with unit tests in Solidity.
SCRIPTS
The 'scripts' folder contains example async/await scripts for deploying the 'Storage' contract.
For the deployment of any other contract, 'contractName' and 'constructorArgs' should be updated (along with other code if required).
Scripts have full access to the web3.js and ethers.js libraries.
To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled.
Output from script will appear in remix terminal.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Storage
* @dev Store & retrieve value in a variable
*/
contract Storage {
uint256 number;
/**
* @dev Store value in variable
* @param num value to store
*/
function store(uint256 num) public {
number = num;
}
/**
* @dev Return value
* @return value of 'number'
*/
function retrieve() public view returns (uint256){
return number;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Owner
* @dev Set & change owner
*/
contract Owner {
address private owner;
// event for EVM logging
event OwnerSet(address indexed oldOwner, address indexed newOwner);
// modifier to check if caller is owner
modifier isOwner() {
// If the first argument of 'require' evaluates to 'false', execution terminates and all
// changes to the state and to Ether balances are reverted.
// This used to consume all gas in old EVM versions, but not anymore.
// It is often a good idea to use 'require' to check if functions are called correctly.
// As a second argument, you can also provide an explanation about what went wrong.
require(msg.sender == owner, "Caller is not owner");
_;
}
/**
* @dev Set contract deployer as owner
*/
constructor() {
owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
emit OwnerSet(address(0), owner);
}
/**
* @dev Change owner
* @param newOwner address of new owner
*/
function changeOwner(address newOwner) public isOwner {
emit OwnerSet(owner, newOwner);
owner = newOwner;
}
/**
* @dev Return owner address
* @return address of owner
*/
function getOwner() external view returns (address) {
return owner;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.4.24;
//Safe Math Interface
contract SafeMath {
function safeAdd(uint a, uint b) public pure returns (uint c) {
c = a + b;
require(c >= a);
}
function safeSub(uint a, uint b) public pure returns (uint c) {
require(b <= a);
c = a - b;
}
function safeMul(uint a, uint b) public pure returns (uint c) {
c = a * b;
require(a == 0 || c / a == b);
}
function safeDiv(uint a, uint b) public pure returns (uint c) {
require(b > 0);
c = a / b;
}
}
//ERC Token Standard #20 Interface
contract ERC20Interface {
function totalSupply() public constant returns (uint);
function balanceOf(address tokenOwner) public constant returns (uint balance);
function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
function transfer(address to, uint tokens) public returns (bool success);
function approve(address spender, uint tokens) public returns (bool success);
function transferFrom(address from, address to, uint tokens) public returns (bool success);
event Transfer(address indexed from, address indexed to, uint tokens);
event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}
//Contract function to receive approval and execute function in one call
contract ApproveAndCallFallBack {
function receiveApproval(address from, uint256 tokens, address token, bytes data) public;
}
//Actual token contract
contract CodaToken is ERC20Interface, SafeMath {
string public symbol;
string public name;
uint8 public decimals;
uint public _totalSupply;
mapping(address => uint) balances;
mapping(address => mapping(address => uint)) allowed;
constructor() public {
symbol = "CODA";
name = "CODA Token";
decimals = 2;
_totalSupply = 6000000000;
balances[0xE6Ff88dcCB43023ADC229361Ef7BCFF2EaAb0D6E] = _totalSupply;
emit Transfer(address(0), 0xE6Ff88dcCB43023ADC229361Ef7BCFF2EaAb0D6E, _totalSupply);
}
function totalSupply() public constant returns (uint) {
return _totalSupply - balances[address(0)];
}
function balanceOf(address tokenOwner) public constant returns (uint balance) {
return balances[tokenOwner];
}
function transfer(address to, uint tokens) public returns (bool success) {
balances[msg.sender] = safeSub(balances[msg.sender], tokens);
balances[to] = safeAdd(balances[to], tokens);
emit Transfer(msg.sender, to, tokens);
return true;
}
function approve(address spender, uint tokens) public returns (bool success) {
allowed[msg.sender][spender] = tokens;
emit Approval(msg.sender, spender, tokens);
return true;
}
function transferFrom(address from, address to, uint tokens) public returns (bool success) {
balances[from] = safeSub(balances[from], tokens);
allowed[from][msg.sender] = safeSub(allowed[from][msg.sender], tokens);
balances[to] = safeAdd(balances[to], tokens);
emit Transfer(from, to, tokens);
return true;
}
function allowance(address tokenOwner, address spender) public constant returns (uint remaining) {
return allowed[tokenOwner][spender];
}
function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {
allowed[msg.sender][spender] = tokens;
emit Approval(msg.sender, spender, tokens);
ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);
return true;
}
function () public payable {
revert();
}
}
{
"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": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"receiveApproval(address,uint256,address,bytes)": "8f4ffcb1"
}
},
"abi": [
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
},
{
"name": "token",
"type": "address"
},
{
"name": "data",
"type": "bytes"
}
],
"name": "receiveApproval",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"id": "ac86546d55ee173f5436e527e3cd5e9e",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.4.26",
"solcLongVersion": "0.4.26+commit.4563c3fc",
"input": {
"language": "Solidity",
"sources": {
"contracts/3_Coda.sol": {
"content": "// SPDX-License-Identifier: GPL-3.0\n\npragma solidity ^0.4.24;\n \n//Safe Math Interface\n \ncontract SafeMath {\n \n function safeAdd(uint a, uint b) public pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n \n function safeSub(uint a, uint b) public pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n \n function safeMul(uint a, uint b) public pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n \n function safeDiv(uint a, uint b) public pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n//ERC Token Standard #20 Interface\n \ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n \n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n//Contract function to receive approval and execute function in one call\n\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n//Actual token contract\n\ncontract CodaToken is ERC20Interface, SafeMath {\n string public symbol;\n string public name;\n uint8 public decimals;\n uint public _totalSupply;\n \n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n \n constructor() public {\n symbol = \"CODA\";\n name = \"CODA Token\";\n decimals = 2;\n _totalSupply = 6000000000;\n balances[0xE6Ff88dcCB43023ADC229361Ef7BCFF2EaAb0D6E] = _totalSupply;\n emit Transfer(address(0), 0xE6Ff88dcCB43023ADC229361Ef7BCFF2EaAb0D6E, _totalSupply);\n }\n \n function totalSupply() public constant returns (uint) {\n return _totalSupply - balances[address(0)];\n }\n \n function balanceOf(address tokenOwner) public constant returns (uint balance) {\n return balances[tokenOwner];\n }\n \n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = safeSub(balances[msg.sender], tokens);\n balances[to] = safeAdd(balances[to], tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n \n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n \n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = safeSub(balances[from], tokens);\n allowed[from][msg.sender] = safeSub(allowed[from][msg.sender], tokens);\n balances[to] = safeAdd(balances[to], tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n \n function allowance(address tokenOwner, address spender) public constant returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n \n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n \n function () public payable {\n revert();\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/3_Coda.sol": {
"ApproveAndCallFallBack": {
"abi": [
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
},
{
"name": "token",
"type": "address"
},
{
"name": "data",
"type": "bytes"
}
],
"name": "receiveApproval",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": "",
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"legacyAssembly": null,
"methodIdentifiers": {
"receiveApproval(address,uint256,address,bytes)": "8f4ffcb1"
}
},
"metadata": "",
"userdoc": {
"methods": {}
}
},
"CodaToken": {
"abi": [
{
"constant": true,
"inputs": [],
"name": "name",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "to",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "decimals",
"outputs": [
{
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "_totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "tokenOwner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "balance",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeSub",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "to",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeDiv",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
},
{
"name": "data",
"type": "bytes"
}
],
"name": "approveAndCall",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeMul",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "tokenOwner",
"type": "address"
},
{
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"name": "remaining",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeAdd",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "tokens",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "tokenOwner",
"type": "address"
},
{
"indexed": true,
"name": "spender",
"type": "address"
},
{
"indexed": false,
"name": "tokens",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
}
],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": " /* \"contracts/3_Coda.sol\":1563:3769 contract CodaToken is ERC20Interface, SafeMath {... */\n mstore(0x40, 0x80)\n /* \"contracts/3_Coda.sol\":1825:2134 constructor() public {... */\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_1\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\ntag_1:\n /* \"contracts/3_Coda.sol\":1825:2134 constructor() public {... */\n pop\n /* \"contracts/3_Coda.sol\":1856:1871 symbol = \"CODA\" */\n 0x40\n dup1\n mload\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n 0x4\n dup2\n mstore\n 0x20\n add\n 0x434f444100000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n /* \"contracts/3_Coda.sol\":1856:1862 symbol */\n 0x0\n /* \"contracts/3_Coda.sol\":1856:1871 symbol = \"CODA\" */\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n tag_4\n swap3\n swap2\n swap1\n jump\t// in(tag_5)\ntag_4:\n pop\n /* \"contracts/3_Coda.sol\":1881:1900 name = \"CODA Token\" */\n 0x40\n dup1\n mload\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n 0xa\n dup2\n mstore\n 0x20\n add\n 0x434f444120546f6b656e00000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n /* \"contracts/3_Coda.sol\":1881:1885 name */\n 0x1\n /* \"contracts/3_Coda.sol\":1881:1900 name = \"CODA Token\" */\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n tag_6\n swap3\n swap2\n swap1\n jump\t// in(tag_5)\ntag_6:\n pop\n /* \"contracts/3_Coda.sol\":1921:1922 2 */\n 0x2\n /* \"contracts/3_Coda.sol\":1910:1918 decimals */\n dup1\n 0x0\n /* \"contracts/3_Coda.sol\":1910:1922 decimals = 2 */\n 0x100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0xff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/3_Coda.sol\":1947:1957 6000000000 */\n 0x165a0bc00\n /* \"contracts/3_Coda.sol\":1932:1944 _totalSupply */\n 0x3\n /* \"contracts/3_Coda.sol\":1932:1957 _totalSupply = 6000000000 */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/3_Coda.sol\":2022:2034 _totalSupply */\n sload(0x3)\n /* \"contracts/3_Coda.sol\":1967:1975 balances */\n 0x4\n /* \"contracts/3_Coda.sol\":1967:2019 balances[0xE6Ff88dcCB43023ADC229361Ef7BCFF2EaAb0D6E] */\n 0x0\n /* \"contracts/3_Coda.sol\":1976:2018 0xE6Ff88dcCB43023ADC229361Ef7BCFF2EaAb0D6E */\n 0xe6ff88dccb43023adc229361ef7bcff2eaab0d6e\n /* \"contracts/3_Coda.sol\":1967:2019 balances[0xE6Ff88dcCB43023ADC229361Ef7BCFF2EaAb0D6E] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n /* \"contracts/3_Coda.sol\":1967:2034 balances[0xE6Ff88dcCB43023ADC229361Ef7BCFF2EaAb0D6E] = _totalSupply */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/3_Coda.sol\":2070:2112 0xE6Ff88dcCB43023ADC229361Ef7BCFF2EaAb0D6E */\n 0xe6ff88dccb43023adc229361ef7bcff2eaab0d6e\n /* \"contracts/3_Coda.sol\":2049:2127 Transfer(address(0), 0xE6Ff88dcCB43023ADC229361Ef7BCFF2EaAb0D6E, _totalSupply) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/3_Coda.sol\":2066:2067 0 */\n 0x0\n /* \"contracts/3_Coda.sol\":2049:2127 Transfer(address(0), 0xE6Ff88dcCB43023ADC229361Ef7BCFF2EaAb0D6E, _totalSupply) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n /* \"contracts/3_Coda.sol\":2114:2126 _totalSupply */\n sload(0x3)\n /* \"contracts/3_Coda.sol\":2049:2127 Transfer(address(0), 0xE6Ff88dcCB43023ADC229361Ef7BCFF2EaAb0D6E, _totalSupply) */\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"contracts/3_Coda.sol\":1563:3769 contract CodaToken is ERC20Interface, SafeMath {... */\n jump(tag_7)\ntag_5:\n dup3\n dup1\n sload\n 0x1\n dup2\n 0x1\n and\n iszero\n 0x100\n mul\n sub\n and\n 0x2\n swap1\n div\n swap1\n 0x0\n mstore\n keccak256(0x0, 0x20)\n swap1\n 0x1f\n add\n 0x20\n swap1\n div\n dup2\n add\n swap3\n dup3\n 0x1f\n lt\n tag_9\n jumpi\n dup1\n mload\n not(0xff)\n and\n dup4\n dup1\n add\n or\n dup6\n sstore\n jump(tag_8)\ntag_9:\n dup3\n dup1\n add\n 0x1\n add\n dup6\n sstore\n dup3\n iszero\n tag_8\n jumpi\n swap2\n dup3\n add\ntag_10:\n dup3\n dup2\n gt\n iszero\n tag_11\n jumpi\n dup3\n mload\n dup3\n sstore\n swap2\n 0x20\n add\n swap2\n swap1\n 0x1\n add\n swap1\n jump(tag_10)\ntag_11:\ntag_8:\n pop\n swap1\n pop\n tag_12\n swap2\n swap1\n jump\t// in(tag_13)\ntag_12:\n pop\n swap1\n jump\t// out\ntag_13:\n tag_14\n swap2\n swap1\ntag_15:\n dup1\n dup3\n gt\n iszero\n tag_16\n jumpi\n 0x0\n dup2\n 0x0\n swap1\n sstore\n pop\n 0x1\n add\n jump(tag_15)\ntag_16:\n pop\n swap1\n jump\ntag_14:\n swap1\n jump\t// out\ntag_7:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x0\n codecopy\n 0x0\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/3_Coda.sol\":1563:3769 contract CodaToken is ERC20Interface, SafeMath {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x4))\n calldataload(0x0)\n 0x100000000000000000000000000000000000000000000000000000000\n swap1\n div\n 0xffffffff\n and\n dup1\n 0x6fdde03\n eq\n tag_2\n jumpi\n dup1\n 0x95ea7b3\n eq\n tag_3\n jumpi\n dup1\n 0x18160ddd\n eq\n tag_4\n jumpi\n dup1\n 0x23b872dd\n eq\n tag_5\n jumpi\n dup1\n 0x313ce567\n eq\n tag_6\n jumpi\n dup1\n 0x3eaaf86b\n eq\n tag_7\n jumpi\n dup1\n 0x70a08231\n eq\n tag_8\n jumpi\n dup1\n 0x95d89b41\n eq\n tag_9\n jumpi\n dup1\n 0xa293d1e8\n eq\n tag_10\n jumpi\n dup1\n 0xa9059cbb\n eq\n tag_11\n jumpi\n dup1\n 0xb5931f7c\n eq\n tag_12\n jumpi\n dup1\n 0xcae9ca51\n eq\n tag_13\n jumpi\n dup1\n 0xd05c78da\n eq\n tag_14\n jumpi\n dup1\n 0xdd62ed3e\n eq\n tag_15\n jumpi\n dup1\n 0xe6cb9013\n eq\n tag_16\n jumpi\n tag_1:\n /* \"contracts/3_Coda.sol\":3752:3760 revert() */\n 0x0\n dup1\n revert\n /* \"contracts/3_Coda.sol\":1642:1661 string public name */\n tag_2:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_19\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_19:\n /* \"contracts/3_Coda.sol\":1642:1661 string public name */\n pop\n tag_20\n jump(tag_21)\n tag_20:\n mload(0x40)\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n dup4\n dup2\n dup2\n mload\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n dup1\n dup4\n dup4\n /* \"--CODEGEN--\":23:24 */\n 0x0\n /* \"--CODEGEN--\":8:108 */\n tag_22:\n /* \"--CODEGEN--\":33:36 */\n dup4\n /* \"--CODEGEN--\":30:31 */\n dup2\n /* \"--CODEGEN--\":27:37 */\n lt\n /* \"--CODEGEN--\":8:108 */\n iszero\n tag_23\n jumpi\n /* \"--CODEGEN--\":99:100 */\n dup1\n /* \"--CODEGEN--\":94:97 */\n dup3\n /* \"--CODEGEN--\":90:101 */\n add\n /* \"--CODEGEN--\":84:102 */\n mload\n /* \"--CODEGEN--\":80:81 */\n dup2\n /* \"--CODEGEN--\":75:78 */\n dup5\n /* \"--CODEGEN--\":71:82 */\n add\n /* \"--CODEGEN--\":64:103 */\n mstore\n /* \"--CODEGEN--\":52:54 */\n 0x20\n /* \"--CODEGEN--\":49:50 */\n dup2\n /* \"--CODEGEN--\":45:55 */\n add\n /* \"--CODEGEN--\":40:55 */\n swap1\n pop\n /* \"--CODEGEN--\":8:108 */\n jump(tag_22)\n tag_23:\n /* \"--CODEGEN--\":12:26 */\n pop\n /* \"contracts/3_Coda.sol\":1642:1661 string public name */\n pop\n pop\n pop\n swap1\n pop\n swap1\n dup2\n add\n swap1\n 0x1f\n and\n dup1\n iszero\n tag_25\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x1\n dup4\n 0x20\n sub\n 0x100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n tag_25:\n pop\n swap3\n pop\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":2670:2874 function approve(address spender, uint tokens) public returns (bool success) {... */\n tag_3:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_26\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_26:\n /* \"contracts/3_Coda.sol\":2670:2874 function approve(address spender, uint tokens) public returns (bool success) {... */\n pop\n tag_27\n 0x4\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n jump(tag_28)\n tag_27:\n mload(0x40)\n dup1\n dup3\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":2141:2255 function totalSupply() public constant returns (uint) {... */\n tag_4:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_29\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_29:\n /* \"contracts/3_Coda.sol\":2141:2255 function totalSupply() public constant returns (uint) {... */\n pop\n tag_30\n jump(tag_31)\n tag_30:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":2881:3233 function transferFrom(address from, address to, uint tokens) public returns (bool success) {... */\n tag_5:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_32\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_32:\n /* \"contracts/3_Coda.sol\":2881:3233 function transferFrom(address from, address to, uint tokens) public returns (bool success) {... */\n pop\n tag_33\n 0x4\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n jump(tag_34)\n tag_33:\n mload(0x40)\n dup1\n dup3\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":1667:1688 uint8 public decimals */\n tag_6:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_35\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_35:\n /* \"contracts/3_Coda.sol\":1667:1688 uint8 public decimals */\n pop\n tag_36\n jump(tag_37)\n tag_36:\n mload(0x40)\n dup1\n dup3\n 0xff\n and\n 0xff\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":1694:1718 uint public _totalSupply */\n tag_7:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_38\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_38:\n /* \"contracts/3_Coda.sol\":1694:1718 uint public _totalSupply */\n pop\n tag_39\n jump(tag_40)\n tag_39:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":2262:2384 function balanceOf(address tokenOwner) public constant returns (uint balance) {... */\n tag_8:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_41\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_41:\n /* \"contracts/3_Coda.sol\":2262:2384 function balanceOf(address tokenOwner) public constant returns (uint balance) {... */\n pop\n tag_42\n 0x4\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n jump(tag_43)\n tag_42:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":1616:1636 string public symbol */\n tag_9:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_44\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_44:\n /* \"contracts/3_Coda.sol\":1616:1636 string public symbol */\n pop\n tag_45\n jump(tag_46)\n tag_45:\n mload(0x40)\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n dup4\n dup2\n dup2\n mload\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n dup1\n dup4\n dup4\n /* \"--CODEGEN--\":23:24 */\n 0x0\n /* \"--CODEGEN--\":8:108 */\n tag_47:\n /* \"--CODEGEN--\":33:36 */\n dup4\n /* \"--CODEGEN--\":30:31 */\n dup2\n /* \"--CODEGEN--\":27:37 */\n lt\n /* \"--CODEGEN--\":8:108 */\n iszero\n tag_48\n jumpi\n /* \"--CODEGEN--\":99:100 */\n dup1\n /* \"--CODEGEN--\":94:97 */\n dup3\n /* \"--CODEGEN--\":90:101 */\n add\n /* \"--CODEGEN--\":84:102 */\n mload\n /* \"--CODEGEN--\":80:81 */\n dup2\n /* \"--CODEGEN--\":75:78 */\n dup5\n /* \"--CODEGEN--\":71:82 */\n add\n /* \"--CODEGEN--\":64:103 */\n mstore\n /* \"--CODEGEN--\":52:54 */\n 0x20\n /* \"--CODEGEN--\":49:50 */\n dup2\n /* \"--CODEGEN--\":45:55 */\n add\n /* \"--CODEGEN--\":40:55 */\n swap1\n pop\n /* \"--CODEGEN--\":8:108 */\n jump(tag_47)\n tag_48:\n /* \"--CODEGEN--\":12:26 */\n pop\n /* \"contracts/3_Coda.sol\":1616:1636 string public symbol */\n pop\n pop\n pop\n swap1\n pop\n swap1\n dup2\n add\n swap1\n 0x1f\n and\n dup1\n iszero\n tag_50\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x1\n dup4\n 0x20\n sub\n 0x100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n tag_50:\n pop\n swap3\n pop\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":234:347 function safeSub(uint a, uint b) public pure returns (uint c) {... */\n tag_10:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_51\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_51:\n /* \"contracts/3_Coda.sol\":234:347 function safeSub(uint a, uint b) public pure returns (uint c) {... */\n pop\n tag_52\n 0x4\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n jump(tag_53)\n tag_52:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":2391:2663 function transfer(address to, uint tokens) public returns (bool success) {... */\n tag_11:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_54\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_54:\n /* \"contracts/3_Coda.sol\":2391:2663 function transfer(address to, uint tokens) public returns (bool success) {... */\n pop\n tag_55\n 0x4\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n jump(tag_56)\n tag_55:\n mload(0x40)\n dup1\n dup3\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":488:600 function safeDiv(uint a, uint b) public pure returns (uint c) {... */\n tag_12:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_57\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_57:\n /* \"contracts/3_Coda.sol\":488:600 function safeDiv(uint a, uint b) public pure returns (uint c) {... */\n pop\n tag_58\n 0x4\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n jump(tag_59)\n tag_58:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":3396:3708 function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {... */\n tag_13:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_60\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_60:\n /* \"contracts/3_Coda.sol\":3396:3708 function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {... */\n pop\n tag_61\n 0x4\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n dup3\n add\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n dup1\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap4\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup4\n dup4\n dup1\n dup3\n dup5\n calldatacopy\n dup3\n add\n swap2\n pop\n pop\n pop\n pop\n pop\n pop\n swap2\n swap3\n swap2\n swap3\n swap1\n pop\n pop\n pop\n jump(tag_62)\n tag_61:\n mload(0x40)\n dup1\n dup3\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":354:481 function safeMul(uint a, uint b) public pure returns (uint c) {... */\n tag_14:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_63\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_63:\n /* \"contracts/3_Coda.sol\":354:481 function safeMul(uint a, uint b) public pure returns (uint c) {... */\n pop\n tag_64\n 0x4\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n jump(tag_65)\n tag_64:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":3240:3389 function allowance(address tokenOwner, address spender) public constant returns (uint remaining) {... */\n tag_15:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_66\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_66:\n /* \"contracts/3_Coda.sol\":3240:3389 function allowance(address tokenOwner, address spender) public constant returns (uint remaining) {... */\n pop\n tag_67\n 0x4\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n jump(tag_68)\n tag_67:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":114:227 function safeAdd(uint a, uint b) public pure returns (uint c) {... */\n tag_16:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_69\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_69:\n /* \"contracts/3_Coda.sol\":114:227 function safeAdd(uint a, uint b) public pure returns (uint c) {... */\n pop\n tag_70\n 0x4\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n jump(tag_71)\n tag_70:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":1642:1661 string public name */\n tag_21:\n 0x1\n dup1\n sload\n 0x1\n dup2\n 0x1\n and\n iszero\n 0x100\n mul\n sub\n and\n 0x2\n swap1\n div\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n 0x1\n dup2\n 0x1\n and\n iszero\n 0x100\n mul\n sub\n and\n 0x2\n swap1\n div\n dup1\n iszero\n tag_72\n jumpi\n dup1\n 0x1f\n lt\n tag_73\n jumpi\n 0x100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_72)\n tag_73:\n dup3\n add\n swap2\n swap1\n 0x0\n mstore\n keccak256(0x0, 0x20)\n swap1\n tag_74:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x1\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_74\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_72:\n pop\n pop\n pop\n pop\n pop\n dup2\n jump\t// out\n /* \"contracts/3_Coda.sol\":2670:2874 function approve(address spender, uint tokens) public returns (bool success) {... */\n tag_28:\n /* \"contracts/3_Coda.sol\":2733:2745 bool success */\n 0x0\n /* \"contracts/3_Coda.sol\":2788:2794 tokens */\n dup2\n /* \"contracts/3_Coda.sol\":2757:2764 allowed */\n 0x5\n /* \"contracts/3_Coda.sol\":2757:2776 allowed[msg.sender] */\n 0x0\n /* \"contracts/3_Coda.sol\":2765:2775 msg.sender */\n caller\n /* \"contracts/3_Coda.sol\":2757:2776 allowed[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n /* \"contracts/3_Coda.sol\":2757:2785 allowed[msg.sender][spender] */\n 0x0\n /* \"contracts/3_Coda.sol\":2777:2784 spender */\n dup6\n /* \"contracts/3_Coda.sol\":2757:2785 allowed[msg.sender][spender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n /* \"contracts/3_Coda.sol\":2757:2794 allowed[msg.sender][spender] = tokens */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/3_Coda.sol\":2830:2837 spender */\n dup3\n /* \"contracts/3_Coda.sol\":2809:2846 Approval(msg.sender, spender, tokens) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/3_Coda.sol\":2818:2828 msg.sender */\n caller\n /* \"contracts/3_Coda.sol\":2809:2846 Approval(msg.sender, spender, tokens) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925\n /* \"contracts/3_Coda.sol\":2839:2845 tokens */\n dup5\n /* \"contracts/3_Coda.sol\":2809:2846 Approval(msg.sender, spender, tokens) */\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"contracts/3_Coda.sol\":2863:2867 true */\n 0x1\n /* \"contracts/3_Coda.sol\":2856:2867 return true */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":2670:2874 function approve(address spender, uint tokens) public returns (bool success) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/3_Coda.sol\":2141:2255 function totalSupply() public constant returns (uint) {... */\n tag_31:\n /* \"contracts/3_Coda.sol\":2189:2193 uint */\n 0x0\n /* \"contracts/3_Coda.sol\":2228:2236 balances */\n 0x4\n /* \"contracts/3_Coda.sol\":2228:2248 balances[address(0)] */\n 0x0\n /* \"contracts/3_Coda.sol\":2245:2246 0 */\n dup1\n /* \"contracts/3_Coda.sol\":2228:2248 balances[address(0)] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n sload\n /* \"contracts/3_Coda.sol\":2212:2224 _totalSupply */\n sload(0x3)\n /* \"contracts/3_Coda.sol\":2212:2248 _totalSupply - balances[address(0)] */\n sub\n /* \"contracts/3_Coda.sol\":2205:2248 return _totalSupply - balances[address(0)] */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":2141:2255 function totalSupply() public constant returns (uint) {... */\n swap1\n jump\t// out\n /* \"contracts/3_Coda.sol\":2881:3233 function transferFrom(address from, address to, uint tokens) public returns (bool success) {... */\n tag_34:\n /* \"contracts/3_Coda.sol\":2958:2970 bool success */\n 0x0\n /* \"contracts/3_Coda.sol\":2999:3030 safeSub(balances[from], tokens) */\n tag_78\n /* \"contracts/3_Coda.sol\":3007:3015 balances */\n 0x4\n /* \"contracts/3_Coda.sol\":3007:3021 balances[from] */\n 0x0\n /* \"contracts/3_Coda.sol\":3016:3020 from */\n dup7\n /* \"contracts/3_Coda.sol\":3007:3021 balances[from] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n sload\n /* \"contracts/3_Coda.sol\":3023:3029 tokens */\n dup4\n /* \"contracts/3_Coda.sol\":2999:3006 safeSub */\n tag_53\n /* \"contracts/3_Coda.sol\":2999:3030 safeSub(balances[from], tokens) */\n jump\t// in\n tag_78:\n /* \"contracts/3_Coda.sol\":2982:2990 balances */\n 0x4\n /* \"contracts/3_Coda.sol\":2982:2996 balances[from] */\n 0x0\n /* \"contracts/3_Coda.sol\":2991:2995 from */\n dup7\n /* \"contracts/3_Coda.sol\":2982:2996 balances[from] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n /* \"contracts/3_Coda.sol\":2982:3030 balances[from] = safeSub(balances[from], tokens) */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/3_Coda.sol\":3068:3110 safeSub(allowed[from][msg.sender], tokens) */\n tag_79\n /* \"contracts/3_Coda.sol\":3076:3083 allowed */\n 0x5\n /* \"contracts/3_Coda.sol\":3076:3089 allowed[from] */\n 0x0\n /* \"contracts/3_Coda.sol\":3084:3088 from */\n dup7\n /* \"contracts/3_Coda.sol\":3076:3089 allowed[from] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n /* \"contracts/3_Coda.sol\":3076:3101 allowed[from][msg.sender] */\n 0x0\n /* \"contracts/3_Coda.sol\":3090:3100 msg.sender */\n caller\n /* \"contracts/3_Coda.sol\":3076:3101 allowed[from][msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n sload\n /* \"contracts/3_Coda.sol\":3103:3109 tokens */\n dup4\n /* \"contracts/3_Coda.sol\":3068:3075 safeSub */\n tag_53\n /* \"contracts/3_Coda.sol\":3068:3110 safeSub(allowed[from][msg.sender], tokens) */\n jump\t// in\n tag_79:\n /* \"contracts/3_Coda.sol\":3040:3047 allowed */\n 0x5\n /* \"contracts/3_Coda.sol\":3040:3053 allowed[from] */\n 0x0\n /* \"contracts/3_Coda.sol\":3048:3052 from */\n dup7\n /* \"contracts/3_Coda.sol\":3040:3053 allowed[from] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n /* \"contracts/3_Coda.sol\":3040:3065 allowed[from][msg.sender] */\n 0x0\n /* \"contracts/3_Coda.sol\":3054:3064 msg.sender */\n caller\n /* \"contracts/3_Coda.sol\":3040:3065 allowed[from][msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n /* \"contracts/3_Coda.sol\":3040:3110 allowed[from][msg.sender] = safeSub(allowed[from][msg.sender], tokens) */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/3_Coda.sol\":3135:3164 safeAdd(balances[to], tokens) */\n tag_80\n /* \"contracts/3_Coda.sol\":3143:3151 balances */\n 0x4\n /* \"contracts/3_Coda.sol\":3143:3155 balances[to] */\n 0x0\n /* \"contracts/3_Coda.sol\":3152:3154 to */\n dup6\n /* \"contracts/3_Coda.sol\":3143:3155 balances[to] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n sload\n /* \"contracts/3_Coda.sol\":3157:3163 tokens */\n dup4\n /* \"contracts/3_Coda.sol\":3135:3142 safeAdd */\n tag_71\n /* \"contracts/3_Coda.sol\":3135:3164 safeAdd(balances[to], tokens) */\n jump\t// in\n tag_80:\n /* \"contracts/3_Coda.sol\":3120:3128 balances */\n 0x4\n /* \"contracts/3_Coda.sol\":3120:3132 balances[to] */\n 0x0\n /* \"contracts/3_Coda.sol\":3129:3131 to */\n dup6\n /* \"contracts/3_Coda.sol\":3120:3132 balances[to] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n /* \"contracts/3_Coda.sol\":3120:3164 balances[to] = safeAdd(balances[to], tokens) */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/3_Coda.sol\":3194:3196 to */\n dup3\n /* \"contracts/3_Coda.sol\":3179:3205 Transfer(from, to, tokens) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/3_Coda.sol\":3188:3192 from */\n dup5\n /* \"contracts/3_Coda.sol\":3179:3205 Transfer(from, to, tokens) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n /* \"contracts/3_Coda.sol\":3198:3204 tokens */\n dup5\n /* \"contracts/3_Coda.sol\":3179:3205 Transfer(from, to, tokens) */\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"contracts/3_Coda.sol\":3222:3226 true */\n 0x1\n /* \"contracts/3_Coda.sol\":3215:3226 return true */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":2881:3233 function transferFrom(address from, address to, uint tokens) public returns (bool success) {... */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"contracts/3_Coda.sol\":1667:1688 uint8 public decimals */\n tag_37:\n 0x2\n 0x0\n swap1\n sload\n swap1\n 0x100\n exp\n swap1\n div\n 0xff\n and\n dup2\n jump\t// out\n /* \"contracts/3_Coda.sol\":1694:1718 uint public _totalSupply */\n tag_40:\n sload(0x3)\n dup2\n jump\t// out\n /* \"contracts/3_Coda.sol\":2262:2384 function balanceOf(address tokenOwner) public constant returns (uint balance) {... */\n tag_43:\n /* \"contracts/3_Coda.sol\":2326:2338 uint balance */\n 0x0\n /* \"contracts/3_Coda.sol\":2357:2365 balances */\n 0x4\n /* \"contracts/3_Coda.sol\":2357:2377 balances[tokenOwner] */\n 0x0\n /* \"contracts/3_Coda.sol\":2366:2376 tokenOwner */\n dup4\n /* \"contracts/3_Coda.sol\":2357:2377 balances[tokenOwner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n sload\n /* \"contracts/3_Coda.sol\":2350:2377 return balances[tokenOwner] */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":2262:2384 function balanceOf(address tokenOwner) public constant returns (uint balance) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"contracts/3_Coda.sol\":1616:1636 string public symbol */\n tag_46:\n 0x0\n dup1\n sload\n 0x1\n dup2\n 0x1\n and\n iszero\n 0x100\n mul\n sub\n and\n 0x2\n swap1\n div\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n 0x1\n dup2\n 0x1\n and\n iszero\n 0x100\n mul\n sub\n and\n 0x2\n swap1\n div\n dup1\n iszero\n tag_82\n jumpi\n dup1\n 0x1f\n lt\n tag_83\n jumpi\n 0x100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_82)\n tag_83:\n dup3\n add\n swap2\n swap1\n 0x0\n mstore\n keccak256(0x0, 0x20)\n swap1\n tag_84:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x1\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_84\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_82:\n pop\n pop\n pop\n pop\n pop\n dup2\n jump\t// out\n /* \"contracts/3_Coda.sol\":234:347 function safeSub(uint a, uint b) public pure returns (uint c) {... */\n tag_53:\n /* \"contracts/3_Coda.sol\":288:294 uint c */\n 0x0\n /* \"contracts/3_Coda.sol\":319:320 a */\n dup3\n /* \"contracts/3_Coda.sol\":314:315 b */\n dup3\n /* \"contracts/3_Coda.sol\":314:320 b <= a */\n gt\n iszero\n /* \"contracts/3_Coda.sol\":306:321 require(b <= a) */\n iszero\n iszero\n tag_86\n jumpi\n 0x0\n dup1\n revert\n tag_86:\n /* \"contracts/3_Coda.sol\":339:340 b */\n dup2\n /* \"contracts/3_Coda.sol\":335:336 a */\n dup4\n /* \"contracts/3_Coda.sol\":335:340 a - b */\n sub\n /* \"contracts/3_Coda.sol\":331:340 c = a - b */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":234:347 function safeSub(uint a, uint b) public pure returns (uint c) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/3_Coda.sol\":2391:2663 function transfer(address to, uint tokens) public returns (bool success) {... */\n tag_56:\n /* \"contracts/3_Coda.sol\":2450:2462 bool success */\n 0x0\n /* \"contracts/3_Coda.sol\":2497:2534 safeSub(balances[msg.sender], tokens) */\n tag_88\n /* \"contracts/3_Coda.sol\":2505:2513 balances */\n 0x4\n /* \"contracts/3_Coda.sol\":2505:2525 balances[msg.sender] */\n 0x0\n /* \"contracts/3_Coda.sol\":2514:2524 msg.sender */\n caller\n /* \"contracts/3_Coda.sol\":2505:2525 balances[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n sload\n /* \"contracts/3_Coda.sol\":2527:2533 tokens */\n dup4\n /* \"contracts/3_Coda.sol\":2497:2504 safeSub */\n tag_53\n /* \"contracts/3_Coda.sol\":2497:2534 safeSub(balances[msg.sender], tokens) */\n jump\t// in\n tag_88:\n /* \"contracts/3_Coda.sol\":2474:2482 balances */\n 0x4\n /* \"contracts/3_Coda.sol\":2474:2494 balances[msg.sender] */\n 0x0\n /* \"contracts/3_Coda.sol\":2483:2493 msg.sender */\n caller\n /* \"contracts/3_Coda.sol\":2474:2494 balances[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n /* \"contracts/3_Coda.sol\":2474:2534 balances[msg.sender] = safeSub(balances[msg.sender], tokens) */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/3_Coda.sol\":2559:2588 safeAdd(balances[to], tokens) */\n tag_89\n /* \"contracts/3_Coda.sol\":2567:2575 balances */\n 0x4\n /* \"contracts/3_Coda.sol\":2567:2579 balances[to] */\n 0x0\n /* \"contracts/3_Coda.sol\":2576:2578 to */\n dup6\n /* \"contracts/3_Coda.sol\":2567:2579 balances[to] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n sload\n /* \"contracts/3_Coda.sol\":2581:2587 tokens */\n dup4\n /* \"contracts/3_Coda.sol\":2559:2566 safeAdd */\n tag_71\n /* \"contracts/3_Coda.sol\":2559:2588 safeAdd(balances[to], tokens) */\n jump\t// in\n tag_89:\n /* \"contracts/3_Coda.sol\":2544:2552 balances */\n 0x4\n /* \"contracts/3_Coda.sol\":2544:2556 balances[to] */\n 0x0\n /* \"contracts/3_Coda.sol\":2553:2555 to */\n dup6\n /* \"contracts/3_Coda.sol\":2544:2556 balances[to] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n /* \"contracts/3_Coda.sol\":2544:2588 balances[to] = safeAdd(balances[to], tokens) */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/3_Coda.sol\":2624:2626 to */\n dup3\n /* \"contracts/3_Coda.sol\":2603:2635 Transfer(msg.sender, to, tokens) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/3_Coda.sol\":2612:2622 msg.sender */\n caller\n /* \"contracts/3_Coda.sol\":2603:2635 Transfer(msg.sender, to, tokens) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n /* \"contracts/3_Coda.sol\":2628:2634 tokens */\n dup5\n /* \"contracts/3_Coda.sol\":2603:2635 Transfer(msg.sender, to, tokens) */\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"contracts/3_Coda.sol\":2652:2656 true */\n 0x1\n /* \"contracts/3_Coda.sol\":2645:2656 return true */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":2391:2663 function transfer(address to, uint tokens) public returns (bool success) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/3_Coda.sol\":488:600 function safeDiv(uint a, uint b) public pure returns (uint c) {... */\n tag_59:\n /* \"contracts/3_Coda.sol\":542:548 uint c */\n 0x0\n /* \"contracts/3_Coda.sol\":572:573 0 */\n dup1\n /* \"contracts/3_Coda.sol\":568:569 b */\n dup3\n /* \"contracts/3_Coda.sol\":568:573 b > 0 */\n gt\n /* \"contracts/3_Coda.sol\":560:574 require(b > 0) */\n iszero\n iszero\n tag_91\n jumpi\n 0x0\n dup1\n revert\n tag_91:\n /* \"contracts/3_Coda.sol\":592:593 b */\n dup2\n /* \"contracts/3_Coda.sol\":588:589 a */\n dup4\n /* \"contracts/3_Coda.sol\":588:593 a / b */\n dup2\n iszero\n iszero\n tag_92\n jumpi\n invalid\n tag_92:\n div\n /* \"contracts/3_Coda.sol\":584:593 c = a / b */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":488:600 function safeDiv(uint a, uint b) public pure returns (uint c) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/3_Coda.sol\":3396:3708 function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {... */\n tag_62:\n /* \"contracts/3_Coda.sol\":3478:3490 bool success */\n 0x0\n /* \"contracts/3_Coda.sol\":3533:3539 tokens */\n dup3\n /* \"contracts/3_Coda.sol\":3502:3509 allowed */\n 0x5\n /* \"contracts/3_Coda.sol\":3502:3521 allowed[msg.sender] */\n 0x0\n /* \"contracts/3_Coda.sol\":3510:3520 msg.sender */\n caller\n /* \"contracts/3_Coda.sol\":3502:3521 allowed[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n /* \"contracts/3_Coda.sol\":3502:3530 allowed[msg.sender][spender] */\n 0x0\n /* \"contracts/3_Coda.sol\":3522:3529 spender */\n dup7\n /* \"contracts/3_Coda.sol\":3502:3530 allowed[msg.sender][spender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n /* \"contracts/3_Coda.sol\":3502:3539 allowed[msg.sender][spender] = tokens */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/3_Coda.sol\":3575:3582 spender */\n dup4\n /* \"contracts/3_Coda.sol\":3554:3591 Approval(msg.sender, spender, tokens) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/3_Coda.sol\":3563:3573 msg.sender */\n caller\n /* \"contracts/3_Coda.sol\":3554:3591 Approval(msg.sender, spender, tokens) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925\n /* \"contracts/3_Coda.sol\":3584:3590 tokens */\n dup6\n /* \"contracts/3_Coda.sol\":3554:3591 Approval(msg.sender, spender, tokens) */\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"contracts/3_Coda.sol\":3624:3631 spender */\n dup4\n /* \"contracts/3_Coda.sol\":3601:3648 ApproveAndCallFallBack(spender).receiveApproval */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x8f4ffcb1\n /* \"contracts/3_Coda.sol\":3649:3659 msg.sender */\n caller\n /* \"contracts/3_Coda.sol\":3661:3667 tokens */\n dup6\n /* \"contracts/3_Coda.sol\":3669:3673 this */\n address\n /* \"contracts/3_Coda.sol\":3675:3679 data */\n dup7\n /* \"contracts/3_Coda.sol\":3601:3680 ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data) */\n mload(0x40)\n dup6\n 0xffffffff\n and\n 0x100000000000000000000000000000000000000000000000000000000\n mul\n dup2\n mstore\n 0x4\n add\n dup1\n dup6\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n dup5\n dup2\n mstore\n 0x20\n add\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n dup4\n dup2\n dup2\n mload\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n dup1\n dup4\n dup4\n /* \"--CODEGEN--\":23:24 */\n 0x0\n /* \"--CODEGEN--\":8:108 */\n tag_94:\n /* \"--CODEGEN--\":33:36 */\n dup4\n /* \"--CODEGEN--\":30:31 */\n dup2\n /* \"--CODEGEN--\":27:37 */\n lt\n /* \"--CODEGEN--\":8:108 */\n iszero\n tag_95\n jumpi\n /* \"--CODEGEN--\":99:100 */\n dup1\n /* \"--CODEGEN--\":94:97 */\n dup3\n /* \"--CODEGEN--\":90:101 */\n add\n /* \"--CODEGEN--\":84:102 */\n mload\n /* \"--CODEGEN--\":80:81 */\n dup2\n /* \"--CODEGEN--\":75:78 */\n dup5\n /* \"--CODEGEN--\":71:82 */\n add\n /* \"--CODEGEN--\":64:103 */\n mstore\n /* \"--CODEGEN--\":52:54 */\n 0x20\n /* \"--CODEGEN--\":49:50 */\n dup2\n /* \"--CODEGEN--\":45:55 */\n add\n /* \"--CODEGEN--\":40:55 */\n swap1\n pop\n /* \"--CODEGEN--\":8:108 */\n jump(tag_94)\n tag_95:\n /* \"--CODEGEN--\":12:26 */\n pop\n /* \"contracts/3_Coda.sol\":3601:3680 ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data) */\n pop\n pop\n pop\n swap1\n pop\n swap1\n dup2\n add\n swap1\n 0x1f\n and\n dup1\n iszero\n tag_97\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x1\n dup4\n 0x20\n sub\n 0x100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n tag_97:\n pop\n swap6\n pop\n pop\n pop\n pop\n pop\n pop\n 0x0\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x0\n dup8\n dup1\n extcodesize\n iszero\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_98\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_98:\n /* \"contracts/3_Coda.sol\":3601:3680 ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data) */\n pop\n gas\n call\n iszero\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_99\n jumpi\n /* \"--CODEGEN--\":45:61 */\n returndatasize\n /* \"--CODEGEN--\":42:43 */\n 0x0\n /* \"--CODEGEN--\":39:40 */\n dup1\n /* \"--CODEGEN--\":24:62 */\n returndatacopy\n /* \"--CODEGEN--\":77:93 */\n returndatasize\n /* \"--CODEGEN--\":74:75 */\n 0x0\n /* \"--CODEGEN--\":67:94 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_99:\n /* \"contracts/3_Coda.sol\":3601:3680 ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data) */\n pop\n pop\n pop\n pop\n /* \"contracts/3_Coda.sol\":3697:3701 true */\n 0x1\n /* \"contracts/3_Coda.sol\":3690:3701 return true */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":3396:3708 function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {... */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"contracts/3_Coda.sol\":354:481 function safeMul(uint a, uint b) public pure returns (uint c) {... */\n tag_65:\n /* \"contracts/3_Coda.sol\":408:414 uint c */\n 0x0\n /* \"contracts/3_Coda.sol\":434:435 b */\n dup2\n /* \"contracts/3_Coda.sol\":430:431 a */\n dup4\n /* \"contracts/3_Coda.sol\":430:435 a * b */\n mul\n /* \"contracts/3_Coda.sol\":426:435 c = a * b */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":458:459 0 */\n 0x0\n /* \"contracts/3_Coda.sol\":453:454 a */\n dup4\n /* \"contracts/3_Coda.sol\":453:459 a == 0 */\n eq\n /* \"contracts/3_Coda.sol\":453:473 a == 0 || c / a == b */\n dup1\n tag_101\n jumpi\n pop\n /* \"contracts/3_Coda.sol\":472:473 b */\n dup2\n /* \"contracts/3_Coda.sol\":467:468 a */\n dup4\n /* \"contracts/3_Coda.sol\":463:464 c */\n dup3\n /* \"contracts/3_Coda.sol\":463:468 c / a */\n dup2\n iszero\n iszero\n tag_102\n jumpi\n invalid\n tag_102:\n div\n /* \"contracts/3_Coda.sol\":463:473 c / a == b */\n eq\n /* \"contracts/3_Coda.sol\":453:473 a == 0 || c / a == b */\n tag_101:\n /* \"contracts/3_Coda.sol\":445:474 require(a == 0 || c / a == b) */\n iszero\n iszero\n tag_103\n jumpi\n 0x0\n dup1\n revert\n tag_103:\n /* \"contracts/3_Coda.sol\":354:481 function safeMul(uint a, uint b) public pure returns (uint c) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/3_Coda.sol\":3240:3389 function allowance(address tokenOwner, address spender) public constant returns (uint remaining) {... */\n tag_68:\n /* \"contracts/3_Coda.sol\":3321:3335 uint remaining */\n 0x0\n /* \"contracts/3_Coda.sol\":3354:3361 allowed */\n 0x5\n /* \"contracts/3_Coda.sol\":3354:3373 allowed[tokenOwner] */\n 0x0\n /* \"contracts/3_Coda.sol\":3362:3372 tokenOwner */\n dup5\n /* \"contracts/3_Coda.sol\":3354:3373 allowed[tokenOwner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n /* \"contracts/3_Coda.sol\":3354:3382 allowed[tokenOwner][spender] */\n 0x0\n /* \"contracts/3_Coda.sol\":3374:3381 spender */\n dup4\n /* \"contracts/3_Coda.sol\":3354:3382 allowed[tokenOwner][spender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x0\n keccak256\n sload\n /* \"contracts/3_Coda.sol\":3347:3382 return allowed[tokenOwner][spender] */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":3240:3389 function allowance(address tokenOwner, address spender) public constant returns (uint remaining) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/3_Coda.sol\":114:227 function safeAdd(uint a, uint b) public pure returns (uint c) {... */\n tag_71:\n /* \"contracts/3_Coda.sol\":168:174 uint c */\n 0x0\n /* \"contracts/3_Coda.sol\":194:195 b */\n dup2\n /* \"contracts/3_Coda.sol\":190:191 a */\n dup4\n /* \"contracts/3_Coda.sol\":190:195 a + b */\n add\n /* \"contracts/3_Coda.sol\":186:195 c = a + b */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":218:219 a */\n dup3\n /* \"contracts/3_Coda.sol\":213:214 c */\n dup2\n /* \"contracts/3_Coda.sol\":213:219 c >= a */\n lt\n iszero\n /* \"contracts/3_Coda.sol\":205:220 require(c >= a) */\n iszero\n iszero\n tag_106\n jumpi\n 0x0\n dup1\n revert\n tag_106:\n /* \"contracts/3_Coda.sol\":114:227 function safeAdd(uint a, uint b) public pure returns (uint c) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa165627a7a723058204a49bcb9d0c4e2f4b4ef5afa1545e4b798def460027e5fbf34c82493cffdfa380029\n}\n",
"bytecode": {
"linkReferences": {},
"object": "60806040523480156200001157600080fd5b506040805190810160405280600481526020017f434f444100000000000000000000000000000000000000000000000000000000815250600090805190602001906200005f929190620001b1565b506040805190810160405280600a81526020017f434f444120546f6b656e0000000000000000000000000000000000000000000081525060019080519060200190620000ad929190620001b1565b5060028060006101000a81548160ff021916908360ff160217905550640165a0bc006003819055506003546004600073e6ff88dccb43023adc229361ef7bcff2eaab0d6e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555073e6ff88dccb43023adc229361ef7bcff2eaab0d6e73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040518082815260200191505060405180910390a362000260565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f457805160ff191683800117855562000225565b8280016001018555821562000225579182015b828111156200022457825182559160200191906001019062000207565b5b50905062000234919062000238565b5090565b6200025d91905b80821115620002595760008160009055506001016200023f565b5090565b90565b6110fe80620002706000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e0578063095ea7b31461017057806318160ddd146101d557806323b872dd14610200578063313ce567146102855780633eaaf86b146102b657806370a08231146102e157806395d89b4114610338578063a293d1e8146103c8578063a9059cbb14610413578063b5931f7c14610478578063cae9ca51146104c3578063d05c78da1461056e578063dd62ed3e146105b9578063e6cb901314610630575b600080fd5b3480156100ec57600080fd5b506100f561067b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013557808201518184015260208101905061011a565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610719565b604051808215151515815260200191505060405180910390f35b3480156101e157600080fd5b506101ea61080b565b6040518082815260200191505060405180910390f35b34801561020c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610856565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610ae6565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102c257600080fd5b506102cb610af9565b6040518082815260200191505060405180910390f35b3480156102ed57600080fd5b50610322600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aff565b6040518082815260200191505060405180910390f35b34801561034457600080fd5b5061034d610b48565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038d578082015181840152602081019050610372565b50505050905090810190601f1680156103ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d457600080fd5b506103fd6004803603810190808035906020019092919080359060200190929190505050610be6565b6040518082815260200191505060405180910390f35b34801561041f57600080fd5b5061045e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c02565b604051808215151515815260200191505060405180910390f35b34801561048457600080fd5b506104ad6004803603810190808035906020019092919080359060200190929190505050610d8b565b6040518082815260200191505060405180910390f35b3480156104cf57600080fd5b50610554600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610daf565b604051808215151515815260200191505060405180910390f35b34801561057a57600080fd5b506105a36004803603810190808035906020019092919080359060200190929190505050610ffe565b6040518082815260200191505060405180910390f35b3480156105c557600080fd5b5061061a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061102f565b6040518082815260200191505060405180910390f35b34801561063c57600080fd5b5061066560048036038101908080359060200190929190803590602001909291905050506110b6565b6040518082815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107115780601f106106e657610100808354040283529160200191610711565b820191906000526020600020905b8154815290600101906020018083116106f457829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600460008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460035403905090565b60006108a1600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610be6565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061096a600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610be6565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a33600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836110b6565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600260009054906101000a900460ff1681565b60035481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b505050505081565b6000828211151515610bf757600080fd5b818303905092915050565b6000610c4d600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610be6565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cd9600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836110b6565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008082111515610d9b57600080fd5b8183811515610da657fe5b04905092915050565b600082600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610f8c578082015181840152602081019050610f71565b50505050905090810190601f168015610fb95780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610fdb57600080fd5b505af1158015610fef573d6000803e3d6000fd5b50505050600190509392505050565b60008183029050600083148061101e575081838281151561101b57fe5b04145b151561102957600080fd5b92915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600081830190508281101515156110cc57600080fd5b929150505600a165627a7a723058204a49bcb9d0c4e2f4b4ef5afa1545e4b798def460027e5fbf34c82493cffdfa380029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x434F444100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x0 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x5F SWAP3 SWAP2 SWAP1 PUSH3 0x1B1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x434F444120546F6B656E00000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0xAD SWAP3 SWAP2 SWAP1 PUSH3 0x1B1 JUMP JUMPDEST POP PUSH1 0x2 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH5 0x165A0BC00 PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x3 SLOAD PUSH1 0x4 PUSH1 0x0 PUSH20 0xE6FF88DCCB43023ADC229361EF7BCFF2EAAB0D6E PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH20 0xE6FF88DCCB43023ADC229361EF7BCFF2EAAB0D6E PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH3 0x260 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1F4 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x225 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x225 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x224 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x207 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x234 SWAP2 SWAP1 PUSH3 0x238 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x25D SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x259 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x23F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x10FE DUP1 PUSH3 0x270 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDB JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x3EAAF86B EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0xA293D1E8 EQ PUSH2 0x3C8 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x413 JUMPI DUP1 PUSH4 0xB5931F7C EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0xCAE9CA51 EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0xD05C78DA EQ PUSH2 0x56E JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x5B9 JUMPI DUP1 PUSH4 0xE6CB9013 EQ PUSH2 0x630 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF5 PUSH2 0x67B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x135 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x11A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x162 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x719 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EA PUSH2 0x80B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x856 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29A PUSH2 0xAE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CB PUSH2 0xAF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x322 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xAFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH2 0xB48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x38D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x372 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3BA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xC02 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xD8B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x554 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP3 ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY DUP3 ADD SWAP2 POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xDAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xFFE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x61A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x102F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x665 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x10B6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x711 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6E6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x711 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 0x6F4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x5 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x3 SLOAD SUB SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A1 PUSH1 0x4 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x96A PUSH1 0x5 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xA33 PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0x10B6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xBDE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBB3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBDE 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 0xBC1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO ISZERO ISZERO PUSH2 0xBF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC4D PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xCD9 PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0x10B6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT ISZERO ISZERO PUSH2 0xD9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP2 ISZERO ISZERO PUSH2 0xDA6 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x5 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP6 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x8F4FFCB1 CALLER DUP6 ADDRESS DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF8C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF71 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xFB9 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFEF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 MUL SWAP1 POP PUSH1 0x0 DUP4 EQ DUP1 PUSH2 0x101E JUMPI POP DUP2 DUP4 DUP3 DUP2 ISZERO ISZERO PUSH2 0x101B JUMPI INVALID JUMPDEST DIV EQ JUMPDEST ISZERO ISZERO PUSH2 0x1029 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP3 DUP2 LT ISZERO ISZERO ISZERO PUSH2 0x10CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x4a 0x49 0xbc 0xb9 0xd0 0xc4 0xe2 DELEGATECALL 0xb4 0xef GAS STATICCALL ISZERO GASLIMIT 0xe4 0xb7 SWAP9 0xde DELEGATECALL PUSH1 0x2 PUSH31 0x5FBF34C82493CFFDFA38002900000000000000000000000000000000000000 ",
"sourceMap": "1563:2206:0:-;;;1825:309;8:9:-1;5:2;;;30:1;27;20:12;5:2;1825:309:0;1856:15;;;;;;;;;;;;;;;;;;:6;:15;;;;;;;;;;;;:::i;:::-;;1881:19;;;;;;;;;;;;;;;;;;:4;:19;;;;;;;;;;;;:::i;:::-;;1921:1;1910:8;;:12;;;;;;;;;;;;;;;;;;1947:10;1932:12;:25;;;;2022:12;;1967:8;:52;1976:42;1967:52;;;;;;;;;;;;;;;:67;;;;2070:42;2049:78;;2066:1;2049:78;;;2114:12;;2049:78;;;;;;;;;;;;;;;;;;1563:2206;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e0578063095ea7b31461017057806318160ddd146101d557806323b872dd14610200578063313ce567146102855780633eaaf86b146102b657806370a08231146102e157806395d89b4114610338578063a293d1e8146103c8578063a9059cbb14610413578063b5931f7c14610478578063cae9ca51146104c3578063d05c78da1461056e578063dd62ed3e146105b9578063e6cb901314610630575b600080fd5b3480156100ec57600080fd5b506100f561067b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013557808201518184015260208101905061011a565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610719565b604051808215151515815260200191505060405180910390f35b3480156101e157600080fd5b506101ea61080b565b6040518082815260200191505060405180910390f35b34801561020c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610856565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610ae6565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102c257600080fd5b506102cb610af9565b6040518082815260200191505060405180910390f35b3480156102ed57600080fd5b50610322600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aff565b6040518082815260200191505060405180910390f35b34801561034457600080fd5b5061034d610b48565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038d578082015181840152602081019050610372565b50505050905090810190601f1680156103ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d457600080fd5b506103fd6004803603810190808035906020019092919080359060200190929190505050610be6565b6040518082815260200191505060405180910390f35b34801561041f57600080fd5b5061045e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c02565b604051808215151515815260200191505060405180910390f35b34801561048457600080fd5b506104ad6004803603810190808035906020019092919080359060200190929190505050610d8b565b6040518082815260200191505060405180910390f35b3480156104cf57600080fd5b50610554600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610daf565b604051808215151515815260200191505060405180910390f35b34801561057a57600080fd5b506105a36004803603810190808035906020019092919080359060200190929190505050610ffe565b6040518082815260200191505060405180910390f35b3480156105c557600080fd5b5061061a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061102f565b6040518082815260200191505060405180910390f35b34801561063c57600080fd5b5061066560048036038101908080359060200190929190803590602001909291905050506110b6565b6040518082815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107115780601f106106e657610100808354040283529160200191610711565b820191906000526020600020905b8154815290600101906020018083116106f457829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600460008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460035403905090565b60006108a1600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610be6565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061096a600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610be6565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a33600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836110b6565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600260009054906101000a900460ff1681565b60035481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b505050505081565b6000828211151515610bf757600080fd5b818303905092915050565b6000610c4d600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610be6565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cd9600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836110b6565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008082111515610d9b57600080fd5b8183811515610da657fe5b04905092915050565b600082600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610f8c578082015181840152602081019050610f71565b50505050905090810190601f168015610fb95780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610fdb57600080fd5b505af1158015610fef573d6000803e3d6000fd5b50505050600190509392505050565b60008183029050600083148061101e575081838281151561101b57fe5b04145b151561102957600080fd5b92915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600081830190508281101515156110cc57600080fd5b929150505600a165627a7a723058204a49bcb9d0c4e2f4b4ef5afa1545e4b798def460027e5fbf34c82493cffdfa380029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDB JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x3EAAF86B EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0xA293D1E8 EQ PUSH2 0x3C8 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x413 JUMPI DUP1 PUSH4 0xB5931F7C EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0xCAE9CA51 EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0xD05C78DA EQ PUSH2 0x56E JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x5B9 JUMPI DUP1 PUSH4 0xE6CB9013 EQ PUSH2 0x630 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF5 PUSH2 0x67B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x135 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x11A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x162 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x719 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EA PUSH2 0x80B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x856 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29A PUSH2 0xAE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CB PUSH2 0xAF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x322 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xAFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH2 0xB48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x38D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x372 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3BA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xC02 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xD8B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x554 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP3 ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY DUP3 ADD SWAP2 POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xDAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xFFE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x61A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x102F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x665 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x10B6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x711 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6E6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x711 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 0x6F4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x5 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x3 SLOAD SUB SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A1 PUSH1 0x4 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x96A PUSH1 0x5 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xA33 PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0x10B6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xBDE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBB3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBDE 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 0xBC1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO ISZERO ISZERO PUSH2 0xBF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC4D PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xCD9 PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0x10B6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT ISZERO ISZERO PUSH2 0xD9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP2 ISZERO ISZERO PUSH2 0xDA6 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x5 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP6 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x8F4FFCB1 CALLER DUP6 ADDRESS DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF8C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF71 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xFB9 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFEF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 MUL SWAP1 POP PUSH1 0x0 DUP4 EQ DUP1 PUSH2 0x101E JUMPI POP DUP2 DUP4 DUP3 DUP2 ISZERO ISZERO PUSH2 0x101B JUMPI INVALID JUMPDEST DIV EQ JUMPDEST ISZERO ISZERO PUSH2 0x1029 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP3 DUP2 LT ISZERO ISZERO ISZERO PUSH2 0x10CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x4a 0x49 0xbc 0xb9 0xd0 0xc4 0xe2 DELEGATECALL 0xb4 0xef GAS STATICCALL ISZERO GASLIMIT 0xe4 0xb7 SWAP9 0xde DELEGATECALL PUSH1 0x2 PUSH31 0x5FBF34C82493CFFDFA38002900000000000000000000000000000000000000 ",
"sourceMap": "1563:2206:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3752:8;;;1642:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1642:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1642:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2670:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2670:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2141:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2141:114:0;;;;;;;;;;;;;;;;;;;;;;;2881:352;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2881:352:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1667:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1694:24:0;;;;;;;;;;;;;;;;;;;;;;;2262:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2262:122:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1616:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1616:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1616:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;234:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;234:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2391:272;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2391:272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3396:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3396:312:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;354:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;354:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3240:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3240:149:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;114:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;114:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2670:204::-;2733:12;2788:6;2757:7;:19;2765:10;2757:19;;;;;;;;;;;;;;;:28;2777:7;2757:28;;;;;;;;;;;;;;;:37;;;;2830:7;2809:37;;2818:10;2809:37;;;2839:6;2809:37;;;;;;;;;;;;;;;;;;2863:4;2856:11;;2670:204;;;;:::o;2141:114::-;2189:4;2228:8;:20;2245:1;2228:20;;;;;;;;;;;;;;;;2212:12;;:36;2205:43;;2141:114;:::o;2881:352::-;2958:12;2999:31;3007:8;:14;3016:4;3007:14;;;;;;;;;;;;;;;;3023:6;2999:7;:31::i;:::-;2982:8;:14;2991:4;2982:14;;;;;;;;;;;;;;;:48;;;;3068:42;3076:7;:13;3084:4;3076:13;;;;;;;;;;;;;;;:25;3090:10;3076:25;;;;;;;;;;;;;;;;3103:6;3068:7;:42::i;:::-;3040:7;:13;3048:4;3040:13;;;;;;;;;;;;;;;:25;3054:10;3040:25;;;;;;;;;;;;;;;:70;;;;3135:29;3143:8;:12;3152:2;3143:12;;;;;;;;;;;;;;;;3157:6;3135:7;:29::i;:::-;3120:8;:12;3129:2;3120:12;;;;;;;;;;;;;;;:44;;;;3194:2;3179:26;;3188:4;3179:26;;;3198:6;3179:26;;;;;;;;;;;;;;;;;;3222:4;3215:11;;2881:352;;;;;:::o;1667:21::-;;;;;;;;;;;;;:::o;1694:24::-;;;;:::o;2262:122::-;2326:12;2357:8;:20;2366:10;2357:20;;;;;;;;;;;;;;;;2350:27;;2262:122;;;:::o;1616:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;234:113::-;288:6;319:1;314;:6;;306:15;;;;;;;;339:1;335;:5;331:9;;234:113;;;;:::o;2391:272::-;2450:12;2497:37;2505:8;:20;2514:10;2505:20;;;;;;;;;;;;;;;;2527:6;2497:7;:37::i;:::-;2474:8;:20;2483:10;2474:20;;;;;;;;;;;;;;;:60;;;;2559:29;2567:8;:12;2576:2;2567:12;;;;;;;;;;;;;;;;2581:6;2559:7;:29::i;:::-;2544:8;:12;2553:2;2544:12;;;;;;;;;;;;;;;:44;;;;2624:2;2603:32;;2612:10;2603:32;;;2628:6;2603:32;;;;;;;;;;;;;;;;;;2652:4;2645:11;;2391:272;;;;:::o;488:112::-;542:6;572:1;568;:5;560:14;;;;;;;;592:1;588;:5;;;;;;;;584:9;;488:112;;;;:::o;3396:312::-;3478:12;3533:6;3502:7;:19;3510:10;3502:19;;;;;;;;;;;;;;;:28;3522:7;3502:28;;;;;;;;;;;;;;;:37;;;;3575:7;3554:37;;3563:10;3554:37;;;3584:6;3554:37;;;;;;;;;;;;;;;;;;3624:7;3601:47;;;3649:10;3661:6;3669:4;3675;3601:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3601:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3601:79:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3601:79:0;;;;3697:4;3690:11;;3396:312;;;;;:::o;354:127::-;408:6;434:1;430;:5;426:9;;458:1;453;:6;:20;;;;472:1;467;463;:5;;;;;;;;:10;453:20;445:29;;;;;;;;354:127;;;;:::o;3240:149::-;3321:14;3354:7;:19;3362:10;3354:19;;;;;;;;;;;;;;;:28;3374:7;3354:28;;;;;;;;;;;;;;;;3347:35;;3240:149;;;;:::o;114:113::-;168:6;194:1;190;:5;186:9;;218:1;213;:6;;205:15;;;;;;;;114:113;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "870000",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"": "399",
"_totalSupply()": "504",
"allowance(address,address)": "970",
"approve(address,uint256)": "22353",
"approveAndCall(address,uint256,bytes)": "infinite",
"balanceOf(address)": "691",
"decimals()": "530",
"name()": "infinite",
"safeAdd(uint256,uint256)": "638",
"safeDiv(uint256,uint256)": "572",
"safeMul(uint256,uint256)": "652",
"safeSub(uint256,uint256)": "506",
"symbol()": "infinite",
"totalSupply()": "742",
"transfer(address,uint256)": "43294",
"transferFrom(address,address,uint256)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "80"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "40"
},
{
"begin": 1563,
"end": 3769,
"name": "MSTORE"
},
{
"begin": 1825,
"end": 2134,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 1825,
"end": 2134,
"name": "POP"
},
{
"begin": 1856,
"end": 1871,
"name": "PUSH",
"value": "40"
},
{
"begin": 1856,
"end": 1871,
"name": "DUP1"
},
{
"begin": 1856,
"end": 1871,
"name": "MLOAD"
},
{
"begin": 1856,
"end": 1871,
"name": "SWAP1"
},
{
"begin": 1856,
"end": 1871,
"name": "DUP2"
},
{
"begin": 1856,
"end": 1871,
"name": "ADD"
},
{
"begin": 1856,
"end": 1871,
"name": "PUSH",
"value": "40"
},
{
"begin": 1856,
"end": 1871,
"name": "MSTORE"
},
{
"begin": 1856,
"end": 1871,
"name": "DUP1"
},
{
"begin": 1856,
"end": 1871,
"name": "PUSH",
"value": "4"
},
{
"begin": 1856,
"end": 1871,
"name": "DUP2"
},
{
"begin": 1856,
"end": 1871,
"name": "MSTORE"
},
{
"begin": 1856,
"end": 1871,
"name": "PUSH",
"value": "20"
},
{
"begin": 1856,
"end": 1871,
"name": "ADD"
},
{
"begin": 1856,
"end": 1871,
"name": "PUSH",
"value": "434F444100000000000000000000000000000000000000000000000000000000"
},
{
"begin": 1856,
"end": 1871,
"name": "DUP2"
},
{
"begin": 1856,
"end": 1871,
"name": "MSTORE"
},
{
"begin": 1856,
"end": 1871,
"name": "POP"
},
{
"begin": 1856,
"end": 1862,
"name": "PUSH",
"value": "0"
},
{
"begin": 1856,
"end": 1871,
"name": "SWAP1"
},
{
"begin": 1856,
"end": 1871,
"name": "DUP1"
},
{
"begin": 1856,
"end": 1871,
"name": "MLOAD"
},
{
"begin": 1856,
"end": 1871,
"name": "SWAP1"
},
{
"begin": 1856,
"end": 1871,
"name": "PUSH",
"value": "20"
},
{
"begin": 1856,
"end": 1871,
"name": "ADD"
},
{
"begin": 1856,
"end": 1871,
"name": "SWAP1"
},
{
"begin": 1856,
"end": 1871,
"name": "PUSH [tag]",
"value": "4"
},
{
"begin": 1856,
"end": 1871,
"name": "SWAP3"
},
{
"begin": 1856,
"end": 1871,
"name": "SWAP2"
},
{
"begin": 1856,
"end": 1871,
"name": "SWAP1"
},
{
"begin": 1856,
"end": 1871,
"name": "PUSH [tag]",
"value": "5"
},
{
"begin": 1856,
"end": 1871,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 1856,
"end": 1871,
"name": "tag",
"value": "4"
},
{
"begin": 1856,
"end": 1871,
"name": "JUMPDEST"
},
{
"begin": 1856,
"end": 1871,
"name": "POP"
},
{
"begin": 1881,
"end": 1900,
"name": "PUSH",
"value": "40"
},
{
"begin": 1881,
"end": 1900,
"name": "DUP1"
},
{
"begin": 1881,
"end": 1900,
"name": "MLOAD"
},
{
"begin": 1881,
"end": 1900,
"name": "SWAP1"
},
{
"begin": 1881,
"end": 1900,
"name": "DUP2"
},
{
"begin": 1881,
"end": 1900,
"name": "ADD"
},
{
"begin": 1881,
"end": 1900,
"name": "PUSH",
"value": "40"
},
{
"begin": 1881,
"end": 1900,
"name": "MSTORE"
},
{
"begin": 1881,
"end": 1900,
"name": "DUP1"
},
{
"begin": 1881,
"end": 1900,
"name": "PUSH",
"value": "A"
},
{
"begin": 1881,
"end": 1900,
"name": "DUP2"
},
{
"begin": 1881,
"end": 1900,
"name": "MSTORE"
},
{
"begin": 1881,
"end": 1900,
"name": "PUSH",
"value": "20"
},
{
"begin": 1881,
"end": 1900,
"name": "ADD"
},
{
"begin": 1881,
"end": 1900,
"name": "PUSH",
"value": "434F444120546F6B656E00000000000000000000000000000000000000000000"
},
{
"begin": 1881,
"end": 1900,
"name": "DUP2"
},
{
"begin": 1881,
"end": 1900,
"name": "MSTORE"
},
{
"begin": 1881,
"end": 1900,
"name": "POP"
},
{
"begin": 1881,
"end": 1885,
"name": "PUSH",
"value": "1"
},
{
"begin": 1881,
"end": 1900,
"name": "SWAP1"
},
{
"begin": 1881,
"end": 1900,
"name": "DUP1"
},
{
"begin": 1881,
"end": 1900,
"name": "MLOAD"
},
{
"begin": 1881,
"end": 1900,
"name": "SWAP1"
},
{
"begin": 1881,
"end": 1900,
"name": "PUSH",
"value": "20"
},
{
"begin": 1881,
"end": 1900,
"name": "ADD"
},
{
"begin": 1881,
"end": 1900,
"name": "SWAP1"
},
{
"begin": 1881,
"end": 1900,
"name": "PUSH [tag]",
"value": "6"
},
{
"begin": 1881,
"end": 1900,
"name": "SWAP3"
},
{
"begin": 1881,
"end": 1900,
"name": "SWAP2"
},
{
"begin": 1881,
"end": 1900,
"name": "SWAP1"
},
{
"begin": 1881,
"end": 1900,
"name": "PUSH [tag]",
"value": "5"
},
{
"begin": 1881,
"end": 1900,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 1881,
"end": 1900,
"name": "tag",
"value": "6"
},
{
"begin": 1881,
"end": 1900,
"name": "JUMPDEST"
},
{
"begin": 1881,
"end": 1900,
"name": "POP"
},
{
"begin": 1921,
"end": 1922,
"name": "PUSH",
"value": "2"
},
{
"begin": 1910,
"end": 1918,
"name": "DUP1"
},
{
"begin": 1910,
"end": 1918,
"name": "PUSH",
"value": "0"
},
{
"begin": 1910,
"end": 1922,
"name": "PUSH",
"value": "100"
},
{
"begin": 1910,
"end": 1922,
"name": "EXP"
},
{
"begin": 1910,
"end": 1922,
"name": "DUP2"
},
{
"begin": 1910,
"end": 1922,
"name": "SLOAD"
},
{
"begin": 1910,
"end": 1922,
"name": "DUP2"
},
{
"begin": 1910,
"end": 1922,
"name": "PUSH",
"value": "FF"
},
{
"begin": 1910,
"end": 1922,
"name": "MUL"
},
{
"begin": 1910,
"end": 1922,
"name": "NOT"
},
{
"begin": 1910,
"end": 1922,
"name": "AND"
},
{
"begin": 1910,
"end": 1922,
"name": "SWAP1"
},
{
"begin": 1910,
"end": 1922,
"name": "DUP4"
},
{
"begin": 1910,
"end": 1922,
"name": "PUSH",
"value": "FF"
},
{
"begin": 1910,
"end": 1922,
"name": "AND"
},
{
"begin": 1910,
"end": 1922,
"name": "MUL"
},
{
"begin": 1910,
"end": 1922,
"name": "OR"
},
{
"begin": 1910,
"end": 1922,
"name": "SWAP1"
},
{
"begin": 1910,
"end": 1922,
"name": "SSTORE"
},
{
"begin": 1910,
"end": 1922,
"name": "POP"
},
{
"begin": 1947,
"end": 1957,
"name": "PUSH",
"value": "165A0BC00"
},
{
"begin": 1932,
"end": 1944,
"name": "PUSH",
"value": "3"
},
{
"begin": 1932,
"end": 1957,
"name": "DUP2"
},
{
"begin": 1932,
"end": 1957,
"name": "SWAP1"
},
{
"begin": 1932,
"end": 1957,
"name": "SSTORE"
},
{
"begin": 1932,
"end": 1957,
"name": "POP"
},
{
"begin": 2022,
"end": 2034,
"name": "PUSH",
"value": "3"
},
{
"begin": 2022,
"end": 2034,
"name": "SLOAD"
},
{
"begin": 1967,
"end": 1975,
"name": "PUSH",
"value": "4"
},
{
"begin": 1967,
"end": 2019,
"name": "PUSH",
"value": "0"
},
{
"begin": 1976,
"end": 2018,
"name": "PUSH",
"value": "E6FF88DCCB43023ADC229361EF7BCFF2EAAB0D6E"
},
{
"begin": 1967,
"end": 2019,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1967,
"end": 2019,
"name": "AND"
},
{
"begin": 1967,
"end": 2019,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1967,
"end": 2019,
"name": "AND"
},
{
"begin": 1967,
"end": 2019,
"name": "DUP2"
},
{
"begin": 1967,
"end": 2019,
"name": "MSTORE"
},
{
"begin": 1967,
"end": 2019,
"name": "PUSH",
"value": "20"
},
{
"begin": 1967,
"end": 2019,
"name": "ADD"
},
{
"begin": 1967,
"end": 2019,
"name": "SWAP1"
},
{
"begin": 1967,
"end": 2019,
"name": "DUP2"
},
{
"begin": 1967,
"end": 2019,
"name": "MSTORE"
},
{
"begin": 1967,
"end": 2019,
"name": "PUSH",
"value": "20"
},
{
"begin": 1967,
"end": 2019,
"name": "ADD"
},
{
"begin": 1967,
"end": 2019,
"name": "PUSH",
"value": "0"
},
{
"begin": 1967,
"end": 2019,
"name": "KECCAK256"
},
{
"begin": 1967,
"end": 2034,
"name": "DUP2"
},
{
"begin": 1967,
"end": 2034,
"name": "SWAP1"
},
{
"begin": 1967,
"end": 2034,
"name": "SSTORE"
},
{
"begin": 1967,
"end": 2034,
"name": "POP"
},
{
"begin": 2070,
"end": 2112,
"name": "PUSH",
"value": "E6FF88DCCB43023ADC229361EF7BCFF2EAAB0D6E"
},
{
"begin": 2049,
"end": 2127,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2049,
"end": 2127,
"name": "AND"
},
{
"begin": 2066,
"end": 2067,
"name": "PUSH",
"value": "0"
},
{
"begin": 2049,
"end": 2127,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2049,
"end": 2127,
"name": "AND"
},
{
"begin": 2049,
"end": 2127,
"name": "PUSH",
"value": "DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF"
},
{
"begin": 2114,
"end": 2126,
"name": "PUSH",
"value": "3"
},
{
"begin": 2114,
"end": 2126,
"name": "SLOAD"
},
{
"begin": 2049,
"end": 2127,
"name": "PUSH",
"value": "40"
},
{
"begin": 2049,
"end": 2127,
"name": "MLOAD"
},
{
"begin": 2049,
"end": 2127,
"name": "DUP1"
},
{
"begin": 2049,
"end": 2127,
"name": "DUP3"
},
{
"begin": 2049,
"end": 2127,
"name": "DUP2"
},
{
"begin": 2049,
"end": 2127,
"name": "MSTORE"
},
{
"begin": 2049,
"end": 2127,
"name": "PUSH",
"value": "20"
},
{
"begin": 2049,
"end": 2127,
"name": "ADD"
},
{
"begin": 2049,
"end": 2127,
"name": "SWAP2"
},
{
"begin": 2049,
"end": 2127,
"name": "POP"
},
{
"begin": 2049,
"end": 2127,
"name": "POP"
},
{
"begin": 2049,
"end": 2127,
"name": "PUSH",
"value": "40"
},
{
"begin": 2049,
"end": 2127,
"name": "MLOAD"
},
{
"begin": 2049,
"end": 2127,
"name": "DUP1"
},
{
"begin": 2049,
"end": 2127,
"name": "SWAP2"
},
{
"begin": 2049,
"end": 2127,
"name": "SUB"
},
{
"begin": 2049,
"end": 2127,
"name": "SWAP1"
},
{
"begin": 2049,
"end": 2127,
"name": "LOG3"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "7"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMP"
},
{
"begin": 1563,
"end": 3769,
"name": "tag",
"value": "5"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPDEST"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP3"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "SLOAD"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "1"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP2"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "1"
},
{
"begin": 1563,
"end": 3769,
"name": "AND"
},
{
"begin": 1563,
"end": 3769,
"name": "ISZERO"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "100"
},
{
"begin": 1563,
"end": 3769,
"name": "MUL"
},
{
"begin": 1563,
"end": 3769,
"name": "SUB"
},
{
"begin": 1563,
"end": 3769,
"name": "AND"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "2"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP1"
},
{
"begin": 1563,
"end": 3769,
"name": "DIV"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "0"
},
{
"begin": 1563,
"end": 3769,
"name": "MSTORE"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "20"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "0"
},
{
"begin": 1563,
"end": 3769,
"name": "KECCAK256"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1563,
"end": 3769,
"name": "ADD"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "20"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP1"
},
{
"begin": 1563,
"end": 3769,
"name": "DIV"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP2"
},
{
"begin": 1563,
"end": 3769,
"name": "ADD"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP3"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP3"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1563,
"end": 3769,
"name": "LT"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "9"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "MLOAD"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "FF"
},
{
"begin": 1563,
"end": 3769,
"name": "NOT"
},
{
"begin": 1563,
"end": 3769,
"name": "AND"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP4"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "ADD"
},
{
"begin": 1563,
"end": 3769,
"name": "OR"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP6"
},
{
"begin": 1563,
"end": 3769,
"name": "SSTORE"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "8"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMP"
},
{
"begin": 1563,
"end": 3769,
"name": "tag",
"value": "9"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPDEST"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP3"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "ADD"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "1"
},
{
"begin": 1563,
"end": 3769,
"name": "ADD"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP6"
},
{
"begin": 1563,
"end": 3769,
"name": "SSTORE"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP3"
},
{
"begin": 1563,
"end": 3769,
"name": "ISZERO"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "8"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP2"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP3"
},
{
"begin": 1563,
"end": 3769,
"name": "ADD"
},
{
"begin": 1563,
"end": 3769,
"name": "tag",
"value": "10"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPDEST"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP3"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP2"
},
{
"begin": 1563,
"end": 3769,
"name": "GT"
},
{
"begin": 1563,
"end": 3769,
"name": "ISZERO"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "11"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP3"
},
{
"begin": 1563,
"end": 3769,
"name": "MLOAD"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP3"
},
{
"begin": 1563,
"end": 3769,
"name": "SSTORE"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP2"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "20"
},
{
"begin": 1563,
"end": 3769,
"name": "ADD"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP2"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "1"
},
{
"begin": 1563,
"end": 3769,
"name": "ADD"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "10"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMP"
},
{
"begin": 1563,
"end": 3769,
"name": "tag",
"value": "11"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPDEST"
},
{
"begin": 1563,
"end": 3769,
"name": "tag",
"value": "8"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPDEST"
},
{
"begin": 1563,
"end": 3769,
"name": "POP"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP1"
},
{
"begin": 1563,
"end": 3769,
"name": "POP"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "12"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP2"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "13"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 1563,
"end": 3769,
"name": "tag",
"value": "12"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPDEST"
},
{
"begin": 1563,
"end": 3769,
"name": "POP"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP1"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 1563,
"end": 3769,
"name": "tag",
"value": "13"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPDEST"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "14"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP2"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP1"
},
{
"begin": 1563,
"end": 3769,
"name": "tag",
"value": "15"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPDEST"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP3"
},
{
"begin": 1563,
"end": 3769,
"name": "GT"
},
{
"begin": 1563,
"end": 3769,
"name": "ISZERO"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "16"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "0"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP2"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "0"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP1"
},
{
"begin": 1563,
"end": 3769,
"name": "SSTORE"
},
{
"begin": 1563,
"end": 3769,
"name": "POP"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "1"
},
{
"begin": 1563,
"end": 3769,
"name": "ADD"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "15"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMP"
},
{
"begin": 1563,
"end": 3769,
"name": "tag",
"value": "16"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPDEST"
},
{
"begin": 1563,
"end": 3769,
"name": "POP"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP1"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMP"
},
{
"begin": 1563,
"end": 3769,
"name": "tag",
"value": "14"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPDEST"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP1"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 1563,
"end": 3769,
"name": "tag",
"value": "7"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPDEST"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "0"
},
{
"begin": 1563,
"end": 3769,
"name": "CODECOPY"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "0"
},
{
"begin": 1563,
"end": 3769,
"name": "RETURN"
}
],
".data": {
"0": {
".auxdata": "a165627a7a723058204a49bcb9d0c4e2f4b4ef5afa1545e4b798def460027e5fbf34c82493cffdfa380029",
".code": [
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "80"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "40"
},
{
"begin": 1563,
"end": 3769,
"name": "MSTORE"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "4"
},
{
"begin": 1563,
"end": 3769,
"name": "CALLDATASIZE"
},
{
"begin": 1563,
"end": 3769,
"name": "LT"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "0"
},
{
"begin": 1563,
"end": 3769,
"name": "CALLDATALOAD"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "100000000000000000000000000000000000000000000000000000000"
},
{
"begin": 1563,
"end": 3769,
"name": "SWAP1"
},
{
"begin": 1563,
"end": 3769,
"name": "DIV"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "FFFFFFFF"
},
{
"begin": 1563,
"end": 3769,
"name": "AND"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "6FDDE03"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "2"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "95EA7B3"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "3"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "18160DDD"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "4"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "23B872DD"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "5"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "313CE567"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "6"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "3EAAF86B"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "7"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "70A08231"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "8"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "95D89B41"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "9"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "A293D1E8"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "10"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "A9059CBB"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "11"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "B5931F7C"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "12"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "CAE9CA51"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "13"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "D05C78DA"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "14"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "DD62ED3E"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "15"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "DUP1"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH",
"value": "E6CB9013"
},
{
"begin": 1563,
"end": 3769,
"name": "EQ"
},
{
"begin": 1563,
"end": 3769,
"name": "PUSH [tag]",
"value": "16"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPI"
},
{
"begin": 1563,
"end": 3769,
"name": "tag",
"value": "1"
},
{
"begin": 1563,
"end": 3769,
"name": "JUMPDEST"
},
{
"begin": 3752,
"end": 3760,
"name": "PUSH",
"value": "0"
},
{
"begin": 3752,
"end": 3760,
"name": "DUP1"
},
{
"begin": 3752,
"end": 3760,
"name": "REVERT"
},
{
"begin": 1642,
"end": 1661,
"name": "tag",
"value": "2"
},
{
"begin": 1642,
"end": 1661,
"name": "JUMPDEST"
},
{
"begin": 1642,
"end": 1661,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "19"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "19"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH [tag]",
"value": "20"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH [tag]",
"value": "21"
},
{
"begin": 1642,
"end": 1661,
"name": "JUMP"
},
{
"begin": 1642,
"end": 1661,
"name": "tag",
"value": "20"
},
{
"begin": 1642,
"end": 1661,
"name": "JUMPDEST"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "40"
},
{
"begin": 1642,
"end": 1661,
"name": "MLOAD"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "20"
},
{
"begin": 1642,
"end": 1661,
"name": "ADD"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP3"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP2"
},
{
"begin": 1642,
"end": 1661,
"name": "SUB"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP3"
},
{
"begin": 1642,
"end": 1661,
"name": "MSTORE"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP4"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP2"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP2"
},
{
"begin": 1642,
"end": 1661,
"name": "MLOAD"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP2"
},
{
"begin": 1642,
"end": 1661,
"name": "MSTORE"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "20"
},
{
"begin": 1642,
"end": 1661,
"name": "ADD"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP2"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "MLOAD"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "20"
},
{
"begin": 1642,
"end": 1661,
"name": "ADD"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP4"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP4"
},
{
"begin": 23,
"end": 24,
"name": "PUSH",
"value": "0"
},
{
"begin": 8,
"end": 108,
"name": "tag",
"value": "22"
},
{
"begin": 8,
"end": 108,
"name": "JUMPDEST"
},
{
"begin": 33,
"end": 36,
"name": "DUP4"
},
{
"begin": 30,
"end": 31,
"name": "DUP2"
},
{
"begin": 27,
"end": 37,
"name": "LT"
},
{
"begin": 8,
"end": 108,
"name": "ISZERO"
},
{
"begin": 8,
"end": 108,
"name": "PUSH [tag]",
"value": "23"
},
{
"begin": 8,
"end": 108,
"name": "JUMPI"
},
{
"begin": 99,
"end": 100,
"name": "DUP1"
},
{
"begin": 94,
"end": 97,
"name": "DUP3"
},
{
"begin": 90,
"end": 101,
"name": "ADD"
},
{
"begin": 84,
"end": 102,
"name": "MLOAD"
},
{
"begin": 80,
"end": 81,
"name": "DUP2"
},
{
"begin": 75,
"end": 78,
"name": "DUP5"
},
{
"begin": 71,
"end": 82,
"name": "ADD"
},
{
"begin": 64,
"end": 103,
"name": "MSTORE"
},
{
"begin": 52,
"end": 54,
"name": "PUSH",
"value": "20"
},
{
"begin": 49,
"end": 50,
"name": "DUP2"
},
{
"begin": 45,
"end": 55,
"name": "ADD"
},
{
"begin": 40,
"end": 55,
"name": "SWAP1"
},
{
"begin": 40,
"end": 55,
"name": "POP"
},
{
"begin": 8,
"end": 108,
"name": "PUSH [tag]",
"value": "22"
},
{
"begin": 8,
"end": 108,
"name": "JUMP"
},
{
"begin": 8,
"end": 108,
"name": "tag",
"value": "23"
},
{
"begin": 8,
"end": 108,
"name": "JUMPDEST"
},
{
"begin": 12,
"end": 26,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP2"
},
{
"begin": 1642,
"end": 1661,
"name": "ADD"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1642,
"end": 1661,
"name": "AND"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "ISZERO"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH [tag]",
"value": "25"
},
{
"begin": 1642,
"end": 1661,
"name": "JUMPI"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP3"
},
{
"begin": 1642,
"end": 1661,
"name": "SUB"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "MLOAD"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "1"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP4"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "20"
},
{
"begin": 1642,
"end": 1661,
"name": "SUB"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "100"
},
{
"begin": 1642,
"end": 1661,
"name": "EXP"
},
{
"begin": 1642,
"end": 1661,
"name": "SUB"
},
{
"begin": 1642,
"end": 1661,
"name": "NOT"
},
{
"begin": 1642,
"end": 1661,
"name": "AND"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP2"
},
{
"begin": 1642,
"end": 1661,
"name": "MSTORE"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "20"
},
{
"begin": 1642,
"end": 1661,
"name": "ADD"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP2"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "tag",
"value": "25"
},
{
"begin": 1642,
"end": 1661,
"name": "JUMPDEST"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP3"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "40"
},
{
"begin": 1642,
"end": 1661,
"name": "MLOAD"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP2"
},
{
"begin": 1642,
"end": 1661,
"name": "SUB"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "RETURN"
},
{
"begin": 2670,
"end": 2874,
"name": "tag",
"value": "3"
},
{
"begin": 2670,
"end": 2874,
"name": "JUMPDEST"
},
{
"begin": 2670,
"end": 2874,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "26"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "26"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 2670,
"end": 2874,
"name": "POP"
},
{
"begin": 2670,
"end": 2874,
"name": "PUSH [tag]",
"value": "27"
},
{
"begin": 2670,
"end": 2874,
"name": "PUSH",
"value": "4"
},
{
"begin": 2670,
"end": 2874,
"name": "DUP1"
},
{
"begin": 2670,
"end": 2874,
"name": "CALLDATASIZE"
},
{
"begin": 2670,
"end": 2874,
"name": "SUB"
},
{
"begin": 2670,
"end": 2874,
"name": "DUP2"
},
{
"begin": 2670,
"end": 2874,
"name": "ADD"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP1"
},
{
"begin": 2670,
"end": 2874,
"name": "DUP1"
},
{
"begin": 2670,
"end": 2874,
"name": "DUP1"
},
{
"begin": 2670,
"end": 2874,
"name": "CALLDATALOAD"
},
{
"begin": 2670,
"end": 2874,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2670,
"end": 2874,
"name": "AND"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP1"
},
{
"begin": 2670,
"end": 2874,
"name": "PUSH",
"value": "20"
},
{
"begin": 2670,
"end": 2874,
"name": "ADD"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP1"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP3"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP2"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP1"
},
{
"begin": 2670,
"end": 2874,
"name": "DUP1"
},
{
"begin": 2670,
"end": 2874,
"name": "CALLDATALOAD"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP1"
},
{
"begin": 2670,
"end": 2874,
"name": "PUSH",
"value": "20"
},
{
"begin": 2670,
"end": 2874,
"name": "ADD"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP1"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP3"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP2"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP1"
},
{
"begin": 2670,
"end": 2874,
"name": "POP"
},
{
"begin": 2670,
"end": 2874,
"name": "POP"
},
{
"begin": 2670,
"end": 2874,
"name": "POP"
},
{
"begin": 2670,
"end": 2874,
"name": "PUSH [tag]",
"value": "28"
},
{
"begin": 2670,
"end": 2874,
"name": "JUMP"
},
{
"begin": 2670,
"end": 2874,
"name": "tag",
"value": "27"
},
{
"begin": 2670,
"end": 2874,
"name": "JUMPDEST"
},
{
"begin": 2670,
"end": 2874,
"name": "PUSH",
"value": "40"
},
{
"begin": 2670,
"end": 2874,
"name": "MLOAD"
},
{
"begin": 2670,
"end": 2874,
"name": "DUP1"
},
{
"begin": 2670,
"end": 2874,
"name": "DUP3"
},
{
"begin": 2670,
"end": 2874,
"name": "ISZERO"
},
{
"begin": 2670,
"end": 2874,
"name": "ISZERO"
},
{
"begin": 2670,
"end": 2874,
"name": "ISZERO"
},
{
"begin": 2670,
"end": 2874,
"name": "ISZERO"
},
{
"begin": 2670,
"end": 2874,
"name": "DUP2"
},
{
"begin": 2670,
"end": 2874,
"name": "MSTORE"
},
{
"begin": 2670,
"end": 2874,
"name": "PUSH",
"value": "20"
},
{
"begin": 2670,
"end": 2874,
"name": "ADD"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP2"
},
{
"begin": 2670,
"end": 2874,
"name": "POP"
},
{
"begin": 2670,
"end": 2874,
"name": "POP"
},
{
"begin": 2670,
"end": 2874,
"name": "PUSH",
"value": "40"
},
{
"begin": 2670,
"end": 2874,
"name": "MLOAD"
},
{
"begin": 2670,
"end": 2874,
"name": "DUP1"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP2"
},
{
"begin": 2670,
"end": 2874,
"name": "SUB"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP1"
},
{
"begin": 2670,
"end": 2874,
"name": "RETURN"
},
{
"begin": 2141,
"end": 2255,
"name": "tag",
"value": "4"
},
{
"begin": 2141,
"end": 2255,
"name": "JUMPDEST"
},
{
"begin": 2141,
"end": 2255,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "29"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "29"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 2141,
"end": 2255,
"name": "POP"
},
{
"begin": 2141,
"end": 2255,
"name": "PUSH [tag]",
"value": "30"
},
{
"begin": 2141,
"end": 2255,
"name": "PUSH [tag]",
"value": "31"
},
{
"begin": 2141,
"end": 2255,
"name": "JUMP"
},
{
"begin": 2141,
"end": 2255,
"name": "tag",
"value": "30"
},
{
"begin": 2141,
"end": 2255,
"name": "JUMPDEST"
},
{
"begin": 2141,
"end": 2255,
"name": "PUSH",
"value": "40"
},
{
"begin": 2141,
"end": 2255,
"name": "MLOAD"
},
{
"begin": 2141,
"end": 2255,
"name": "DUP1"
},
{
"begin": 2141,
"end": 2255,
"name": "DUP3"
},
{
"begin": 2141,
"end": 2255,
"name": "DUP2"
},
{
"begin": 2141,
"end": 2255,
"name": "MSTORE"
},
{
"begin": 2141,
"end": 2255,
"name": "PUSH",
"value": "20"
},
{
"begin": 2141,
"end": 2255,
"name": "ADD"
},
{
"begin": 2141,
"end": 2255,
"name": "SWAP2"
},
{
"begin": 2141,
"end": 2255,
"name": "POP"
},
{
"begin": 2141,
"end": 2255,
"name": "POP"
},
{
"begin": 2141,
"end": 2255,
"name": "PUSH",
"value": "40"
},
{
"begin": 2141,
"end": 2255,
"name": "MLOAD"
},
{
"begin": 2141,
"end": 2255,
"name": "DUP1"
},
{
"begin": 2141,
"end": 2255,
"name": "SWAP2"
},
{
"begin": 2141,
"end": 2255,
"name": "SUB"
},
{
"begin": 2141,
"end": 2255,
"name": "SWAP1"
},
{
"begin": 2141,
"end": 2255,
"name": "RETURN"
},
{
"begin": 2881,
"end": 3233,
"name": "tag",
"value": "5"
},
{
"begin": 2881,
"end": 3233,
"name": "JUMPDEST"
},
{
"begin": 2881,
"end": 3233,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "32"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "32"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 2881,
"end": 3233,
"name": "POP"
},
{
"begin": 2881,
"end": 3233,
"name": "PUSH [tag]",
"value": "33"
},
{
"begin": 2881,
"end": 3233,
"name": "PUSH",
"value": "4"
},
{
"begin": 2881,
"end": 3233,
"name": "DUP1"
},
{
"begin": 2881,
"end": 3233,
"name": "CALLDATASIZE"
},
{
"begin": 2881,
"end": 3233,
"name": "SUB"
},
{
"begin": 2881,
"end": 3233,
"name": "DUP2"
},
{
"begin": 2881,
"end": 3233,
"name": "ADD"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP1"
},
{
"begin": 2881,
"end": 3233,
"name": "DUP1"
},
{
"begin": 2881,
"end": 3233,
"name": "DUP1"
},
{
"begin": 2881,
"end": 3233,
"name": "CALLDATALOAD"
},
{
"begin": 2881,
"end": 3233,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2881,
"end": 3233,
"name": "AND"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP1"
},
{
"begin": 2881,
"end": 3233,
"name": "PUSH",
"value": "20"
},
{
"begin": 2881,
"end": 3233,
"name": "ADD"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP1"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP3"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP2"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP1"
},
{
"begin": 2881,
"end": 3233,
"name": "DUP1"
},
{
"begin": 2881,
"end": 3233,
"name": "CALLDATALOAD"
},
{
"begin": 2881,
"end": 3233,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2881,
"end": 3233,
"name": "AND"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP1"
},
{
"begin": 2881,
"end": 3233,
"name": "PUSH",
"value": "20"
},
{
"begin": 2881,
"end": 3233,
"name": "ADD"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP1"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP3"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP2"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP1"
},
{
"begin": 2881,
"end": 3233,
"name": "DUP1"
},
{
"begin": 2881,
"end": 3233,
"name": "CALLDATALOAD"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP1"
},
{
"begin": 2881,
"end": 3233,
"name": "PUSH",
"value": "20"
},
{
"begin": 2881,
"end": 3233,
"name": "ADD"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP1"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP3"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP2"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP1"
},
{
"begin": 2881,
"end": 3233,
"name": "POP"
},
{
"begin": 2881,
"end": 3233,
"name": "POP"
},
{
"begin": 2881,
"end": 3233,
"name": "POP"
},
{
"begin": 2881,
"end": 3233,
"name": "PUSH [tag]",
"value": "34"
},
{
"begin": 2881,
"end": 3233,
"name": "JUMP"
},
{
"begin": 2881,
"end": 3233,
"name": "tag",
"value": "33"
},
{
"begin": 2881,
"end": 3233,
"name": "JUMPDEST"
},
{
"begin": 2881,
"end": 3233,
"name": "PUSH",
"value": "40"
},
{
"begin": 2881,
"end": 3233,
"name": "MLOAD"
},
{
"begin": 2881,
"end": 3233,
"name": "DUP1"
},
{
"begin": 2881,
"end": 3233,
"name": "DUP3"
},
{
"begin": 2881,
"end": 3233,
"name": "ISZERO"
},
{
"begin": 2881,
"end": 3233,
"name": "ISZERO"
},
{
"begin": 2881,
"end": 3233,
"name": "ISZERO"
},
{
"begin": 2881,
"end": 3233,
"name": "ISZERO"
},
{
"begin": 2881,
"end": 3233,
"name": "DUP2"
},
{
"begin": 2881,
"end": 3233,
"name": "MSTORE"
},
{
"begin": 2881,
"end": 3233,
"name": "PUSH",
"value": "20"
},
{
"begin": 2881,
"end": 3233,
"name": "ADD"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP2"
},
{
"begin": 2881,
"end": 3233,
"name": "POP"
},
{
"begin": 2881,
"end": 3233,
"name": "POP"
},
{
"begin": 2881,
"end": 3233,
"name": "PUSH",
"value": "40"
},
{
"begin": 2881,
"end": 3233,
"name": "MLOAD"
},
{
"begin": 2881,
"end": 3233,
"name": "DUP1"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP2"
},
{
"begin": 2881,
"end": 3233,
"name": "SUB"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP1"
},
{
"begin": 2881,
"end": 3233,
"name": "RETURN"
},
{
"begin": 1667,
"end": 1688,
"name": "tag",
"value": "6"
},
{
"begin": 1667,
"end": 1688,
"name": "JUMPDEST"
},
{
"begin": 1667,
"end": 1688,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "35"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "35"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 1667,
"end": 1688,
"name": "POP"
},
{
"begin": 1667,
"end": 1688,
"name": "PUSH [tag]",
"value": "36"
},
{
"begin": 1667,
"end": 1688,
"name": "PUSH [tag]",
"value": "37"
},
{
"begin": 1667,
"end": 1688,
"name": "JUMP"
},
{
"begin": 1667,
"end": 1688,
"name": "tag",
"value": "36"
},
{
"begin": 1667,
"end": 1688,
"name": "JUMPDEST"
},
{
"begin": 1667,
"end": 1688,
"name": "PUSH",
"value": "40"
},
{
"begin": 1667,
"end": 1688,
"name": "MLOAD"
},
{
"begin": 1667,
"end": 1688,
"name": "DUP1"
},
{
"begin": 1667,
"end": 1688,
"name": "DUP3"
},
{
"begin": 1667,
"end": 1688,
"name": "PUSH",
"value": "FF"
},
{
"begin": 1667,
"end": 1688,
"name": "AND"
},
{
"begin": 1667,
"end": 1688,
"name": "PUSH",
"value": "FF"
},
{
"begin": 1667,
"end": 1688,
"name": "AND"
},
{
"begin": 1667,
"end": 1688,
"name": "DUP2"
},
{
"begin": 1667,
"end": 1688,
"name": "MSTORE"
},
{
"begin": 1667,
"end": 1688,
"name": "PUSH",
"value": "20"
},
{
"begin": 1667,
"end": 1688,
"name": "ADD"
},
{
"begin": 1667,
"end": 1688,
"name": "SWAP2"
},
{
"begin": 1667,
"end": 1688,
"name": "POP"
},
{
"begin": 1667,
"end": 1688,
"name": "POP"
},
{
"begin": 1667,
"end": 1688,
"name": "PUSH",
"value": "40"
},
{
"begin": 1667,
"end": 1688,
"name": "MLOAD"
},
{
"begin": 1667,
"end": 1688,
"name": "DUP1"
},
{
"begin": 1667,
"end": 1688,
"name": "SWAP2"
},
{
"begin": 1667,
"end": 1688,
"name": "SUB"
},
{
"begin": 1667,
"end": 1688,
"name": "SWAP1"
},
{
"begin": 1667,
"end": 1688,
"name": "RETURN"
},
{
"begin": 1694,
"end": 1718,
"name": "tag",
"value": "7"
},
{
"begin": 1694,
"end": 1718,
"name": "JUMPDEST"
},
{
"begin": 1694,
"end": 1718,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "38"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "38"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 1694,
"end": 1718,
"name": "POP"
},
{
"begin": 1694,
"end": 1718,
"name": "PUSH [tag]",
"value": "39"
},
{
"begin": 1694,
"end": 1718,
"name": "PUSH [tag]",
"value": "40"
},
{
"begin": 1694,
"end": 1718,
"name": "JUMP"
},
{
"begin": 1694,
"end": 1718,
"name": "tag",
"value": "39"
},
{
"begin": 1694,
"end": 1718,
"name": "JUMPDEST"
},
{
"begin": 1694,
"end": 1718,
"name": "PUSH",
"value": "40"
},
{
"begin": 1694,
"end": 1718,
"name": "MLOAD"
},
{
"begin": 1694,
"end": 1718,
"name": "DUP1"
},
{
"begin": 1694,
"end": 1718,
"name": "DUP3"
},
{
"begin": 1694,
"end": 1718,
"name": "DUP2"
},
{
"begin": 1694,
"end": 1718,
"name": "MSTORE"
},
{
"begin": 1694,
"end": 1718,
"name": "PUSH",
"value": "20"
},
{
"begin": 1694,
"end": 1718,
"name": "ADD"
},
{
"begin": 1694,
"end": 1718,
"name": "SWAP2"
},
{
"begin": 1694,
"end": 1718,
"name": "POP"
},
{
"begin": 1694,
"end": 1718,
"name": "POP"
},
{
"begin": 1694,
"end": 1718,
"name": "PUSH",
"value": "40"
},
{
"begin": 1694,
"end": 1718,
"name": "MLOAD"
},
{
"begin": 1694,
"end": 1718,
"name": "DUP1"
},
{
"begin": 1694,
"end": 1718,
"name": "SWAP2"
},
{
"begin": 1694,
"end": 1718,
"name": "SUB"
},
{
"begin": 1694,
"end": 1718,
"name": "SWAP1"
},
{
"begin": 1694,
"end": 1718,
"name": "RETURN"
},
{
"begin": 2262,
"end": 2384,
"name": "tag",
"value": "8"
},
{
"begin": 2262,
"end": 2384,
"name": "JUMPDEST"
},
{
"begin": 2262,
"end": 2384,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "41"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "41"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 2262,
"end": 2384,
"name": "POP"
},
{
"begin": 2262,
"end": 2384,
"name": "PUSH [tag]",
"value": "42"
},
{
"begin": 2262,
"end": 2384,
"name": "PUSH",
"value": "4"
},
{
"begin": 2262,
"end": 2384,
"name": "DUP1"
},
{
"begin": 2262,
"end": 2384,
"name": "CALLDATASIZE"
},
{
"begin": 2262,
"end": 2384,
"name": "SUB"
},
{
"begin": 2262,
"end": 2384,
"name": "DUP2"
},
{
"begin": 2262,
"end": 2384,
"name": "ADD"
},
{
"begin": 2262,
"end": 2384,
"name": "SWAP1"
},
{
"begin": 2262,
"end": 2384,
"name": "DUP1"
},
{
"begin": 2262,
"end": 2384,
"name": "DUP1"
},
{
"begin": 2262,
"end": 2384,
"name": "CALLDATALOAD"
},
{
"begin": 2262,
"end": 2384,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2262,
"end": 2384,
"name": "AND"
},
{
"begin": 2262,
"end": 2384,
"name": "SWAP1"
},
{
"begin": 2262,
"end": 2384,
"name": "PUSH",
"value": "20"
},
{
"begin": 2262,
"end": 2384,
"name": "ADD"
},
{
"begin": 2262,
"end": 2384,
"name": "SWAP1"
},
{
"begin": 2262,
"end": 2384,
"name": "SWAP3"
},
{
"begin": 2262,
"end": 2384,
"name": "SWAP2"
},
{
"begin": 2262,
"end": 2384,
"name": "SWAP1"
},
{
"begin": 2262,
"end": 2384,
"name": "POP"
},
{
"begin": 2262,
"end": 2384,
"name": "POP"
},
{
"begin": 2262,
"end": 2384,
"name": "POP"
},
{
"begin": 2262,
"end": 2384,
"name": "PUSH [tag]",
"value": "43"
},
{
"begin": 2262,
"end": 2384,
"name": "JUMP"
},
{
"begin": 2262,
"end": 2384,
"name": "tag",
"value": "42"
},
{
"begin": 2262,
"end": 2384,
"name": "JUMPDEST"
},
{
"begin": 2262,
"end": 2384,
"name": "PUSH",
"value": "40"
},
{
"begin": 2262,
"end": 2384,
"name": "MLOAD"
},
{
"begin": 2262,
"end": 2384,
"name": "DUP1"
},
{
"begin": 2262,
"end": 2384,
"name": "DUP3"
},
{
"begin": 2262,
"end": 2384,
"name": "DUP2"
},
{
"begin": 2262,
"end": 2384,
"name": "MSTORE"
},
{
"begin": 2262,
"end": 2384,
"name": "PUSH",
"value": "20"
},
{
"begin": 2262,
"end": 2384,
"name": "ADD"
},
{
"begin": 2262,
"end": 2384,
"name": "SWAP2"
},
{
"begin": 2262,
"end": 2384,
"name": "POP"
},
{
"begin": 2262,
"end": 2384,
"name": "POP"
},
{
"begin": 2262,
"end": 2384,
"name": "PUSH",
"value": "40"
},
{
"begin": 2262,
"end": 2384,
"name": "MLOAD"
},
{
"begin": 2262,
"end": 2384,
"name": "DUP1"
},
{
"begin": 2262,
"end": 2384,
"name": "SWAP2"
},
{
"begin": 2262,
"end": 2384,
"name": "SUB"
},
{
"begin": 2262,
"end": 2384,
"name": "SWAP1"
},
{
"begin": 2262,
"end": 2384,
"name": "RETURN"
},
{
"begin": 1616,
"end": 1636,
"name": "tag",
"value": "9"
},
{
"begin": 1616,
"end": 1636,
"name": "JUMPDEST"
},
{
"begin": 1616,
"end": 1636,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "44"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "44"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH [tag]",
"value": "45"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH [tag]",
"value": "46"
},
{
"begin": 1616,
"end": 1636,
"name": "JUMP"
},
{
"begin": 1616,
"end": 1636,
"name": "tag",
"value": "45"
},
{
"begin": 1616,
"end": 1636,
"name": "JUMPDEST"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "40"
},
{
"begin": 1616,
"end": 1636,
"name": "MLOAD"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "20"
},
{
"begin": 1616,
"end": 1636,
"name": "ADD"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP3"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP2"
},
{
"begin": 1616,
"end": 1636,
"name": "SUB"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP3"
},
{
"begin": 1616,
"end": 1636,
"name": "MSTORE"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP4"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP2"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP2"
},
{
"begin": 1616,
"end": 1636,
"name": "MLOAD"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP2"
},
{
"begin": 1616,
"end": 1636,
"name": "MSTORE"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "20"
},
{
"begin": 1616,
"end": 1636,
"name": "ADD"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP2"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "MLOAD"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "20"
},
{
"begin": 1616,
"end": 1636,
"name": "ADD"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP4"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP4"
},
{
"begin": 23,
"end": 24,
"name": "PUSH",
"value": "0"
},
{
"begin": 8,
"end": 108,
"name": "tag",
"value": "47"
},
{
"begin": 8,
"end": 108,
"name": "JUMPDEST"
},
{
"begin": 33,
"end": 36,
"name": "DUP4"
},
{
"begin": 30,
"end": 31,
"name": "DUP2"
},
{
"begin": 27,
"end": 37,
"name": "LT"
},
{
"begin": 8,
"end": 108,
"name": "ISZERO"
},
{
"begin": 8,
"end": 108,
"name": "PUSH [tag]",
"value": "48"
},
{
"begin": 8,
"end": 108,
"name": "JUMPI"
},
{
"begin": 99,
"end": 100,
"name": "DUP1"
},
{
"begin": 94,
"end": 97,
"name": "DUP3"
},
{
"begin": 90,
"end": 101,
"name": "ADD"
},
{
"begin": 84,
"end": 102,
"name": "MLOAD"
},
{
"begin": 80,
"end": 81,
"name": "DUP2"
},
{
"begin": 75,
"end": 78,
"name": "DUP5"
},
{
"begin": 71,
"end": 82,
"name": "ADD"
},
{
"begin": 64,
"end": 103,
"name": "MSTORE"
},
{
"begin": 52,
"end": 54,
"name": "PUSH",
"value": "20"
},
{
"begin": 49,
"end": 50,
"name": "DUP2"
},
{
"begin": 45,
"end": 55,
"name": "ADD"
},
{
"begin": 40,
"end": 55,
"name": "SWAP1"
},
{
"begin": 40,
"end": 55,
"name": "POP"
},
{
"begin": 8,
"end": 108,
"name": "PUSH [tag]",
"value": "47"
},
{
"begin": 8,
"end": 108,
"name": "JUMP"
},
{
"begin": 8,
"end": 108,
"name": "tag",
"value": "48"
},
{
"begin": 8,
"end": 108,
"name": "JUMPDEST"
},
{
"begin": 12,
"end": 26,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP2"
},
{
"begin": 1616,
"end": 1636,
"name": "ADD"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1616,
"end": 1636,
"name": "AND"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "ISZERO"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH [tag]",
"value": "50"
},
{
"begin": 1616,
"end": 1636,
"name": "JUMPI"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP3"
},
{
"begin": 1616,
"end": 1636,
"name": "SUB"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "MLOAD"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "1"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP4"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "20"
},
{
"begin": 1616,
"end": 1636,
"name": "SUB"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "100"
},
{
"begin": 1616,
"end": 1636,
"name": "EXP"
},
{
"begin": 1616,
"end": 1636,
"name": "SUB"
},
{
"begin": 1616,
"end": 1636,
"name": "NOT"
},
{
"begin": 1616,
"end": 1636,
"name": "AND"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP2"
},
{
"begin": 1616,
"end": 1636,
"name": "MSTORE"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "20"
},
{
"begin": 1616,
"end": 1636,
"name": "ADD"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP2"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "tag",
"value": "50"
},
{
"begin": 1616,
"end": 1636,
"name": "JUMPDEST"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP3"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "40"
},
{
"begin": 1616,
"end": 1636,
"name": "MLOAD"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP2"
},
{
"begin": 1616,
"end": 1636,
"name": "SUB"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "RETURN"
},
{
"begin": 234,
"end": 347,
"name": "tag",
"value": "10"
},
{
"begin": 234,
"end": 347,
"name": "JUMPDEST"
},
{
"begin": 234,
"end": 347,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "51"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "51"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "PUSH [tag]",
"value": "52"
},
{
"begin": 234,
"end": 347,
"name": "PUSH",
"value": "4"
},
{
"begin": 234,
"end": 347,
"name": "DUP1"
},
{
"begin": 234,
"end": 347,
"name": "CALLDATASIZE"
},
{
"begin": 234,
"end": 347,
"name": "SUB"
},
{
"begin": 234,
"end": 347,
"name": "DUP2"
},
{
"begin": 234,
"end": 347,
"name": "ADD"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "DUP1"
},
{
"begin": 234,
"end": 347,
"name": "DUP1"
},
{
"begin": 234,
"end": 347,
"name": "CALLDATALOAD"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "PUSH",
"value": "20"
},
{
"begin": 234,
"end": 347,
"name": "ADD"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "SWAP3"
},
{
"begin": 234,
"end": 347,
"name": "SWAP2"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "DUP1"
},
{
"begin": 234,
"end": 347,
"name": "CALLDATALOAD"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "PUSH",
"value": "20"
},
{
"begin": 234,
"end": 347,
"name": "ADD"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "SWAP3"
},
{
"begin": 234,
"end": 347,
"name": "SWAP2"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "PUSH [tag]",
"value": "53"
},
{
"begin": 234,
"end": 347,
"name": "JUMP"
},
{
"begin": 234,
"end": 347,
"name": "tag",
"value": "52"
},
{
"begin": 234,
"end": 347,
"name": "JUMPDEST"
},
{
"begin": 234,
"end": 347,
"name": "PUSH",
"value": "40"
},
{
"begin": 234,
"end": 347,
"name": "MLOAD"
},
{
"begin": 234,
"end": 347,
"name": "DUP1"
},
{
"begin": 234,
"end": 347,
"name": "DUP3"
},
{
"begin": 234,
"end": 347,
"name": "DUP2"
},
{
"begin": 234,
"end": 347,
"name": "MSTORE"
},
{
"begin": 234,
"end": 347,
"name": "PUSH",
"value": "20"
},
{
"begin": 234,
"end": 347,
"name": "ADD"
},
{
"begin": 234,
"end": 347,
"name": "SWAP2"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "PUSH",
"value": "40"
},
{
"begin": 234,
"end": 347,
"name": "MLOAD"
},
{
"begin": 234,
"end": 347,
"name": "DUP1"
},
{
"begin": 234,
"end": 347,
"name": "SWAP2"
},
{
"begin": 234,
"end": 347,
"name": "SUB"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "RETURN"
},
{
"begin": 2391,
"end": 2663,
"name": "tag",
"value": "11"
},
{
"begin": 2391,
"end": 2663,
"name": "JUMPDEST"
},
{
"begin": 2391,
"end": 2663,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "54"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "54"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 2391,
"end": 2663,
"name": "POP"
},
{
"begin": 2391,
"end": 2663,
"name": "PUSH [tag]",
"value": "55"
},
{
"begin": 2391,
"end": 2663,
"name": "PUSH",
"value": "4"
},
{
"begin": 2391,
"end": 2663,
"name": "DUP1"
},
{
"begin": 2391,
"end": 2663,
"name": "CALLDATASIZE"
},
{
"begin": 2391,
"end": 2663,
"name": "SUB"
},
{
"begin": 2391,
"end": 2663,
"name": "DUP2"
},
{
"begin": 2391,
"end": 2663,
"name": "ADD"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP1"
},
{
"begin": 2391,
"end": 2663,
"name": "DUP1"
},
{
"begin": 2391,
"end": 2663,
"name": "DUP1"
},
{
"begin": 2391,
"end": 2663,
"name": "CALLDATALOAD"
},
{
"begin": 2391,
"end": 2663,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2391,
"end": 2663,
"name": "AND"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP1"
},
{
"begin": 2391,
"end": 2663,
"name": "PUSH",
"value": "20"
},
{
"begin": 2391,
"end": 2663,
"name": "ADD"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP1"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP3"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP2"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP1"
},
{
"begin": 2391,
"end": 2663,
"name": "DUP1"
},
{
"begin": 2391,
"end": 2663,
"name": "CALLDATALOAD"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP1"
},
{
"begin": 2391,
"end": 2663,
"name": "PUSH",
"value": "20"
},
{
"begin": 2391,
"end": 2663,
"name": "ADD"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP1"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP3"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP2"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP1"
},
{
"begin": 2391,
"end": 2663,
"name": "POP"
},
{
"begin": 2391,
"end": 2663,
"name": "POP"
},
{
"begin": 2391,
"end": 2663,
"name": "POP"
},
{
"begin": 2391,
"end": 2663,
"name": "PUSH [tag]",
"value": "56"
},
{
"begin": 2391,
"end": 2663,
"name": "JUMP"
},
{
"begin": 2391,
"end": 2663,
"name": "tag",
"value": "55"
},
{
"begin": 2391,
"end": 2663,
"name": "JUMPDEST"
},
{
"begin": 2391,
"end": 2663,
"name": "PUSH",
"value": "40"
},
{
"begin": 2391,
"end": 2663,
"name": "MLOAD"
},
{
"begin": 2391,
"end": 2663,
"name": "DUP1"
},
{
"begin": 2391,
"end": 2663,
"name": "DUP3"
},
{
"begin": 2391,
"end": 2663,
"name": "ISZERO"
},
{
"begin": 2391,
"end": 2663,
"name": "ISZERO"
},
{
"begin": 2391,
"end": 2663,
"name": "ISZERO"
},
{
"begin": 2391,
"end": 2663,
"name": "ISZERO"
},
{
"begin": 2391,
"end": 2663,
"name": "DUP2"
},
{
"begin": 2391,
"end": 2663,
"name": "MSTORE"
},
{
"begin": 2391,
"end": 2663,
"name": "PUSH",
"value": "20"
},
{
"begin": 2391,
"end": 2663,
"name": "ADD"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP2"
},
{
"begin": 2391,
"end": 2663,
"name": "POP"
},
{
"begin": 2391,
"end": 2663,
"name": "POP"
},
{
"begin": 2391,
"end": 2663,
"name": "PUSH",
"value": "40"
},
{
"begin": 2391,
"end": 2663,
"name": "MLOAD"
},
{
"begin": 2391,
"end": 2663,
"name": "DUP1"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP2"
},
{
"begin": 2391,
"end": 2663,
"name": "SUB"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP1"
},
{
"begin": 2391,
"end": 2663,
"name": "RETURN"
},
{
"begin": 488,
"end": 600,
"name": "tag",
"value": "12"
},
{
"begin": 488,
"end": 600,
"name": "JUMPDEST"
},
{
"begin": 488,
"end": 600,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "57"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "57"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "PUSH [tag]",
"value": "58"
},
{
"begin": 488,
"end": 600,
"name": "PUSH",
"value": "4"
},
{
"begin": 488,
"end": 600,
"name": "DUP1"
},
{
"begin": 488,
"end": 600,
"name": "CALLDATASIZE"
},
{
"begin": 488,
"end": 600,
"name": "SUB"
},
{
"begin": 488,
"end": 600,
"name": "DUP2"
},
{
"begin": 488,
"end": 600,
"name": "ADD"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "DUP1"
},
{
"begin": 488,
"end": 600,
"name": "DUP1"
},
{
"begin": 488,
"end": 600,
"name": "CALLDATALOAD"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "PUSH",
"value": "20"
},
{
"begin": 488,
"end": 600,
"name": "ADD"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "SWAP3"
},
{
"begin": 488,
"end": 600,
"name": "SWAP2"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "DUP1"
},
{
"begin": 488,
"end": 600,
"name": "CALLDATALOAD"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "PUSH",
"value": "20"
},
{
"begin": 488,
"end": 600,
"name": "ADD"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "SWAP3"
},
{
"begin": 488,
"end": 600,
"name": "SWAP2"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "PUSH [tag]",
"value": "59"
},
{
"begin": 488,
"end": 600,
"name": "JUMP"
},
{
"begin": 488,
"end": 600,
"name": "tag",
"value": "58"
},
{
"begin": 488,
"end": 600,
"name": "JUMPDEST"
},
{
"begin": 488,
"end": 600,
"name": "PUSH",
"value": "40"
},
{
"begin": 488,
"end": 600,
"name": "MLOAD"
},
{
"begin": 488,
"end": 600,
"name": "DUP1"
},
{
"begin": 488,
"end": 600,
"name": "DUP3"
},
{
"begin": 488,
"end": 600,
"name": "DUP2"
},
{
"begin": 488,
"end": 600,
"name": "MSTORE"
},
{
"begin": 488,
"end": 600,
"name": "PUSH",
"value": "20"
},
{
"begin": 488,
"end": 600,
"name": "ADD"
},
{
"begin": 488,
"end": 600,
"name": "SWAP2"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "PUSH",
"value": "40"
},
{
"begin": 488,
"end": 600,
"name": "MLOAD"
},
{
"begin": 488,
"end": 600,
"name": "DUP1"
},
{
"begin": 488,
"end": 600,
"name": "SWAP2"
},
{
"begin": 488,
"end": 600,
"name": "SUB"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "RETURN"
},
{
"begin": 3396,
"end": 3708,
"name": "tag",
"value": "13"
},
{
"begin": 3396,
"end": 3708,
"name": "JUMPDEST"
},
{
"begin": 3396,
"end": 3708,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "60"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "60"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH [tag]",
"value": "61"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "4"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP1"
},
{
"begin": 3396,
"end": 3708,
"name": "CALLDATASIZE"
},
{
"begin": 3396,
"end": 3708,
"name": "SUB"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP2"
},
{
"begin": 3396,
"end": 3708,
"name": "ADD"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP1"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP1"
},
{
"begin": 3396,
"end": 3708,
"name": "CALLDATALOAD"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3396,
"end": 3708,
"name": "AND"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "20"
},
{
"begin": 3396,
"end": 3708,
"name": "ADD"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP3"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP2"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP1"
},
{
"begin": 3396,
"end": 3708,
"name": "CALLDATALOAD"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "20"
},
{
"begin": 3396,
"end": 3708,
"name": "ADD"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP3"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP2"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP1"
},
{
"begin": 3396,
"end": 3708,
"name": "CALLDATALOAD"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "20"
},
{
"begin": 3396,
"end": 3708,
"name": "ADD"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP3"
},
{
"begin": 3396,
"end": 3708,
"name": "ADD"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP1"
},
{
"begin": 3396,
"end": 3708,
"name": "CALLDATALOAD"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "20"
},
{
"begin": 3396,
"end": 3708,
"name": "ADD"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP1"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP1"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "1F"
},
{
"begin": 3396,
"end": 3708,
"name": "ADD"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "20"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP1"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP2"
},
{
"begin": 3396,
"end": 3708,
"name": "DIV"
},
{
"begin": 3396,
"end": 3708,
"name": "MUL"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "20"
},
{
"begin": 3396,
"end": 3708,
"name": "ADD"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "40"
},
{
"begin": 3396,
"end": 3708,
"name": "MLOAD"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP2"
},
{
"begin": 3396,
"end": 3708,
"name": "ADD"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "40"
},
{
"begin": 3396,
"end": 3708,
"name": "MSTORE"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP1"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP4"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP3"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP2"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP2"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP2"
},
{
"begin": 3396,
"end": 3708,
"name": "MSTORE"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "20"
},
{
"begin": 3396,
"end": 3708,
"name": "ADD"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP4"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP4"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP1"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP3"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP5"
},
{
"begin": 3396,
"end": 3708,
"name": "CALLDATACOPY"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP3"
},
{
"begin": 3396,
"end": 3708,
"name": "ADD"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP2"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP2"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP3"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP2"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP3"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH [tag]",
"value": "62"
},
{
"begin": 3396,
"end": 3708,
"name": "JUMP"
},
{
"begin": 3396,
"end": 3708,
"name": "tag",
"value": "61"
},
{
"begin": 3396,
"end": 3708,
"name": "JUMPDEST"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "40"
},
{
"begin": 3396,
"end": 3708,
"name": "MLOAD"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP1"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP3"
},
{
"begin": 3396,
"end": 3708,
"name": "ISZERO"
},
{
"begin": 3396,
"end": 3708,
"name": "ISZERO"
},
{
"begin": 3396,
"end": 3708,
"name": "ISZERO"
},
{
"begin": 3396,
"end": 3708,
"name": "ISZERO"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP2"
},
{
"begin": 3396,
"end": 3708,
"name": "MSTORE"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "20"
},
{
"begin": 3396,
"end": 3708,
"name": "ADD"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP2"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "PUSH",
"value": "40"
},
{
"begin": 3396,
"end": 3708,
"name": "MLOAD"
},
{
"begin": 3396,
"end": 3708,
"name": "DUP1"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP2"
},
{
"begin": 3396,
"end": 3708,
"name": "SUB"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP1"
},
{
"begin": 3396,
"end": 3708,
"name": "RETURN"
},
{
"begin": 354,
"end": 481,
"name": "tag",
"value": "14"
},
{
"begin": 354,
"end": 481,
"name": "JUMPDEST"
},
{
"begin": 354,
"end": 481,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "63"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "63"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "PUSH [tag]",
"value": "64"
},
{
"begin": 354,
"end": 481,
"name": "PUSH",
"value": "4"
},
{
"begin": 354,
"end": 481,
"name": "DUP1"
},
{
"begin": 354,
"end": 481,
"name": "CALLDATASIZE"
},
{
"begin": 354,
"end": 481,
"name": "SUB"
},
{
"begin": 354,
"end": 481,
"name": "DUP2"
},
{
"begin": 354,
"end": 481,
"name": "ADD"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "DUP1"
},
{
"begin": 354,
"end": 481,
"name": "DUP1"
},
{
"begin": 354,
"end": 481,
"name": "CALLDATALOAD"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "PUSH",
"value": "20"
},
{
"begin": 354,
"end": 481,
"name": "ADD"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "SWAP3"
},
{
"begin": 354,
"end": 481,
"name": "SWAP2"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "DUP1"
},
{
"begin": 354,
"end": 481,
"name": "CALLDATALOAD"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "PUSH",
"value": "20"
},
{
"begin": 354,
"end": 481,
"name": "ADD"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "SWAP3"
},
{
"begin": 354,
"end": 481,
"name": "SWAP2"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "PUSH [tag]",
"value": "65"
},
{
"begin": 354,
"end": 481,
"name": "JUMP"
},
{
"begin": 354,
"end": 481,
"name": "tag",
"value": "64"
},
{
"begin": 354,
"end": 481,
"name": "JUMPDEST"
},
{
"begin": 354,
"end": 481,
"name": "PUSH",
"value": "40"
},
{
"begin": 354,
"end": 481,
"name": "MLOAD"
},
{
"begin": 354,
"end": 481,
"name": "DUP1"
},
{
"begin": 354,
"end": 481,
"name": "DUP3"
},
{
"begin": 354,
"end": 481,
"name": "DUP2"
},
{
"begin": 354,
"end": 481,
"name": "MSTORE"
},
{
"begin": 354,
"end": 481,
"name": "PUSH",
"value": "20"
},
{
"begin": 354,
"end": 481,
"name": "ADD"
},
{
"begin": 354,
"end": 481,
"name": "SWAP2"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "PUSH",
"value": "40"
},
{
"begin": 354,
"end": 481,
"name": "MLOAD"
},
{
"begin": 354,
"end": 481,
"name": "DUP1"
},
{
"begin": 354,
"end": 481,
"name": "SWAP2"
},
{
"begin": 354,
"end": 481,
"name": "SUB"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "RETURN"
},
{
"begin": 3240,
"end": 3389,
"name": "tag",
"value": "15"
},
{
"begin": 3240,
"end": 3389,
"name": "JUMPDEST"
},
{
"begin": 3240,
"end": 3389,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "66"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "66"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 3240,
"end": 3389,
"name": "POP"
},
{
"begin": 3240,
"end": 3389,
"name": "PUSH [tag]",
"value": "67"
},
{
"begin": 3240,
"end": 3389,
"name": "PUSH",
"value": "4"
},
{
"begin": 3240,
"end": 3389,
"name": "DUP1"
},
{
"begin": 3240,
"end": 3389,
"name": "CALLDATASIZE"
},
{
"begin": 3240,
"end": 3389,
"name": "SUB"
},
{
"begin": 3240,
"end": 3389,
"name": "DUP2"
},
{
"begin": 3240,
"end": 3389,
"name": "ADD"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP1"
},
{
"begin": 3240,
"end": 3389,
"name": "DUP1"
},
{
"begin": 3240,
"end": 3389,
"name": "DUP1"
},
{
"begin": 3240,
"end": 3389,
"name": "CALLDATALOAD"
},
{
"begin": 3240,
"end": 3389,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3240,
"end": 3389,
"name": "AND"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP1"
},
{
"begin": 3240,
"end": 3389,
"name": "PUSH",
"value": "20"
},
{
"begin": 3240,
"end": 3389,
"name": "ADD"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP1"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP3"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP2"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP1"
},
{
"begin": 3240,
"end": 3389,
"name": "DUP1"
},
{
"begin": 3240,
"end": 3389,
"name": "CALLDATALOAD"
},
{
"begin": 3240,
"end": 3389,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3240,
"end": 3389,
"name": "AND"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP1"
},
{
"begin": 3240,
"end": 3389,
"name": "PUSH",
"value": "20"
},
{
"begin": 3240,
"end": 3389,
"name": "ADD"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP1"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP3"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP2"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP1"
},
{
"begin": 3240,
"end": 3389,
"name": "POP"
},
{
"begin": 3240,
"end": 3389,
"name": "POP"
},
{
"begin": 3240,
"end": 3389,
"name": "POP"
},
{
"begin": 3240,
"end": 3389,
"name": "PUSH [tag]",
"value": "68"
},
{
"begin": 3240,
"end": 3389,
"name": "JUMP"
},
{
"begin": 3240,
"end": 3389,
"name": "tag",
"value": "67"
},
{
"begin": 3240,
"end": 3389,
"name": "JUMPDEST"
},
{
"begin": 3240,
"end": 3389,
"name": "PUSH",
"value": "40"
},
{
"begin": 3240,
"end": 3389,
"name": "MLOAD"
},
{
"begin": 3240,
"end": 3389,
"name": "DUP1"
},
{
"begin": 3240,
"end": 3389,
"name": "DUP3"
},
{
"begin": 3240,
"end": 3389,
"name": "DUP2"
},
{
"begin": 3240,
"end": 3389,
"name": "MSTORE"
},
{
"begin": 3240,
"end": 3389,
"name": "PUSH",
"value": "20"
},
{
"begin": 3240,
"end": 3389,
"name": "ADD"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP2"
},
{
"begin": 3240,
"end": 3389,
"name": "POP"
},
{
"begin": 3240,
"end": 3389,
"name": "POP"
},
{
"begin": 3240,
"end": 3389,
"name": "PUSH",
"value": "40"
},
{
"begin": 3240,
"end": 3389,
"name": "MLOAD"
},
{
"begin": 3240,
"end": 3389,
"name": "DUP1"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP2"
},
{
"begin": 3240,
"end": 3389,
"name": "SUB"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP1"
},
{
"begin": 3240,
"end": 3389,
"name": "RETURN"
},
{
"begin": 114,
"end": 227,
"name": "tag",
"value": "16"
},
{
"begin": 114,
"end": 227,
"name": "JUMPDEST"
},
{
"begin": 114,
"end": 227,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "69"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "69"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "PUSH [tag]",
"value": "70"
},
{
"begin": 114,
"end": 227,
"name": "PUSH",
"value": "4"
},
{
"begin": 114,
"end": 227,
"name": "DUP1"
},
{
"begin": 114,
"end": 227,
"name": "CALLDATASIZE"
},
{
"begin": 114,
"end": 227,
"name": "SUB"
},
{
"begin": 114,
"end": 227,
"name": "DUP2"
},
{
"begin": 114,
"end": 227,
"name": "ADD"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "DUP1"
},
{
"begin": 114,
"end": 227,
"name": "DUP1"
},
{
"begin": 114,
"end": 227,
"name": "CALLDATALOAD"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "PUSH",
"value": "20"
},
{
"begin": 114,
"end": 227,
"name": "ADD"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "SWAP3"
},
{
"begin": 114,
"end": 227,
"name": "SWAP2"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "DUP1"
},
{
"begin": 114,
"end": 227,
"name": "CALLDATALOAD"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "PUSH",
"value": "20"
},
{
"begin": 114,
"end": 227,
"name": "ADD"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "SWAP3"
},
{
"begin": 114,
"end": 227,
"name": "SWAP2"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "PUSH [tag]",
"value": "71"
},
{
"begin": 114,
"end": 227,
"name": "JUMP"
},
{
"begin": 114,
"end": 227,
"name": "tag",
"value": "70"
},
{
"begin": 114,
"end": 227,
"name": "JUMPDEST"
},
{
"begin": 114,
"end": 227,
"name": "PUSH",
"value": "40"
},
{
"begin": 114,
"end": 227,
"name": "MLOAD"
},
{
"begin": 114,
"end": 227,
"name": "DUP1"
},
{
"begin": 114,
"end": 227,
"name": "DUP3"
},
{
"begin": 114,
"end": 227,
"name": "DUP2"
},
{
"begin": 114,
"end": 227,
"name": "MSTORE"
},
{
"begin": 114,
"end": 227,
"name": "PUSH",
"value": "20"
},
{
"begin": 114,
"end": 227,
"name": "ADD"
},
{
"begin": 114,
"end": 227,
"name": "SWAP2"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "PUSH",
"value": "40"
},
{
"begin": 114,
"end": 227,
"name": "MLOAD"
},
{
"begin": 114,
"end": 227,
"name": "DUP1"
},
{
"begin": 114,
"end": 227,
"name": "SWAP2"
},
{
"begin": 114,
"end": 227,
"name": "SUB"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "RETURN"
},
{
"begin": 1642,
"end": 1661,
"name": "tag",
"value": "21"
},
{
"begin": 1642,
"end": 1661,
"name": "JUMPDEST"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "1"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "SLOAD"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "1"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP2"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "1"
},
{
"begin": 1642,
"end": 1661,
"name": "AND"
},
{
"begin": 1642,
"end": 1661,
"name": "ISZERO"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "100"
},
{
"begin": 1642,
"end": 1661,
"name": "MUL"
},
{
"begin": 1642,
"end": 1661,
"name": "SUB"
},
{
"begin": 1642,
"end": 1661,
"name": "AND"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "2"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "DIV"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1642,
"end": 1661,
"name": "ADD"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "20"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP2"
},
{
"begin": 1642,
"end": 1661,
"name": "DIV"
},
{
"begin": 1642,
"end": 1661,
"name": "MUL"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "20"
},
{
"begin": 1642,
"end": 1661,
"name": "ADD"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "40"
},
{
"begin": 1642,
"end": 1661,
"name": "MLOAD"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP2"
},
{
"begin": 1642,
"end": 1661,
"name": "ADD"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "40"
},
{
"begin": 1642,
"end": 1661,
"name": "MSTORE"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP3"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP2"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP2"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP2"
},
{
"begin": 1642,
"end": 1661,
"name": "MSTORE"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "20"
},
{
"begin": 1642,
"end": 1661,
"name": "ADD"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP3"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "SLOAD"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "1"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP2"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "1"
},
{
"begin": 1642,
"end": 1661,
"name": "AND"
},
{
"begin": 1642,
"end": 1661,
"name": "ISZERO"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "100"
},
{
"begin": 1642,
"end": 1661,
"name": "MUL"
},
{
"begin": 1642,
"end": 1661,
"name": "SUB"
},
{
"begin": 1642,
"end": 1661,
"name": "AND"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "2"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "DIV"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "ISZERO"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH [tag]",
"value": "72"
},
{
"begin": 1642,
"end": 1661,
"name": "JUMPI"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1642,
"end": 1661,
"name": "LT"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH [tag]",
"value": "73"
},
{
"begin": 1642,
"end": 1661,
"name": "JUMPI"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "100"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP4"
},
{
"begin": 1642,
"end": 1661,
"name": "SLOAD"
},
{
"begin": 1642,
"end": 1661,
"name": "DIV"
},
{
"begin": 1642,
"end": 1661,
"name": "MUL"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP4"
},
{
"begin": 1642,
"end": 1661,
"name": "MSTORE"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP2"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "20"
},
{
"begin": 1642,
"end": 1661,
"name": "ADD"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP2"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH [tag]",
"value": "72"
},
{
"begin": 1642,
"end": 1661,
"name": "JUMP"
},
{
"begin": 1642,
"end": 1661,
"name": "tag",
"value": "73"
},
{
"begin": 1642,
"end": 1661,
"name": "JUMPDEST"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP3"
},
{
"begin": 1642,
"end": 1661,
"name": "ADD"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP2"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "0"
},
{
"begin": 1642,
"end": 1661,
"name": "MSTORE"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "20"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "0"
},
{
"begin": 1642,
"end": 1661,
"name": "KECCAK256"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "tag",
"value": "74"
},
{
"begin": 1642,
"end": 1661,
"name": "JUMPDEST"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP2"
},
{
"begin": 1642,
"end": 1661,
"name": "SLOAD"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP2"
},
{
"begin": 1642,
"end": 1661,
"name": "MSTORE"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "1"
},
{
"begin": 1642,
"end": 1661,
"name": "ADD"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "20"
},
{
"begin": 1642,
"end": 1661,
"name": "ADD"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP1"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP4"
},
{
"begin": 1642,
"end": 1661,
"name": "GT"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH [tag]",
"value": "74"
},
{
"begin": 1642,
"end": 1661,
"name": "JUMPI"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP3"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP1"
},
{
"begin": 1642,
"end": 1661,
"name": "SUB"
},
{
"begin": 1642,
"end": 1661,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1642,
"end": 1661,
"name": "AND"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP3"
},
{
"begin": 1642,
"end": 1661,
"name": "ADD"
},
{
"begin": 1642,
"end": 1661,
"name": "SWAP2"
},
{
"begin": 1642,
"end": 1661,
"name": "tag",
"value": "72"
},
{
"begin": 1642,
"end": 1661,
"name": "JUMPDEST"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "POP"
},
{
"begin": 1642,
"end": 1661,
"name": "DUP2"
},
{
"begin": 1642,
"end": 1661,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 2670,
"end": 2874,
"name": "tag",
"value": "28"
},
{
"begin": 2670,
"end": 2874,
"name": "JUMPDEST"
},
{
"begin": 2733,
"end": 2745,
"name": "PUSH",
"value": "0"
},
{
"begin": 2788,
"end": 2794,
"name": "DUP2"
},
{
"begin": 2757,
"end": 2764,
"name": "PUSH",
"value": "5"
},
{
"begin": 2757,
"end": 2776,
"name": "PUSH",
"value": "0"
},
{
"begin": 2765,
"end": 2775,
"name": "CALLER"
},
{
"begin": 2757,
"end": 2776,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2757,
"end": 2776,
"name": "AND"
},
{
"begin": 2757,
"end": 2776,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2757,
"end": 2776,
"name": "AND"
},
{
"begin": 2757,
"end": 2776,
"name": "DUP2"
},
{
"begin": 2757,
"end": 2776,
"name": "MSTORE"
},
{
"begin": 2757,
"end": 2776,
"name": "PUSH",
"value": "20"
},
{
"begin": 2757,
"end": 2776,
"name": "ADD"
},
{
"begin": 2757,
"end": 2776,
"name": "SWAP1"
},
{
"begin": 2757,
"end": 2776,
"name": "DUP2"
},
{
"begin": 2757,
"end": 2776,
"name": "MSTORE"
},
{
"begin": 2757,
"end": 2776,
"name": "PUSH",
"value": "20"
},
{
"begin": 2757,
"end": 2776,
"name": "ADD"
},
{
"begin": 2757,
"end": 2776,
"name": "PUSH",
"value": "0"
},
{
"begin": 2757,
"end": 2776,
"name": "KECCAK256"
},
{
"begin": 2757,
"end": 2785,
"name": "PUSH",
"value": "0"
},
{
"begin": 2777,
"end": 2784,
"name": "DUP6"
},
{
"begin": 2757,
"end": 2785,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2757,
"end": 2785,
"name": "AND"
},
{
"begin": 2757,
"end": 2785,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2757,
"end": 2785,
"name": "AND"
},
{
"begin": 2757,
"end": 2785,
"name": "DUP2"
},
{
"begin": 2757,
"end": 2785,
"name": "MSTORE"
},
{
"begin": 2757,
"end": 2785,
"name": "PUSH",
"value": "20"
},
{
"begin": 2757,
"end": 2785,
"name": "ADD"
},
{
"begin": 2757,
"end": 2785,
"name": "SWAP1"
},
{
"begin": 2757,
"end": 2785,
"name": "DUP2"
},
{
"begin": 2757,
"end": 2785,
"name": "MSTORE"
},
{
"begin": 2757,
"end": 2785,
"name": "PUSH",
"value": "20"
},
{
"begin": 2757,
"end": 2785,
"name": "ADD"
},
{
"begin": 2757,
"end": 2785,
"name": "PUSH",
"value": "0"
},
{
"begin": 2757,
"end": 2785,
"name": "KECCAK256"
},
{
"begin": 2757,
"end": 2794,
"name": "DUP2"
},
{
"begin": 2757,
"end": 2794,
"name": "SWAP1"
},
{
"begin": 2757,
"end": 2794,
"name": "SSTORE"
},
{
"begin": 2757,
"end": 2794,
"name": "POP"
},
{
"begin": 2830,
"end": 2837,
"name": "DUP3"
},
{
"begin": 2809,
"end": 2846,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2809,
"end": 2846,
"name": "AND"
},
{
"begin": 2818,
"end": 2828,
"name": "CALLER"
},
{
"begin": 2809,
"end": 2846,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2809,
"end": 2846,
"name": "AND"
},
{
"begin": 2809,
"end": 2846,
"name": "PUSH",
"value": "8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925"
},
{
"begin": 2839,
"end": 2845,
"name": "DUP5"
},
{
"begin": 2809,
"end": 2846,
"name": "PUSH",
"value": "40"
},
{
"begin": 2809,
"end": 2846,
"name": "MLOAD"
},
{
"begin": 2809,
"end": 2846,
"name": "DUP1"
},
{
"begin": 2809,
"end": 2846,
"name": "DUP3"
},
{
"begin": 2809,
"end": 2846,
"name": "DUP2"
},
{
"begin": 2809,
"end": 2846,
"name": "MSTORE"
},
{
"begin": 2809,
"end": 2846,
"name": "PUSH",
"value": "20"
},
{
"begin": 2809,
"end": 2846,
"name": "ADD"
},
{
"begin": 2809,
"end": 2846,
"name": "SWAP2"
},
{
"begin": 2809,
"end": 2846,
"name": "POP"
},
{
"begin": 2809,
"end": 2846,
"name": "POP"
},
{
"begin": 2809,
"end": 2846,
"name": "PUSH",
"value": "40"
},
{
"begin": 2809,
"end": 2846,
"name": "MLOAD"
},
{
"begin": 2809,
"end": 2846,
"name": "DUP1"
},
{
"begin": 2809,
"end": 2846,
"name": "SWAP2"
},
{
"begin": 2809,
"end": 2846,
"name": "SUB"
},
{
"begin": 2809,
"end": 2846,
"name": "SWAP1"
},
{
"begin": 2809,
"end": 2846,
"name": "LOG3"
},
{
"begin": 2863,
"end": 2867,
"name": "PUSH",
"value": "1"
},
{
"begin": 2856,
"end": 2867,
"name": "SWAP1"
},
{
"begin": 2856,
"end": 2867,
"name": "POP"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP3"
},
{
"begin": 2670,
"end": 2874,
"name": "SWAP2"
},
{
"begin": 2670,
"end": 2874,
"name": "POP"
},
{
"begin": 2670,
"end": 2874,
"name": "POP"
},
{
"begin": 2670,
"end": 2874,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 2141,
"end": 2255,
"name": "tag",
"value": "31"
},
{
"begin": 2141,
"end": 2255,
"name": "JUMPDEST"
},
{
"begin": 2189,
"end": 2193,
"name": "PUSH",
"value": "0"
},
{
"begin": 2228,
"end": 2236,
"name": "PUSH",
"value": "4"
},
{
"begin": 2228,
"end": 2248,
"name": "PUSH",
"value": "0"
},
{
"begin": 2245,
"end": 2246,
"name": "DUP1"
},
{
"begin": 2228,
"end": 2248,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2228,
"end": 2248,
"name": "AND"
},
{
"begin": 2228,
"end": 2248,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2228,
"end": 2248,
"name": "AND"
},
{
"begin": 2228,
"end": 2248,
"name": "DUP2"
},
{
"begin": 2228,
"end": 2248,
"name": "MSTORE"
},
{
"begin": 2228,
"end": 2248,
"name": "PUSH",
"value": "20"
},
{
"begin": 2228,
"end": 2248,
"name": "ADD"
},
{
"begin": 2228,
"end": 2248,
"name": "SWAP1"
},
{
"begin": 2228,
"end": 2248,
"name": "DUP2"
},
{
"begin": 2228,
"end": 2248,
"name": "MSTORE"
},
{
"begin": 2228,
"end": 2248,
"name": "PUSH",
"value": "20"
},
{
"begin": 2228,
"end": 2248,
"name": "ADD"
},
{
"begin": 2228,
"end": 2248,
"name": "PUSH",
"value": "0"
},
{
"begin": 2228,
"end": 2248,
"name": "KECCAK256"
},
{
"begin": 2228,
"end": 2248,
"name": "SLOAD"
},
{
"begin": 2212,
"end": 2224,
"name": "PUSH",
"value": "3"
},
{
"begin": 2212,
"end": 2224,
"name": "SLOAD"
},
{
"begin": 2212,
"end": 2248,
"name": "SUB"
},
{
"begin": 2205,
"end": 2248,
"name": "SWAP1"
},
{
"begin": 2205,
"end": 2248,
"name": "POP"
},
{
"begin": 2141,
"end": 2255,
"name": "SWAP1"
},
{
"begin": 2141,
"end": 2255,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 2881,
"end": 3233,
"name": "tag",
"value": "34"
},
{
"begin": 2881,
"end": 3233,
"name": "JUMPDEST"
},
{
"begin": 2958,
"end": 2970,
"name": "PUSH",
"value": "0"
},
{
"begin": 2999,
"end": 3030,
"name": "PUSH [tag]",
"value": "78"
},
{
"begin": 3007,
"end": 3015,
"name": "PUSH",
"value": "4"
},
{
"begin": 3007,
"end": 3021,
"name": "PUSH",
"value": "0"
},
{
"begin": 3016,
"end": 3020,
"name": "DUP7"
},
{
"begin": 3007,
"end": 3021,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3007,
"end": 3021,
"name": "AND"
},
{
"begin": 3007,
"end": 3021,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3007,
"end": 3021,
"name": "AND"
},
{
"begin": 3007,
"end": 3021,
"name": "DUP2"
},
{
"begin": 3007,
"end": 3021,
"name": "MSTORE"
},
{
"begin": 3007,
"end": 3021,
"name": "PUSH",
"value": "20"
},
{
"begin": 3007,
"end": 3021,
"name": "ADD"
},
{
"begin": 3007,
"end": 3021,
"name": "SWAP1"
},
{
"begin": 3007,
"end": 3021,
"name": "DUP2"
},
{
"begin": 3007,
"end": 3021,
"name": "MSTORE"
},
{
"begin": 3007,
"end": 3021,
"name": "PUSH",
"value": "20"
},
{
"begin": 3007,
"end": 3021,
"name": "ADD"
},
{
"begin": 3007,
"end": 3021,
"name": "PUSH",
"value": "0"
},
{
"begin": 3007,
"end": 3021,
"name": "KECCAK256"
},
{
"begin": 3007,
"end": 3021,
"name": "SLOAD"
},
{
"begin": 3023,
"end": 3029,
"name": "DUP4"
},
{
"begin": 2999,
"end": 3006,
"name": "PUSH [tag]",
"value": "53"
},
{
"begin": 2999,
"end": 3030,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 2999,
"end": 3030,
"name": "tag",
"value": "78"
},
{
"begin": 2999,
"end": 3030,
"name": "JUMPDEST"
},
{
"begin": 2982,
"end": 2990,
"name": "PUSH",
"value": "4"
},
{
"begin": 2982,
"end": 2996,
"name": "PUSH",
"value": "0"
},
{
"begin": 2991,
"end": 2995,
"name": "DUP7"
},
{
"begin": 2982,
"end": 2996,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2982,
"end": 2996,
"name": "AND"
},
{
"begin": 2982,
"end": 2996,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2982,
"end": 2996,
"name": "AND"
},
{
"begin": 2982,
"end": 2996,
"name": "DUP2"
},
{
"begin": 2982,
"end": 2996,
"name": "MSTORE"
},
{
"begin": 2982,
"end": 2996,
"name": "PUSH",
"value": "20"
},
{
"begin": 2982,
"end": 2996,
"name": "ADD"
},
{
"begin": 2982,
"end": 2996,
"name": "SWAP1"
},
{
"begin": 2982,
"end": 2996,
"name": "DUP2"
},
{
"begin": 2982,
"end": 2996,
"name": "MSTORE"
},
{
"begin": 2982,
"end": 2996,
"name": "PUSH",
"value": "20"
},
{
"begin": 2982,
"end": 2996,
"name": "ADD"
},
{
"begin": 2982,
"end": 2996,
"name": "PUSH",
"value": "0"
},
{
"begin": 2982,
"end": 2996,
"name": "KECCAK256"
},
{
"begin": 2982,
"end": 3030,
"name": "DUP2"
},
{
"begin": 2982,
"end": 3030,
"name": "SWAP1"
},
{
"begin": 2982,
"end": 3030,
"name": "SSTORE"
},
{
"begin": 2982,
"end": 3030,
"name": "POP"
},
{
"begin": 3068,
"end": 3110,
"name": "PUSH [tag]",
"value": "79"
},
{
"begin": 3076,
"end": 3083,
"name": "PUSH",
"value": "5"
},
{
"begin": 3076,
"end": 3089,
"name": "PUSH",
"value": "0"
},
{
"begin": 3084,
"end": 3088,
"name": "DUP7"
},
{
"begin": 3076,
"end": 3089,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3076,
"end": 3089,
"name": "AND"
},
{
"begin": 3076,
"end": 3089,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3076,
"end": 3089,
"name": "AND"
},
{
"begin": 3076,
"end": 3089,
"name": "DUP2"
},
{
"begin": 3076,
"end": 3089,
"name": "MSTORE"
},
{
"begin": 3076,
"end": 3089,
"name": "PUSH",
"value": "20"
},
{
"begin": 3076,
"end": 3089,
"name": "ADD"
},
{
"begin": 3076,
"end": 3089,
"name": "SWAP1"
},
{
"begin": 3076,
"end": 3089,
"name": "DUP2"
},
{
"begin": 3076,
"end": 3089,
"name": "MSTORE"
},
{
"begin": 3076,
"end": 3089,
"name": "PUSH",
"value": "20"
},
{
"begin": 3076,
"end": 3089,
"name": "ADD"
},
{
"begin": 3076,
"end": 3089,
"name": "PUSH",
"value": "0"
},
{
"begin": 3076,
"end": 3089,
"name": "KECCAK256"
},
{
"begin": 3076,
"end": 3101,
"name": "PUSH",
"value": "0"
},
{
"begin": 3090,
"end": 3100,
"name": "CALLER"
},
{
"begin": 3076,
"end": 3101,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3076,
"end": 3101,
"name": "AND"
},
{
"begin": 3076,
"end": 3101,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3076,
"end": 3101,
"name": "AND"
},
{
"begin": 3076,
"end": 3101,
"name": "DUP2"
},
{
"begin": 3076,
"end": 3101,
"name": "MSTORE"
},
{
"begin": 3076,
"end": 3101,
"name": "PUSH",
"value": "20"
},
{
"begin": 3076,
"end": 3101,
"name": "ADD"
},
{
"begin": 3076,
"end": 3101,
"name": "SWAP1"
},
{
"begin": 3076,
"end": 3101,
"name": "DUP2"
},
{
"begin": 3076,
"end": 3101,
"name": "MSTORE"
},
{
"begin": 3076,
"end": 3101,
"name": "PUSH",
"value": "20"
},
{
"begin": 3076,
"end": 3101,
"name": "ADD"
},
{
"begin": 3076,
"end": 3101,
"name": "PUSH",
"value": "0"
},
{
"begin": 3076,
"end": 3101,
"name": "KECCAK256"
},
{
"begin": 3076,
"end": 3101,
"name": "SLOAD"
},
{
"begin": 3103,
"end": 3109,
"name": "DUP4"
},
{
"begin": 3068,
"end": 3075,
"name": "PUSH [tag]",
"value": "53"
},
{
"begin": 3068,
"end": 3110,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 3068,
"end": 3110,
"name": "tag",
"value": "79"
},
{
"begin": 3068,
"end": 3110,
"name": "JUMPDEST"
},
{
"begin": 3040,
"end": 3047,
"name": "PUSH",
"value": "5"
},
{
"begin": 3040,
"end": 3053,
"name": "PUSH",
"value": "0"
},
{
"begin": 3048,
"end": 3052,
"name": "DUP7"
},
{
"begin": 3040,
"end": 3053,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3040,
"end": 3053,
"name": "AND"
},
{
"begin": 3040,
"end": 3053,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3040,
"end": 3053,
"name": "AND"
},
{
"begin": 3040,
"end": 3053,
"name": "DUP2"
},
{
"begin": 3040,
"end": 3053,
"name": "MSTORE"
},
{
"begin": 3040,
"end": 3053,
"name": "PUSH",
"value": "20"
},
{
"begin": 3040,
"end": 3053,
"name": "ADD"
},
{
"begin": 3040,
"end": 3053,
"name": "SWAP1"
},
{
"begin": 3040,
"end": 3053,
"name": "DUP2"
},
{
"begin": 3040,
"end": 3053,
"name": "MSTORE"
},
{
"begin": 3040,
"end": 3053,
"name": "PUSH",
"value": "20"
},
{
"begin": 3040,
"end": 3053,
"name": "ADD"
},
{
"begin": 3040,
"end": 3053,
"name": "PUSH",
"value": "0"
},
{
"begin": 3040,
"end": 3053,
"name": "KECCAK256"
},
{
"begin": 3040,
"end": 3065,
"name": "PUSH",
"value": "0"
},
{
"begin": 3054,
"end": 3064,
"name": "CALLER"
},
{
"begin": 3040,
"end": 3065,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3040,
"end": 3065,
"name": "AND"
},
{
"begin": 3040,
"end": 3065,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3040,
"end": 3065,
"name": "AND"
},
{
"begin": 3040,
"end": 3065,
"name": "DUP2"
},
{
"begin": 3040,
"end": 3065,
"name": "MSTORE"
},
{
"begin": 3040,
"end": 3065,
"name": "PUSH",
"value": "20"
},
{
"begin": 3040,
"end": 3065,
"name": "ADD"
},
{
"begin": 3040,
"end": 3065,
"name": "SWAP1"
},
{
"begin": 3040,
"end": 3065,
"name": "DUP2"
},
{
"begin": 3040,
"end": 3065,
"name": "MSTORE"
},
{
"begin": 3040,
"end": 3065,
"name": "PUSH",
"value": "20"
},
{
"begin": 3040,
"end": 3065,
"name": "ADD"
},
{
"begin": 3040,
"end": 3065,
"name": "PUSH",
"value": "0"
},
{
"begin": 3040,
"end": 3065,
"name": "KECCAK256"
},
{
"begin": 3040,
"end": 3110,
"name": "DUP2"
},
{
"begin": 3040,
"end": 3110,
"name": "SWAP1"
},
{
"begin": 3040,
"end": 3110,
"name": "SSTORE"
},
{
"begin": 3040,
"end": 3110,
"name": "POP"
},
{
"begin": 3135,
"end": 3164,
"name": "PUSH [tag]",
"value": "80"
},
{
"begin": 3143,
"end": 3151,
"name": "PUSH",
"value": "4"
},
{
"begin": 3143,
"end": 3155,
"name": "PUSH",
"value": "0"
},
{
"begin": 3152,
"end": 3154,
"name": "DUP6"
},
{
"begin": 3143,
"end": 3155,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3143,
"end": 3155,
"name": "AND"
},
{
"begin": 3143,
"end": 3155,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3143,
"end": 3155,
"name": "AND"
},
{
"begin": 3143,
"end": 3155,
"name": "DUP2"
},
{
"begin": 3143,
"end": 3155,
"name": "MSTORE"
},
{
"begin": 3143,
"end": 3155,
"name": "PUSH",
"value": "20"
},
{
"begin": 3143,
"end": 3155,
"name": "ADD"
},
{
"begin": 3143,
"end": 3155,
"name": "SWAP1"
},
{
"begin": 3143,
"end": 3155,
"name": "DUP2"
},
{
"begin": 3143,
"end": 3155,
"name": "MSTORE"
},
{
"begin": 3143,
"end": 3155,
"name": "PUSH",
"value": "20"
},
{
"begin": 3143,
"end": 3155,
"name": "ADD"
},
{
"begin": 3143,
"end": 3155,
"name": "PUSH",
"value": "0"
},
{
"begin": 3143,
"end": 3155,
"name": "KECCAK256"
},
{
"begin": 3143,
"end": 3155,
"name": "SLOAD"
},
{
"begin": 3157,
"end": 3163,
"name": "DUP4"
},
{
"begin": 3135,
"end": 3142,
"name": "PUSH [tag]",
"value": "71"
},
{
"begin": 3135,
"end": 3164,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 3135,
"end": 3164,
"name": "tag",
"value": "80"
},
{
"begin": 3135,
"end": 3164,
"name": "JUMPDEST"
},
{
"begin": 3120,
"end": 3128,
"name": "PUSH",
"value": "4"
},
{
"begin": 3120,
"end": 3132,
"name": "PUSH",
"value": "0"
},
{
"begin": 3129,
"end": 3131,
"name": "DUP6"
},
{
"begin": 3120,
"end": 3132,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3120,
"end": 3132,
"name": "AND"
},
{
"begin": 3120,
"end": 3132,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3120,
"end": 3132,
"name": "AND"
},
{
"begin": 3120,
"end": 3132,
"name": "DUP2"
},
{
"begin": 3120,
"end": 3132,
"name": "MSTORE"
},
{
"begin": 3120,
"end": 3132,
"name": "PUSH",
"value": "20"
},
{
"begin": 3120,
"end": 3132,
"name": "ADD"
},
{
"begin": 3120,
"end": 3132,
"name": "SWAP1"
},
{
"begin": 3120,
"end": 3132,
"name": "DUP2"
},
{
"begin": 3120,
"end": 3132,
"name": "MSTORE"
},
{
"begin": 3120,
"end": 3132,
"name": "PUSH",
"value": "20"
},
{
"begin": 3120,
"end": 3132,
"name": "ADD"
},
{
"begin": 3120,
"end": 3132,
"name": "PUSH",
"value": "0"
},
{
"begin": 3120,
"end": 3132,
"name": "KECCAK256"
},
{
"begin": 3120,
"end": 3164,
"name": "DUP2"
},
{
"begin": 3120,
"end": 3164,
"name": "SWAP1"
},
{
"begin": 3120,
"end": 3164,
"name": "SSTORE"
},
{
"begin": 3120,
"end": 3164,
"name": "POP"
},
{
"begin": 3194,
"end": 3196,
"name": "DUP3"
},
{
"begin": 3179,
"end": 3205,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3179,
"end": 3205,
"name": "AND"
},
{
"begin": 3188,
"end": 3192,
"name": "DUP5"
},
{
"begin": 3179,
"end": 3205,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3179,
"end": 3205,
"name": "AND"
},
{
"begin": 3179,
"end": 3205,
"name": "PUSH",
"value": "DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF"
},
{
"begin": 3198,
"end": 3204,
"name": "DUP5"
},
{
"begin": 3179,
"end": 3205,
"name": "PUSH",
"value": "40"
},
{
"begin": 3179,
"end": 3205,
"name": "MLOAD"
},
{
"begin": 3179,
"end": 3205,
"name": "DUP1"
},
{
"begin": 3179,
"end": 3205,
"name": "DUP3"
},
{
"begin": 3179,
"end": 3205,
"name": "DUP2"
},
{
"begin": 3179,
"end": 3205,
"name": "MSTORE"
},
{
"begin": 3179,
"end": 3205,
"name": "PUSH",
"value": "20"
},
{
"begin": 3179,
"end": 3205,
"name": "ADD"
},
{
"begin": 3179,
"end": 3205,
"name": "SWAP2"
},
{
"begin": 3179,
"end": 3205,
"name": "POP"
},
{
"begin": 3179,
"end": 3205,
"name": "POP"
},
{
"begin": 3179,
"end": 3205,
"name": "PUSH",
"value": "40"
},
{
"begin": 3179,
"end": 3205,
"name": "MLOAD"
},
{
"begin": 3179,
"end": 3205,
"name": "DUP1"
},
{
"begin": 3179,
"end": 3205,
"name": "SWAP2"
},
{
"begin": 3179,
"end": 3205,
"name": "SUB"
},
{
"begin": 3179,
"end": 3205,
"name": "SWAP1"
},
{
"begin": 3179,
"end": 3205,
"name": "LOG3"
},
{
"begin": 3222,
"end": 3226,
"name": "PUSH",
"value": "1"
},
{
"begin": 3215,
"end": 3226,
"name": "SWAP1"
},
{
"begin": 3215,
"end": 3226,
"name": "POP"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP4"
},
{
"begin": 2881,
"end": 3233,
"name": "SWAP3"
},
{
"begin": 2881,
"end": 3233,
"name": "POP"
},
{
"begin": 2881,
"end": 3233,
"name": "POP"
},
{
"begin": 2881,
"end": 3233,
"name": "POP"
},
{
"begin": 2881,
"end": 3233,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 1667,
"end": 1688,
"name": "tag",
"value": "37"
},
{
"begin": 1667,
"end": 1688,
"name": "JUMPDEST"
},
{
"begin": 1667,
"end": 1688,
"name": "PUSH",
"value": "2"
},
{
"begin": 1667,
"end": 1688,
"name": "PUSH",
"value": "0"
},
{
"begin": 1667,
"end": 1688,
"name": "SWAP1"
},
{
"begin": 1667,
"end": 1688,
"name": "SLOAD"
},
{
"begin": 1667,
"end": 1688,
"name": "SWAP1"
},
{
"begin": 1667,
"end": 1688,
"name": "PUSH",
"value": "100"
},
{
"begin": 1667,
"end": 1688,
"name": "EXP"
},
{
"begin": 1667,
"end": 1688,
"name": "SWAP1"
},
{
"begin": 1667,
"end": 1688,
"name": "DIV"
},
{
"begin": 1667,
"end": 1688,
"name": "PUSH",
"value": "FF"
},
{
"begin": 1667,
"end": 1688,
"name": "AND"
},
{
"begin": 1667,
"end": 1688,
"name": "DUP2"
},
{
"begin": 1667,
"end": 1688,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 1694,
"end": 1718,
"name": "tag",
"value": "40"
},
{
"begin": 1694,
"end": 1718,
"name": "JUMPDEST"
},
{
"begin": 1694,
"end": 1718,
"name": "PUSH",
"value": "3"
},
{
"begin": 1694,
"end": 1718,
"name": "SLOAD"
},
{
"begin": 1694,
"end": 1718,
"name": "DUP2"
},
{
"begin": 1694,
"end": 1718,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 2262,
"end": 2384,
"name": "tag",
"value": "43"
},
{
"begin": 2262,
"end": 2384,
"name": "JUMPDEST"
},
{
"begin": 2326,
"end": 2338,
"name": "PUSH",
"value": "0"
},
{
"begin": 2357,
"end": 2365,
"name": "PUSH",
"value": "4"
},
{
"begin": 2357,
"end": 2377,
"name": "PUSH",
"value": "0"
},
{
"begin": 2366,
"end": 2376,
"name": "DUP4"
},
{
"begin": 2357,
"end": 2377,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2357,
"end": 2377,
"name": "AND"
},
{
"begin": 2357,
"end": 2377,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2357,
"end": 2377,
"name": "AND"
},
{
"begin": 2357,
"end": 2377,
"name": "DUP2"
},
{
"begin": 2357,
"end": 2377,
"name": "MSTORE"
},
{
"begin": 2357,
"end": 2377,
"name": "PUSH",
"value": "20"
},
{
"begin": 2357,
"end": 2377,
"name": "ADD"
},
{
"begin": 2357,
"end": 2377,
"name": "SWAP1"
},
{
"begin": 2357,
"end": 2377,
"name": "DUP2"
},
{
"begin": 2357,
"end": 2377,
"name": "MSTORE"
},
{
"begin": 2357,
"end": 2377,
"name": "PUSH",
"value": "20"
},
{
"begin": 2357,
"end": 2377,
"name": "ADD"
},
{
"begin": 2357,
"end": 2377,
"name": "PUSH",
"value": "0"
},
{
"begin": 2357,
"end": 2377,
"name": "KECCAK256"
},
{
"begin": 2357,
"end": 2377,
"name": "SLOAD"
},
{
"begin": 2350,
"end": 2377,
"name": "SWAP1"
},
{
"begin": 2350,
"end": 2377,
"name": "POP"
},
{
"begin": 2262,
"end": 2384,
"name": "SWAP2"
},
{
"begin": 2262,
"end": 2384,
"name": "SWAP1"
},
{
"begin": 2262,
"end": 2384,
"name": "POP"
},
{
"begin": 2262,
"end": 2384,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 1616,
"end": 1636,
"name": "tag",
"value": "46"
},
{
"begin": 1616,
"end": 1636,
"name": "JUMPDEST"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "0"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "SLOAD"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "1"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP2"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "1"
},
{
"begin": 1616,
"end": 1636,
"name": "AND"
},
{
"begin": 1616,
"end": 1636,
"name": "ISZERO"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "100"
},
{
"begin": 1616,
"end": 1636,
"name": "MUL"
},
{
"begin": 1616,
"end": 1636,
"name": "SUB"
},
{
"begin": 1616,
"end": 1636,
"name": "AND"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "2"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "DIV"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1616,
"end": 1636,
"name": "ADD"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "20"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP2"
},
{
"begin": 1616,
"end": 1636,
"name": "DIV"
},
{
"begin": 1616,
"end": 1636,
"name": "MUL"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "20"
},
{
"begin": 1616,
"end": 1636,
"name": "ADD"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "40"
},
{
"begin": 1616,
"end": 1636,
"name": "MLOAD"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP2"
},
{
"begin": 1616,
"end": 1636,
"name": "ADD"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "40"
},
{
"begin": 1616,
"end": 1636,
"name": "MSTORE"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP3"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP2"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP2"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP2"
},
{
"begin": 1616,
"end": 1636,
"name": "MSTORE"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "20"
},
{
"begin": 1616,
"end": 1636,
"name": "ADD"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP3"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "SLOAD"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "1"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP2"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "1"
},
{
"begin": 1616,
"end": 1636,
"name": "AND"
},
{
"begin": 1616,
"end": 1636,
"name": "ISZERO"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "100"
},
{
"begin": 1616,
"end": 1636,
"name": "MUL"
},
{
"begin": 1616,
"end": 1636,
"name": "SUB"
},
{
"begin": 1616,
"end": 1636,
"name": "AND"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "2"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "DIV"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "ISZERO"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH [tag]",
"value": "82"
},
{
"begin": 1616,
"end": 1636,
"name": "JUMPI"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1616,
"end": 1636,
"name": "LT"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH [tag]",
"value": "83"
},
{
"begin": 1616,
"end": 1636,
"name": "JUMPI"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "100"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP4"
},
{
"begin": 1616,
"end": 1636,
"name": "SLOAD"
},
{
"begin": 1616,
"end": 1636,
"name": "DIV"
},
{
"begin": 1616,
"end": 1636,
"name": "MUL"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP4"
},
{
"begin": 1616,
"end": 1636,
"name": "MSTORE"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP2"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "20"
},
{
"begin": 1616,
"end": 1636,
"name": "ADD"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP2"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH [tag]",
"value": "82"
},
{
"begin": 1616,
"end": 1636,
"name": "JUMP"
},
{
"begin": 1616,
"end": 1636,
"name": "tag",
"value": "83"
},
{
"begin": 1616,
"end": 1636,
"name": "JUMPDEST"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP3"
},
{
"begin": 1616,
"end": 1636,
"name": "ADD"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP2"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "0"
},
{
"begin": 1616,
"end": 1636,
"name": "MSTORE"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "20"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "0"
},
{
"begin": 1616,
"end": 1636,
"name": "KECCAK256"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "tag",
"value": "84"
},
{
"begin": 1616,
"end": 1636,
"name": "JUMPDEST"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP2"
},
{
"begin": 1616,
"end": 1636,
"name": "SLOAD"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP2"
},
{
"begin": 1616,
"end": 1636,
"name": "MSTORE"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "1"
},
{
"begin": 1616,
"end": 1636,
"name": "ADD"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "20"
},
{
"begin": 1616,
"end": 1636,
"name": "ADD"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP1"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP4"
},
{
"begin": 1616,
"end": 1636,
"name": "GT"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH [tag]",
"value": "84"
},
{
"begin": 1616,
"end": 1636,
"name": "JUMPI"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP3"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP1"
},
{
"begin": 1616,
"end": 1636,
"name": "SUB"
},
{
"begin": 1616,
"end": 1636,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1616,
"end": 1636,
"name": "AND"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP3"
},
{
"begin": 1616,
"end": 1636,
"name": "ADD"
},
{
"begin": 1616,
"end": 1636,
"name": "SWAP2"
},
{
"begin": 1616,
"end": 1636,
"name": "tag",
"value": "82"
},
{
"begin": 1616,
"end": 1636,
"name": "JUMPDEST"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "POP"
},
{
"begin": 1616,
"end": 1636,
"name": "DUP2"
},
{
"begin": 1616,
"end": 1636,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 234,
"end": 347,
"name": "tag",
"value": "53"
},
{
"begin": 234,
"end": 347,
"name": "JUMPDEST"
},
{
"begin": 288,
"end": 294,
"name": "PUSH",
"value": "0"
},
{
"begin": 319,
"end": 320,
"name": "DUP3"
},
{
"begin": 314,
"end": 315,
"name": "DUP3"
},
{
"begin": 314,
"end": 320,
"name": "GT"
},
{
"begin": 314,
"end": 320,
"name": "ISZERO"
},
{
"begin": 306,
"end": 321,
"name": "ISZERO"
},
{
"begin": 306,
"end": 321,
"name": "ISZERO"
},
{
"begin": 306,
"end": 321,
"name": "PUSH [tag]",
"value": "86"
},
{
"begin": 306,
"end": 321,
"name": "JUMPI"
},
{
"begin": 306,
"end": 321,
"name": "PUSH",
"value": "0"
},
{
"begin": 306,
"end": 321,
"name": "DUP1"
},
{
"begin": 306,
"end": 321,
"name": "REVERT"
},
{
"begin": 306,
"end": 321,
"name": "tag",
"value": "86"
},
{
"begin": 306,
"end": 321,
"name": "JUMPDEST"
},
{
"begin": 339,
"end": 340,
"name": "DUP2"
},
{
"begin": 335,
"end": 336,
"name": "DUP4"
},
{
"begin": 335,
"end": 340,
"name": "SUB"
},
{
"begin": 331,
"end": 340,
"name": "SWAP1"
},
{
"begin": 331,
"end": 340,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "SWAP3"
},
{
"begin": 234,
"end": 347,
"name": "SWAP2"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 2391,
"end": 2663,
"name": "tag",
"value": "56"
},
{
"begin": 2391,
"end": 2663,
"name": "JUMPDEST"
},
{
"begin": 2450,
"end": 2462,
"name": "PUSH",
"value": "0"
},
{
"begin": 2497,
"end": 2534,
"name": "PUSH [tag]",
"value": "88"
},
{
"begin": 2505,
"end": 2513,
"name": "PUSH",
"value": "4"
},
{
"begin": 2505,
"end": 2525,
"name": "PUSH",
"value": "0"
},
{
"begin": 2514,
"end": 2524,
"name": "CALLER"
},
{
"begin": 2505,
"end": 2525,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2505,
"end": 2525,
"name": "AND"
},
{
"begin": 2505,
"end": 2525,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2505,
"end": 2525,
"name": "AND"
},
{
"begin": 2505,
"end": 2525,
"name": "DUP2"
},
{
"begin": 2505,
"end": 2525,
"name": "MSTORE"
},
{
"begin": 2505,
"end": 2525,
"name": "PUSH",
"value": "20"
},
{
"begin": 2505,
"end": 2525,
"name": "ADD"
},
{
"begin": 2505,
"end": 2525,
"name": "SWAP1"
},
{
"begin": 2505,
"end": 2525,
"name": "DUP2"
},
{
"begin": 2505,
"end": 2525,
"name": "MSTORE"
},
{
"begin": 2505,
"end": 2525,
"name": "PUSH",
"value": "20"
},
{
"begin": 2505,
"end": 2525,
"name": "ADD"
},
{
"begin": 2505,
"end": 2525,
"name": "PUSH",
"value": "0"
},
{
"begin": 2505,
"end": 2525,
"name": "KECCAK256"
},
{
"begin": 2505,
"end": 2525,
"name": "SLOAD"
},
{
"begin": 2527,
"end": 2533,
"name": "DUP4"
},
{
"begin": 2497,
"end": 2504,
"name": "PUSH [tag]",
"value": "53"
},
{
"begin": 2497,
"end": 2534,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 2497,
"end": 2534,
"name": "tag",
"value": "88"
},
{
"begin": 2497,
"end": 2534,
"name": "JUMPDEST"
},
{
"begin": 2474,
"end": 2482,
"name": "PUSH",
"value": "4"
},
{
"begin": 2474,
"end": 2494,
"name": "PUSH",
"value": "0"
},
{
"begin": 2483,
"end": 2493,
"name": "CALLER"
},
{
"begin": 2474,
"end": 2494,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2474,
"end": 2494,
"name": "AND"
},
{
"begin": 2474,
"end": 2494,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2474,
"end": 2494,
"name": "AND"
},
{
"begin": 2474,
"end": 2494,
"name": "DUP2"
},
{
"begin": 2474,
"end": 2494,
"name": "MSTORE"
},
{
"begin": 2474,
"end": 2494,
"name": "PUSH",
"value": "20"
},
{
"begin": 2474,
"end": 2494,
"name": "ADD"
},
{
"begin": 2474,
"end": 2494,
"name": "SWAP1"
},
{
"begin": 2474,
"end": 2494,
"name": "DUP2"
},
{
"begin": 2474,
"end": 2494,
"name": "MSTORE"
},
{
"begin": 2474,
"end": 2494,
"name": "PUSH",
"value": "20"
},
{
"begin": 2474,
"end": 2494,
"name": "ADD"
},
{
"begin": 2474,
"end": 2494,
"name": "PUSH",
"value": "0"
},
{
"begin": 2474,
"end": 2494,
"name": "KECCAK256"
},
{
"begin": 2474,
"end": 2534,
"name": "DUP2"
},
{
"begin": 2474,
"end": 2534,
"name": "SWAP1"
},
{
"begin": 2474,
"end": 2534,
"name": "SSTORE"
},
{
"begin": 2474,
"end": 2534,
"name": "POP"
},
{
"begin": 2559,
"end": 2588,
"name": "PUSH [tag]",
"value": "89"
},
{
"begin": 2567,
"end": 2575,
"name": "PUSH",
"value": "4"
},
{
"begin": 2567,
"end": 2579,
"name": "PUSH",
"value": "0"
},
{
"begin": 2576,
"end": 2578,
"name": "DUP6"
},
{
"begin": 2567,
"end": 2579,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2567,
"end": 2579,
"name": "AND"
},
{
"begin": 2567,
"end": 2579,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2567,
"end": 2579,
"name": "AND"
},
{
"begin": 2567,
"end": 2579,
"name": "DUP2"
},
{
"begin": 2567,
"end": 2579,
"name": "MSTORE"
},
{
"begin": 2567,
"end": 2579,
"name": "PUSH",
"value": "20"
},
{
"begin": 2567,
"end": 2579,
"name": "ADD"
},
{
"begin": 2567,
"end": 2579,
"name": "SWAP1"
},
{
"begin": 2567,
"end": 2579,
"name": "DUP2"
},
{
"begin": 2567,
"end": 2579,
"name": "MSTORE"
},
{
"begin": 2567,
"end": 2579,
"name": "PUSH",
"value": "20"
},
{
"begin": 2567,
"end": 2579,
"name": "ADD"
},
{
"begin": 2567,
"end": 2579,
"name": "PUSH",
"value": "0"
},
{
"begin": 2567,
"end": 2579,
"name": "KECCAK256"
},
{
"begin": 2567,
"end": 2579,
"name": "SLOAD"
},
{
"begin": 2581,
"end": 2587,
"name": "DUP4"
},
{
"begin": 2559,
"end": 2566,
"name": "PUSH [tag]",
"value": "71"
},
{
"begin": 2559,
"end": 2588,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 2559,
"end": 2588,
"name": "tag",
"value": "89"
},
{
"begin": 2559,
"end": 2588,
"name": "JUMPDEST"
},
{
"begin": 2544,
"end": 2552,
"name": "PUSH",
"value": "4"
},
{
"begin": 2544,
"end": 2556,
"name": "PUSH",
"value": "0"
},
{
"begin": 2553,
"end": 2555,
"name": "DUP6"
},
{
"begin": 2544,
"end": 2556,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2544,
"end": 2556,
"name": "AND"
},
{
"begin": 2544,
"end": 2556,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2544,
"end": 2556,
"name": "AND"
},
{
"begin": 2544,
"end": 2556,
"name": "DUP2"
},
{
"begin": 2544,
"end": 2556,
"name": "MSTORE"
},
{
"begin": 2544,
"end": 2556,
"name": "PUSH",
"value": "20"
},
{
"begin": 2544,
"end": 2556,
"name": "ADD"
},
{
"begin": 2544,
"end": 2556,
"name": "SWAP1"
},
{
"begin": 2544,
"end": 2556,
"name": "DUP2"
},
{
"begin": 2544,
"end": 2556,
"name": "MSTORE"
},
{
"begin": 2544,
"end": 2556,
"name": "PUSH",
"value": "20"
},
{
"begin": 2544,
"end": 2556,
"name": "ADD"
},
{
"begin": 2544,
"end": 2556,
"name": "PUSH",
"value": "0"
},
{
"begin": 2544,
"end": 2556,
"name": "KECCAK256"
},
{
"begin": 2544,
"end": 2588,
"name": "DUP2"
},
{
"begin": 2544,
"end": 2588,
"name": "SWAP1"
},
{
"begin": 2544,
"end": 2588,
"name": "SSTORE"
},
{
"begin": 2544,
"end": 2588,
"name": "POP"
},
{
"begin": 2624,
"end": 2626,
"name": "DUP3"
},
{
"begin": 2603,
"end": 2635,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2603,
"end": 2635,
"name": "AND"
},
{
"begin": 2612,
"end": 2622,
"name": "CALLER"
},
{
"begin": 2603,
"end": 2635,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 2603,
"end": 2635,
"name": "AND"
},
{
"begin": 2603,
"end": 2635,
"name": "PUSH",
"value": "DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF"
},
{
"begin": 2628,
"end": 2634,
"name": "DUP5"
},
{
"begin": 2603,
"end": 2635,
"name": "PUSH",
"value": "40"
},
{
"begin": 2603,
"end": 2635,
"name": "MLOAD"
},
{
"begin": 2603,
"end": 2635,
"name": "DUP1"
},
{
"begin": 2603,
"end": 2635,
"name": "DUP3"
},
{
"begin": 2603,
"end": 2635,
"name": "DUP2"
},
{
"begin": 2603,
"end": 2635,
"name": "MSTORE"
},
{
"begin": 2603,
"end": 2635,
"name": "PUSH",
"value": "20"
},
{
"begin": 2603,
"end": 2635,
"name": "ADD"
},
{
"begin": 2603,
"end": 2635,
"name": "SWAP2"
},
{
"begin": 2603,
"end": 2635,
"name": "POP"
},
{
"begin": 2603,
"end": 2635,
"name": "POP"
},
{
"begin": 2603,
"end": 2635,
"name": "PUSH",
"value": "40"
},
{
"begin": 2603,
"end": 2635,
"name": "MLOAD"
},
{
"begin": 2603,
"end": 2635,
"name": "DUP1"
},
{
"begin": 2603,
"end": 2635,
"name": "SWAP2"
},
{
"begin": 2603,
"end": 2635,
"name": "SUB"
},
{
"begin": 2603,
"end": 2635,
"name": "SWAP1"
},
{
"begin": 2603,
"end": 2635,
"name": "LOG3"
},
{
"begin": 2652,
"end": 2656,
"name": "PUSH",
"value": "1"
},
{
"begin": 2645,
"end": 2656,
"name": "SWAP1"
},
{
"begin": 2645,
"end": 2656,
"name": "POP"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP3"
},
{
"begin": 2391,
"end": 2663,
"name": "SWAP2"
},
{
"begin": 2391,
"end": 2663,
"name": "POP"
},
{
"begin": 2391,
"end": 2663,
"name": "POP"
},
{
"begin": 2391,
"end": 2663,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 488,
"end": 600,
"name": "tag",
"value": "59"
},
{
"begin": 488,
"end": 600,
"name": "JUMPDEST"
},
{
"begin": 542,
"end": 548,
"name": "PUSH",
"value": "0"
},
{
"begin": 572,
"end": 573,
"name": "DUP1"
},
{
"begin": 568,
"end": 569,
"name": "DUP3"
},
{
"begin": 568,
"end": 573,
"name": "GT"
},
{
"begin": 560,
"end": 574,
"name": "ISZERO"
},
{
"begin": 560,
"end": 574,
"name": "ISZERO"
},
{
"begin": 560,
"end": 574,
"name": "PUSH [tag]",
"value": "91"
},
{
"begin": 560,
"end": 574,
"name": "JUMPI"
},
{
"begin": 560,
"end": 574,
"name": "PUSH",
"value": "0"
},
{
"begin": 560,
"end": 574,
"name": "DUP1"
},
{
"begin": 560,
"end": 574,
"name": "REVERT"
},
{
"begin": 560,
"end": 574,
"name": "tag",
"value": "91"
},
{
"begin": 560,
"end": 574,
"name": "JUMPDEST"
},
{
"begin": 592,
"end": 593,
"name": "DUP2"
},
{
"begin": 588,
"end": 589,
"name": "DUP4"
},
{
"begin": 588,
"end": 593,
"name": "DUP2"
},
{
"begin": 588,
"end": 593,
"name": "ISZERO"
},
{
"begin": 588,
"end": 593,
"name": "ISZERO"
},
{
"begin": 588,
"end": 593,
"name": "PUSH [tag]",
"value": "92"
},
{
"begin": 588,
"end": 593,
"name": "JUMPI"
},
{
"begin": 588,
"end": 593,
"name": "INVALID"
},
{
"begin": 588,
"end": 593,
"name": "tag",
"value": "92"
},
{
"begin": 588,
"end": 593,
"name": "JUMPDEST"
},
{
"begin": 588,
"end": 593,
"name": "DIV"
},
{
"begin": 584,
"end": 593,
"name": "SWAP1"
},
{
"begin": 584,
"end": 593,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "SWAP3"
},
{
"begin": 488,
"end": 600,
"name": "SWAP2"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 3396,
"end": 3708,
"name": "tag",
"value": "62"
},
{
"begin": 3396,
"end": 3708,
"name": "JUMPDEST"
},
{
"begin": 3478,
"end": 3490,
"name": "PUSH",
"value": "0"
},
{
"begin": 3533,
"end": 3539,
"name": "DUP3"
},
{
"begin": 3502,
"end": 3509,
"name": "PUSH",
"value": "5"
},
{
"begin": 3502,
"end": 3521,
"name": "PUSH",
"value": "0"
},
{
"begin": 3510,
"end": 3520,
"name": "CALLER"
},
{
"begin": 3502,
"end": 3521,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3502,
"end": 3521,
"name": "AND"
},
{
"begin": 3502,
"end": 3521,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3502,
"end": 3521,
"name": "AND"
},
{
"begin": 3502,
"end": 3521,
"name": "DUP2"
},
{
"begin": 3502,
"end": 3521,
"name": "MSTORE"
},
{
"begin": 3502,
"end": 3521,
"name": "PUSH",
"value": "20"
},
{
"begin": 3502,
"end": 3521,
"name": "ADD"
},
{
"begin": 3502,
"end": 3521,
"name": "SWAP1"
},
{
"begin": 3502,
"end": 3521,
"name": "DUP2"
},
{
"begin": 3502,
"end": 3521,
"name": "MSTORE"
},
{
"begin": 3502,
"end": 3521,
"name": "PUSH",
"value": "20"
},
{
"begin": 3502,
"end": 3521,
"name": "ADD"
},
{
"begin": 3502,
"end": 3521,
"name": "PUSH",
"value": "0"
},
{
"begin": 3502,
"end": 3521,
"name": "KECCAK256"
},
{
"begin": 3502,
"end": 3530,
"name": "PUSH",
"value": "0"
},
{
"begin": 3522,
"end": 3529,
"name": "DUP7"
},
{
"begin": 3502,
"end": 3530,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3502,
"end": 3530,
"name": "AND"
},
{
"begin": 3502,
"end": 3530,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3502,
"end": 3530,
"name": "AND"
},
{
"begin": 3502,
"end": 3530,
"name": "DUP2"
},
{
"begin": 3502,
"end": 3530,
"name": "MSTORE"
},
{
"begin": 3502,
"end": 3530,
"name": "PUSH",
"value": "20"
},
{
"begin": 3502,
"end": 3530,
"name": "ADD"
},
{
"begin": 3502,
"end": 3530,
"name": "SWAP1"
},
{
"begin": 3502,
"end": 3530,
"name": "DUP2"
},
{
"begin": 3502,
"end": 3530,
"name": "MSTORE"
},
{
"begin": 3502,
"end": 3530,
"name": "PUSH",
"value": "20"
},
{
"begin": 3502,
"end": 3530,
"name": "ADD"
},
{
"begin": 3502,
"end": 3530,
"name": "PUSH",
"value": "0"
},
{
"begin": 3502,
"end": 3530,
"name": "KECCAK256"
},
{
"begin": 3502,
"end": 3539,
"name": "DUP2"
},
{
"begin": 3502,
"end": 3539,
"name": "SWAP1"
},
{
"begin": 3502,
"end": 3539,
"name": "SSTORE"
},
{
"begin": 3502,
"end": 3539,
"name": "POP"
},
{
"begin": 3575,
"end": 3582,
"name": "DUP4"
},
{
"begin": 3554,
"end": 3591,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3554,
"end": 3591,
"name": "AND"
},
{
"begin": 3563,
"end": 3573,
"name": "CALLER"
},
{
"begin": 3554,
"end": 3591,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3554,
"end": 3591,
"name": "AND"
},
{
"begin": 3554,
"end": 3591,
"name": "PUSH",
"value": "8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925"
},
{
"begin": 3584,
"end": 3590,
"name": "DUP6"
},
{
"begin": 3554,
"end": 3591,
"name": "PUSH",
"value": "40"
},
{
"begin": 3554,
"end": 3591,
"name": "MLOAD"
},
{
"begin": 3554,
"end": 3591,
"name": "DUP1"
},
{
"begin": 3554,
"end": 3591,
"name": "DUP3"
},
{
"begin": 3554,
"end": 3591,
"name": "DUP2"
},
{
"begin": 3554,
"end": 3591,
"name": "MSTORE"
},
{
"begin": 3554,
"end": 3591,
"name": "PUSH",
"value": "20"
},
{
"begin": 3554,
"end": 3591,
"name": "ADD"
},
{
"begin": 3554,
"end": 3591,
"name": "SWAP2"
},
{
"begin": 3554,
"end": 3591,
"name": "POP"
},
{
"begin": 3554,
"end": 3591,
"name": "POP"
},
{
"begin": 3554,
"end": 3591,
"name": "PUSH",
"value": "40"
},
{
"begin": 3554,
"end": 3591,
"name": "MLOAD"
},
{
"begin": 3554,
"end": 3591,
"name": "DUP1"
},
{
"begin": 3554,
"end": 3591,
"name": "SWAP2"
},
{
"begin": 3554,
"end": 3591,
"name": "SUB"
},
{
"begin": 3554,
"end": 3591,
"name": "SWAP1"
},
{
"begin": 3554,
"end": 3591,
"name": "LOG3"
},
{
"begin": 3624,
"end": 3631,
"name": "DUP4"
},
{
"begin": 3601,
"end": 3648,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3601,
"end": 3648,
"name": "AND"
},
{
"begin": 3601,
"end": 3648,
"name": "PUSH",
"value": "8F4FFCB1"
},
{
"begin": 3649,
"end": 3659,
"name": "CALLER"
},
{
"begin": 3661,
"end": 3667,
"name": "DUP6"
},
{
"begin": 3669,
"end": 3673,
"name": "ADDRESS"
},
{
"begin": 3675,
"end": 3679,
"name": "DUP7"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "40"
},
{
"begin": 3601,
"end": 3680,
"name": "MLOAD"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP6"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "FFFFFFFF"
},
{
"begin": 3601,
"end": 3680,
"name": "AND"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "100000000000000000000000000000000000000000000000000000000"
},
{
"begin": 3601,
"end": 3680,
"name": "MUL"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP2"
},
{
"begin": 3601,
"end": 3680,
"name": "MSTORE"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "4"
},
{
"begin": 3601,
"end": 3680,
"name": "ADD"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP1"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP6"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3601,
"end": 3680,
"name": "AND"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3601,
"end": 3680,
"name": "AND"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP2"
},
{
"begin": 3601,
"end": 3680,
"name": "MSTORE"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "20"
},
{
"begin": 3601,
"end": 3680,
"name": "ADD"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP5"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP2"
},
{
"begin": 3601,
"end": 3680,
"name": "MSTORE"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "20"
},
{
"begin": 3601,
"end": 3680,
"name": "ADD"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP4"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3601,
"end": 3680,
"name": "AND"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3601,
"end": 3680,
"name": "AND"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP2"
},
{
"begin": 3601,
"end": 3680,
"name": "MSTORE"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "20"
},
{
"begin": 3601,
"end": 3680,
"name": "ADD"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP1"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "20"
},
{
"begin": 3601,
"end": 3680,
"name": "ADD"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP3"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP2"
},
{
"begin": 3601,
"end": 3680,
"name": "SUB"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP3"
},
{
"begin": 3601,
"end": 3680,
"name": "MSTORE"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP4"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP2"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP2"
},
{
"begin": 3601,
"end": 3680,
"name": "MLOAD"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP2"
},
{
"begin": 3601,
"end": 3680,
"name": "MSTORE"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "20"
},
{
"begin": 3601,
"end": 3680,
"name": "ADD"
},
{
"begin": 3601,
"end": 3680,
"name": "SWAP2"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP1"
},
{
"begin": 3601,
"end": 3680,
"name": "MLOAD"
},
{
"begin": 3601,
"end": 3680,
"name": "SWAP1"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "20"
},
{
"begin": 3601,
"end": 3680,
"name": "ADD"
},
{
"begin": 3601,
"end": 3680,
"name": "SWAP1"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP1"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP4"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP4"
},
{
"begin": 23,
"end": 24,
"name": "PUSH",
"value": "0"
},
{
"begin": 8,
"end": 108,
"name": "tag",
"value": "94"
},
{
"begin": 8,
"end": 108,
"name": "JUMPDEST"
},
{
"begin": 33,
"end": 36,
"name": "DUP4"
},
{
"begin": 30,
"end": 31,
"name": "DUP2"
},
{
"begin": 27,
"end": 37,
"name": "LT"
},
{
"begin": 8,
"end": 108,
"name": "ISZERO"
},
{
"begin": 8,
"end": 108,
"name": "PUSH [tag]",
"value": "95"
},
{
"begin": 8,
"end": 108,
"name": "JUMPI"
},
{
"begin": 99,
"end": 100,
"name": "DUP1"
},
{
"begin": 94,
"end": 97,
"name": "DUP3"
},
{
"begin": 90,
"end": 101,
"name": "ADD"
},
{
"begin": 84,
"end": 102,
"name": "MLOAD"
},
{
"begin": 80,
"end": 81,
"name": "DUP2"
},
{
"begin": 75,
"end": 78,
"name": "DUP5"
},
{
"begin": 71,
"end": 82,
"name": "ADD"
},
{
"begin": 64,
"end": 103,
"name": "MSTORE"
},
{
"begin": 52,
"end": 54,
"name": "PUSH",
"value": "20"
},
{
"begin": 49,
"end": 50,
"name": "DUP2"
},
{
"begin": 45,
"end": 55,
"name": "ADD"
},
{
"begin": 40,
"end": 55,
"name": "SWAP1"
},
{
"begin": 40,
"end": 55,
"name": "POP"
},
{
"begin": 8,
"end": 108,
"name": "PUSH [tag]",
"value": "94"
},
{
"begin": 8,
"end": 108,
"name": "JUMP"
},
{
"begin": 8,
"end": 108,
"name": "tag",
"value": "95"
},
{
"begin": 8,
"end": 108,
"name": "JUMPDEST"
},
{
"begin": 12,
"end": 26,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "SWAP1"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "SWAP1"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP2"
},
{
"begin": 3601,
"end": 3680,
"name": "ADD"
},
{
"begin": 3601,
"end": 3680,
"name": "SWAP1"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "1F"
},
{
"begin": 3601,
"end": 3680,
"name": "AND"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP1"
},
{
"begin": 3601,
"end": 3680,
"name": "ISZERO"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH [tag]",
"value": "97"
},
{
"begin": 3601,
"end": 3680,
"name": "JUMPI"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP1"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP3"
},
{
"begin": 3601,
"end": 3680,
"name": "SUB"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP1"
},
{
"begin": 3601,
"end": 3680,
"name": "MLOAD"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "1"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP4"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "20"
},
{
"begin": 3601,
"end": 3680,
"name": "SUB"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "100"
},
{
"begin": 3601,
"end": 3680,
"name": "EXP"
},
{
"begin": 3601,
"end": 3680,
"name": "SUB"
},
{
"begin": 3601,
"end": 3680,
"name": "NOT"
},
{
"begin": 3601,
"end": 3680,
"name": "AND"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP2"
},
{
"begin": 3601,
"end": 3680,
"name": "MSTORE"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "20"
},
{
"begin": 3601,
"end": 3680,
"name": "ADD"
},
{
"begin": 3601,
"end": 3680,
"name": "SWAP2"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "tag",
"value": "97"
},
{
"begin": 3601,
"end": 3680,
"name": "JUMPDEST"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "SWAP6"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "0"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "40"
},
{
"begin": 3601,
"end": 3680,
"name": "MLOAD"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP1"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP4"
},
{
"begin": 3601,
"end": 3680,
"name": "SUB"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP2"
},
{
"begin": 3601,
"end": 3680,
"name": "PUSH",
"value": "0"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP8"
},
{
"begin": 3601,
"end": 3680,
"name": "DUP1"
},
{
"begin": 3601,
"end": 3680,
"name": "EXTCODESIZE"
},
{
"begin": 3601,
"end": 3680,
"name": "ISZERO"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "98"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "98"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "GAS"
},
{
"begin": 3601,
"end": 3680,
"name": "CALL"
},
{
"begin": 3601,
"end": 3680,
"name": "ISZERO"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "99"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 45,
"end": 61,
"name": "RETURNDATASIZE"
},
{
"begin": 42,
"end": 43,
"name": "PUSH",
"value": "0"
},
{
"begin": 39,
"end": 40,
"name": "DUP1"
},
{
"begin": 24,
"end": 62,
"name": "RETURNDATACOPY"
},
{
"begin": 77,
"end": 93,
"name": "RETURNDATASIZE"
},
{
"begin": 74,
"end": 75,
"name": "PUSH",
"value": "0"
},
{
"begin": 67,
"end": 94,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "99"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3601,
"end": 3680,
"name": "POP"
},
{
"begin": 3697,
"end": 3701,
"name": "PUSH",
"value": "1"
},
{
"begin": 3690,
"end": 3701,
"name": "SWAP1"
},
{
"begin": 3690,
"end": 3701,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP4"
},
{
"begin": 3396,
"end": 3708,
"name": "SWAP3"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "POP"
},
{
"begin": 3396,
"end": 3708,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 354,
"end": 481,
"name": "tag",
"value": "65"
},
{
"begin": 354,
"end": 481,
"name": "JUMPDEST"
},
{
"begin": 408,
"end": 414,
"name": "PUSH",
"value": "0"
},
{
"begin": 434,
"end": 435,
"name": "DUP2"
},
{
"begin": 430,
"end": 431,
"name": "DUP4"
},
{
"begin": 430,
"end": 435,
"name": "MUL"
},
{
"begin": 426,
"end": 435,
"name": "SWAP1"
},
{
"begin": 426,
"end": 435,
"name": "POP"
},
{
"begin": 458,
"end": 459,
"name": "PUSH",
"value": "0"
},
{
"begin": 453,
"end": 454,
"name": "DUP4"
},
{
"begin": 453,
"end": 459,
"name": "EQ"
},
{
"begin": 453,
"end": 473,
"name": "DUP1"
},
{
"begin": 453,
"end": 473,
"name": "PUSH [tag]",
"value": "101"
},
{
"begin": 453,
"end": 473,
"name": "JUMPI"
},
{
"begin": 453,
"end": 473,
"name": "POP"
},
{
"begin": 472,
"end": 473,
"name": "DUP2"
},
{
"begin": 467,
"end": 468,
"name": "DUP4"
},
{
"begin": 463,
"end": 464,
"name": "DUP3"
},
{
"begin": 463,
"end": 468,
"name": "DUP2"
},
{
"begin": 463,
"end": 468,
"name": "ISZERO"
},
{
"begin": 463,
"end": 468,
"name": "ISZERO"
},
{
"begin": 463,
"end": 468,
"name": "PUSH [tag]",
"value": "102"
},
{
"begin": 463,
"end": 468,
"name": "JUMPI"
},
{
"begin": 463,
"end": 468,
"name": "INVALID"
},
{
"begin": 463,
"end": 468,
"name": "tag",
"value": "102"
},
{
"begin": 463,
"end": 468,
"name": "JUMPDEST"
},
{
"begin": 463,
"end": 468,
"name": "DIV"
},
{
"begin": 463,
"end": 473,
"name": "EQ"
},
{
"begin": 453,
"end": 473,
"name": "tag",
"value": "101"
},
{
"begin": 453,
"end": 473,
"name": "JUMPDEST"
},
{
"begin": 445,
"end": 474,
"name": "ISZERO"
},
{
"begin": 445,
"end": 474,
"name": "ISZERO"
},
{
"begin": 445,
"end": 474,
"name": "PUSH [tag]",
"value": "103"
},
{
"begin": 445,
"end": 474,
"name": "JUMPI"
},
{
"begin": 445,
"end": 474,
"name": "PUSH",
"value": "0"
},
{
"begin": 445,
"end": 474,
"name": "DUP1"
},
{
"begin": 445,
"end": 474,
"name": "REVERT"
},
{
"begin": 445,
"end": 474,
"name": "tag",
"value": "103"
},
{
"begin": 445,
"end": 474,
"name": "JUMPDEST"
},
{
"begin": 354,
"end": 481,
"name": "SWAP3"
},
{
"begin": 354,
"end": 481,
"name": "SWAP2"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 3240,
"end": 3389,
"name": "tag",
"value": "68"
},
{
"begin": 3240,
"end": 3389,
"name": "JUMPDEST"
},
{
"begin": 3321,
"end": 3335,
"name": "PUSH",
"value": "0"
},
{
"begin": 3354,
"end": 3361,
"name": "PUSH",
"value": "5"
},
{
"begin": 3354,
"end": 3373,
"name": "PUSH",
"value": "0"
},
{
"begin": 3362,
"end": 3372,
"name": "DUP5"
},
{
"begin": 3354,
"end": 3373,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3354,
"end": 3373,
"name": "AND"
},
{
"begin": 3354,
"end": 3373,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3354,
"end": 3373,
"name": "AND"
},
{
"begin": 3354,
"end": 3373,
"name": "DUP2"
},
{
"begin": 3354,
"end": 3373,
"name": "MSTORE"
},
{
"begin": 3354,
"end": 3373,
"name": "PUSH",
"value": "20"
},
{
"begin": 3354,
"end": 3373,
"name": "ADD"
},
{
"begin": 3354,
"end": 3373,
"name": "SWAP1"
},
{
"begin": 3354,
"end": 3373,
"name": "DUP2"
},
{
"begin": 3354,
"end": 3373,
"name": "MSTORE"
},
{
"begin": 3354,
"end": 3373,
"name": "PUSH",
"value": "20"
},
{
"begin": 3354,
"end": 3373,
"name": "ADD"
},
{
"begin": 3354,
"end": 3373,
"name": "PUSH",
"value": "0"
},
{
"begin": 3354,
"end": 3373,
"name": "KECCAK256"
},
{
"begin": 3354,
"end": 3382,
"name": "PUSH",
"value": "0"
},
{
"begin": 3374,
"end": 3381,
"name": "DUP4"
},
{
"begin": 3354,
"end": 3382,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3354,
"end": 3382,
"name": "AND"
},
{
"begin": 3354,
"end": 3382,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 3354,
"end": 3382,
"name": "AND"
},
{
"begin": 3354,
"end": 3382,
"name": "DUP2"
},
{
"begin": 3354,
"end": 3382,
"name": "MSTORE"
},
{
"begin": 3354,
"end": 3382,
"name": "PUSH",
"value": "20"
},
{
"begin": 3354,
"end": 3382,
"name": "ADD"
},
{
"begin": 3354,
"end": 3382,
"name": "SWAP1"
},
{
"begin": 3354,
"end": 3382,
"name": "DUP2"
},
{
"begin": 3354,
"end": 3382,
"name": "MSTORE"
},
{
"begin": 3354,
"end": 3382,
"name": "PUSH",
"value": "20"
},
{
"begin": 3354,
"end": 3382,
"name": "ADD"
},
{
"begin": 3354,
"end": 3382,
"name": "PUSH",
"value": "0"
},
{
"begin": 3354,
"end": 3382,
"name": "KECCAK256"
},
{
"begin": 3354,
"end": 3382,
"name": "SLOAD"
},
{
"begin": 3347,
"end": 3382,
"name": "SWAP1"
},
{
"begin": 3347,
"end": 3382,
"name": "POP"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP3"
},
{
"begin": 3240,
"end": 3389,
"name": "SWAP2"
},
{
"begin": 3240,
"end": 3389,
"name": "POP"
},
{
"begin": 3240,
"end": 3389,
"name": "POP"
},
{
"begin": 3240,
"end": 3389,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 114,
"end": 227,
"name": "tag",
"value": "71"
},
{
"begin": 114,
"end": 227,
"name": "JUMPDEST"
},
{
"begin": 168,
"end": 174,
"name": "PUSH",
"value": "0"
},
{
"begin": 194,
"end": 195,
"name": "DUP2"
},
{
"begin": 190,
"end": 191,
"name": "DUP4"
},
{
"begin": 190,
"end": 195,
"name": "ADD"
},
{
"begin": 186,
"end": 195,
"name": "SWAP1"
},
{
"begin": 186,
"end": 195,
"name": "POP"
},
{
"begin": 218,
"end": 219,
"name": "DUP3"
},
{
"begin": 213,
"end": 214,
"name": "DUP2"
},
{
"begin": 213,
"end": 219,
"name": "LT"
},
{
"begin": 213,
"end": 219,
"name": "ISZERO"
},
{
"begin": 205,
"end": 220,
"name": "ISZERO"
},
{
"begin": 205,
"end": 220,
"name": "ISZERO"
},
{
"begin": 205,
"end": 220,
"name": "PUSH [tag]",
"value": "106"
},
{
"begin": 205,
"end": 220,
"name": "JUMPI"
},
{
"begin": 205,
"end": 220,
"name": "PUSH",
"value": "0"
},
{
"begin": 205,
"end": 220,
"name": "DUP1"
},
{
"begin": 205,
"end": 220,
"name": "REVERT"
},
{
"begin": 205,
"end": 220,
"name": "tag",
"value": "106"
},
{
"begin": 205,
"end": 220,
"name": "JUMPDEST"
},
{
"begin": 114,
"end": 227,
"name": "SWAP3"
},
{
"begin": 114,
"end": 227,
"name": "SWAP2"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "JUMP",
"value": "[out]"
}
]
}
}
},
"methodIdentifiers": {
"_totalSupply()": "3eaaf86b",
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"approveAndCall(address,uint256,bytes)": "cae9ca51",
"balanceOf(address)": "70a08231",
"decimals()": "313ce567",
"name()": "06fdde03",
"safeAdd(uint256,uint256)": "e6cb9013",
"safeDiv(uint256,uint256)": "b5931f7c",
"safeMul(uint256,uint256)": "d05c78da",
"safeSub(uint256,uint256)": "a293d1e8",
"symbol()": "95d89b41",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.4.26+commit.4563c3fc\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"_totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenOwner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"a\",\"type\":\"uint256\"},{\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"safeSub\",\"outputs\":[{\"name\":\"c\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"a\",\"type\":\"uint256\"},{\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"safeDiv\",\"outputs\":[{\"name\":\"c\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"tokens\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"a\",\"type\":\"uint256\"},{\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"safeMul\",\"outputs\":[{\"name\":\"c\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenOwner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"a\",\"type\":\"uint256\"},{\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"safeAdd\",\"outputs\":[{\"name\":\"c\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"tokenOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/3_Coda.sol\":\"CodaToken\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/3_Coda.sol\":{\"keccak256\":\"0x672b2228053fe412ed3639d4831d08cac417d0ec6d10dfbab6f0f3310a95ac2c\",\"urls\":[\"bzzr://0d596e42d92c1e133ca12acdaa2a5d419aba47cc79961e61e08255e11157ed4b\"]}},\"version\":1}",
"userdoc": {
"methods": {}
}
},
"ERC20Interface": {
"abi": [
{
"constant": false,
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "to",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "tokenOwner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "balance",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "to",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "tokenOwner",
"type": "address"
},
{
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"name": "remaining",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "tokens",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "tokenOwner",
"type": "address"
},
{
"indexed": true,
"name": "spender",
"type": "address"
},
{
"indexed": false,
"name": "tokens",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
}
],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": "",
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"legacyAssembly": null,
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"metadata": "",
"userdoc": {
"methods": {}
}
},
"SafeMath": {
"abi": [
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeSub",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeDiv",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeMul",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeAdd",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": " /* \"contracts/3_Coda.sol\":88:602 contract SafeMath {... */\n mstore(0x40, 0x80)\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_1\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\ntag_1:\n /* \"contracts/3_Coda.sol\":88:602 contract SafeMath {... */\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x0\n codecopy\n 0x0\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/3_Coda.sol\":88:602 contract SafeMath {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x4))\n calldataload(0x0)\n 0x100000000000000000000000000000000000000000000000000000000\n swap1\n div\n 0xffffffff\n and\n dup1\n 0xa293d1e8\n eq\n tag_2\n jumpi\n dup1\n 0xb5931f7c\n eq\n tag_3\n jumpi\n dup1\n 0xd05c78da\n eq\n tag_4\n jumpi\n dup1\n 0xe6cb9013\n eq\n tag_5\n jumpi\n tag_1:\n 0x0\n dup1\n revert\n /* \"contracts/3_Coda.sol\":234:347 function safeSub(uint a, uint b) public pure returns (uint c) {... */\n tag_2:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_6\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_6:\n /* \"contracts/3_Coda.sol\":234:347 function safeSub(uint a, uint b) public pure returns (uint c) {... */\n pop\n tag_7\n 0x4\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n jump(tag_8)\n tag_7:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":488:600 function safeDiv(uint a, uint b) public pure returns (uint c) {... */\n tag_3:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_9\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_9:\n /* \"contracts/3_Coda.sol\":488:600 function safeDiv(uint a, uint b) public pure returns (uint c) {... */\n pop\n tag_10\n 0x4\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n jump(tag_11)\n tag_10:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":354:481 function safeMul(uint a, uint b) public pure returns (uint c) {... */\n tag_4:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_12\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_12:\n /* \"contracts/3_Coda.sol\":354:481 function safeMul(uint a, uint b) public pure returns (uint c) {... */\n pop\n tag_13\n 0x4\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n jump(tag_14)\n tag_13:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":114:227 function safeAdd(uint a, uint b) public pure returns (uint c) {... */\n tag_5:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_15\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_15:\n /* \"contracts/3_Coda.sol\":114:227 function safeAdd(uint a, uint b) public pure returns (uint c) {... */\n pop\n tag_16\n 0x4\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n jump(tag_17)\n tag_16:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Coda.sol\":234:347 function safeSub(uint a, uint b) public pure returns (uint c) {... */\n tag_8:\n /* \"contracts/3_Coda.sol\":288:294 uint c */\n 0x0\n /* \"contracts/3_Coda.sol\":319:320 a */\n dup3\n /* \"contracts/3_Coda.sol\":314:315 b */\n dup3\n /* \"contracts/3_Coda.sol\":314:320 b <= a */\n gt\n iszero\n /* \"contracts/3_Coda.sol\":306:321 require(b <= a) */\n iszero\n iszero\n tag_19\n jumpi\n 0x0\n dup1\n revert\n tag_19:\n /* \"contracts/3_Coda.sol\":339:340 b */\n dup2\n /* \"contracts/3_Coda.sol\":335:336 a */\n dup4\n /* \"contracts/3_Coda.sol\":335:340 a - b */\n sub\n /* \"contracts/3_Coda.sol\":331:340 c = a - b */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":234:347 function safeSub(uint a, uint b) public pure returns (uint c) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/3_Coda.sol\":488:600 function safeDiv(uint a, uint b) public pure returns (uint c) {... */\n tag_11:\n /* \"contracts/3_Coda.sol\":542:548 uint c */\n 0x0\n /* \"contracts/3_Coda.sol\":572:573 0 */\n dup1\n /* \"contracts/3_Coda.sol\":568:569 b */\n dup3\n /* \"contracts/3_Coda.sol\":568:573 b > 0 */\n gt\n /* \"contracts/3_Coda.sol\":560:574 require(b > 0) */\n iszero\n iszero\n tag_21\n jumpi\n 0x0\n dup1\n revert\n tag_21:\n /* \"contracts/3_Coda.sol\":592:593 b */\n dup2\n /* \"contracts/3_Coda.sol\":588:589 a */\n dup4\n /* \"contracts/3_Coda.sol\":588:593 a / b */\n dup2\n iszero\n iszero\n tag_22\n jumpi\n invalid\n tag_22:\n div\n /* \"contracts/3_Coda.sol\":584:593 c = a / b */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":488:600 function safeDiv(uint a, uint b) public pure returns (uint c) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/3_Coda.sol\":354:481 function safeMul(uint a, uint b) public pure returns (uint c) {... */\n tag_14:\n /* \"contracts/3_Coda.sol\":408:414 uint c */\n 0x0\n /* \"contracts/3_Coda.sol\":434:435 b */\n dup2\n /* \"contracts/3_Coda.sol\":430:431 a */\n dup4\n /* \"contracts/3_Coda.sol\":430:435 a * b */\n mul\n /* \"contracts/3_Coda.sol\":426:435 c = a * b */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":458:459 0 */\n 0x0\n /* \"contracts/3_Coda.sol\":453:454 a */\n dup4\n /* \"contracts/3_Coda.sol\":453:459 a == 0 */\n eq\n /* \"contracts/3_Coda.sol\":453:473 a == 0 || c / a == b */\n dup1\n tag_24\n jumpi\n pop\n /* \"contracts/3_Coda.sol\":472:473 b */\n dup2\n /* \"contracts/3_Coda.sol\":467:468 a */\n dup4\n /* \"contracts/3_Coda.sol\":463:464 c */\n dup3\n /* \"contracts/3_Coda.sol\":463:468 c / a */\n dup2\n iszero\n iszero\n tag_25\n jumpi\n invalid\n tag_25:\n div\n /* \"contracts/3_Coda.sol\":463:473 c / a == b */\n eq\n /* \"contracts/3_Coda.sol\":453:473 a == 0 || c / a == b */\n tag_24:\n /* \"contracts/3_Coda.sol\":445:474 require(a == 0 || c / a == b) */\n iszero\n iszero\n tag_26\n jumpi\n 0x0\n dup1\n revert\n tag_26:\n /* \"contracts/3_Coda.sol\":354:481 function safeMul(uint a, uint b) public pure returns (uint c) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/3_Coda.sol\":114:227 function safeAdd(uint a, uint b) public pure returns (uint c) {... */\n tag_17:\n /* \"contracts/3_Coda.sol\":168:174 uint c */\n 0x0\n /* \"contracts/3_Coda.sol\":194:195 b */\n dup2\n /* \"contracts/3_Coda.sol\":190:191 a */\n dup4\n /* \"contracts/3_Coda.sol\":190:195 a + b */\n add\n /* \"contracts/3_Coda.sol\":186:195 c = a + b */\n swap1\n pop\n /* \"contracts/3_Coda.sol\":218:219 a */\n dup3\n /* \"contracts/3_Coda.sol\":213:214 c */\n dup2\n /* \"contracts/3_Coda.sol\":213:219 c >= a */\n lt\n iszero\n /* \"contracts/3_Coda.sol\":205:220 require(c >= a) */\n iszero\n iszero\n tag_28\n jumpi\n 0x0\n dup1\n revert\n tag_28:\n /* \"contracts/3_Coda.sol\":114:227 function safeAdd(uint a, uint b) public pure returns (uint c) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa165627a7a723058207be7d2f87ab0c0bee1b6d855c9e13b0472807430d6080b77450f811df49108430029\n}\n",
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061024c806100206000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063a293d1e814610067578063b5931f7c146100b2578063d05c78da146100fd578063e6cb901314610148575b600080fd5b34801561007357600080fd5b5061009c6004803603810190808035906020019092919080359060200190929190505050610193565b6040518082815260200191505060405180910390f35b3480156100be57600080fd5b506100e760048036038101908080359060200190929190803590602001909291905050506101af565b6040518082815260200191505060405180910390f35b34801561010957600080fd5b5061013260048036038101908080359060200190929190803590602001909291905050506101d3565b6040518082815260200191505060405180910390f35b34801561015457600080fd5b5061017d6004803603810190808035906020019092919080359060200190929190505050610204565b6040518082815260200191505060405180910390f35b60008282111515156101a457600080fd5b818303905092915050565b600080821115156101bf57600080fd5b81838115156101ca57fe5b04905092915050565b6000818302905060008314806101f357508183828115156101f057fe5b04145b15156101fe57600080fd5b92915050565b6000818301905082811015151561021a57600080fd5b929150505600a165627a7a723058207be7d2f87ab0c0bee1b6d855c9e13b0472807430d6080b77450f811df49108430029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24C DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0xA293D1E8 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0xB5931F7C EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0xD05C78DA EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0xE6CB9013 EQ PUSH2 0x148 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x193 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x109 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x204 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO ISZERO ISZERO PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT ISZERO ISZERO PUSH2 0x1BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP2 ISZERO ISZERO PUSH2 0x1CA JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 MUL SWAP1 POP PUSH1 0x0 DUP4 EQ DUP1 PUSH2 0x1F3 JUMPI POP DUP2 DUP4 DUP3 DUP2 ISZERO ISZERO PUSH2 0x1F0 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST ISZERO ISZERO PUSH2 0x1FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP3 DUP2 LT ISZERO ISZERO ISZERO PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH28 0xE7D2F87AB0C0BEE1B6D855C9E13B0472807430D6080B77450F811DF4 SWAP2 ADDMOD NUMBER STOP 0x29 ",
"sourceMap": "88:514:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;88:514:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063a293d1e814610067578063b5931f7c146100b2578063d05c78da146100fd578063e6cb901314610148575b600080fd5b34801561007357600080fd5b5061009c6004803603810190808035906020019092919080359060200190929190505050610193565b6040518082815260200191505060405180910390f35b3480156100be57600080fd5b506100e760048036038101908080359060200190929190803590602001909291905050506101af565b6040518082815260200191505060405180910390f35b34801561010957600080fd5b5061013260048036038101908080359060200190929190803590602001909291905050506101d3565b6040518082815260200191505060405180910390f35b34801561015457600080fd5b5061017d6004803603810190808035906020019092919080359060200190929190505050610204565b6040518082815260200191505060405180910390f35b60008282111515156101a457600080fd5b818303905092915050565b600080821115156101bf57600080fd5b81838115156101ca57fe5b04905092915050565b6000818302905060008314806101f357508183828115156101f057fe5b04145b15156101fe57600080fd5b92915050565b6000818301905082811015151561021a57600080fd5b929150505600a165627a7a723058207be7d2f87ab0c0bee1b6d855c9e13b0472807430d6080b77450f811df49108430029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0xA293D1E8 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0xB5931F7C EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0xD05C78DA EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0xE6CB9013 EQ PUSH2 0x148 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x193 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x109 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x204 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO ISZERO ISZERO PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT ISZERO ISZERO PUSH2 0x1BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP2 ISZERO ISZERO PUSH2 0x1CA JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 MUL SWAP1 POP PUSH1 0x0 DUP4 EQ DUP1 PUSH2 0x1F3 JUMPI POP DUP2 DUP4 DUP3 DUP2 ISZERO ISZERO PUSH2 0x1F0 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST ISZERO ISZERO PUSH2 0x1FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP3 DUP2 LT ISZERO ISZERO ISZERO PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH28 0xE7D2F87AB0C0BEE1B6D855C9E13B0472807430D6080B77450F811DF4 SWAP2 ADDMOD NUMBER STOP 0x29 ",
"sourceMap": "88:514:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;234:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;234:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;354:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;354:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;114:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;114:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;234;288:6;319:1;314;:6;;306:15;;;;;;;;339:1;335;:5;331:9;;234:113;;;;:::o;488:112::-;542:6;572:1;568;:5;560:14;;;;;;;;592:1;588;:5;;;;;;;;584:9;;488:112;;;;:::o;354:127::-;408:6;434:1;430;:5;426:9;;458:1;453;:6;:20;;;;472:1;467;463;:5;;;;;;;;:10;453:20;445:29;;;;;;;;354:127;;;;:::o;114:113::-;168:6;194:1;190;:5;186:9;;218:1;213;:6;;205:15;;;;;;;;114:113;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "117600",
"executionCost": "165",
"totalCost": "117765"
},
"external": {
"safeAdd(uint256,uint256)": "396",
"safeDiv(uint256,uint256)": "374",
"safeMul(uint256,uint256)": "432",
"safeSub(uint256,uint256)": "330"
}
},
"legacyAssembly": {
".code": [
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "80"
},
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "40"
},
{
"begin": 88,
"end": 602,
"name": "MSTORE"
},
{
"begin": 88,
"end": 602,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 88,
"end": 602,
"name": "POP"
},
{
"begin": 88,
"end": 602,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 88,
"end": 602,
"name": "DUP1"
},
{
"begin": 88,
"end": 602,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "0"
},
{
"begin": 88,
"end": 602,
"name": "CODECOPY"
},
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "0"
},
{
"begin": 88,
"end": 602,
"name": "RETURN"
}
],
".data": {
"0": {
".auxdata": "a165627a7a723058207be7d2f87ab0c0bee1b6d855c9e13b0472807430d6080b77450f811df49108430029",
".code": [
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "80"
},
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "40"
},
{
"begin": 88,
"end": 602,
"name": "MSTORE"
},
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "4"
},
{
"begin": 88,
"end": 602,
"name": "CALLDATASIZE"
},
{
"begin": 88,
"end": 602,
"name": "LT"
},
{
"begin": 88,
"end": 602,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 88,
"end": 602,
"name": "JUMPI"
},
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "0"
},
{
"begin": 88,
"end": 602,
"name": "CALLDATALOAD"
},
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "100000000000000000000000000000000000000000000000000000000"
},
{
"begin": 88,
"end": 602,
"name": "SWAP1"
},
{
"begin": 88,
"end": 602,
"name": "DIV"
},
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "FFFFFFFF"
},
{
"begin": 88,
"end": 602,
"name": "AND"
},
{
"begin": 88,
"end": 602,
"name": "DUP1"
},
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "A293D1E8"
},
{
"begin": 88,
"end": 602,
"name": "EQ"
},
{
"begin": 88,
"end": 602,
"name": "PUSH [tag]",
"value": "2"
},
{
"begin": 88,
"end": 602,
"name": "JUMPI"
},
{
"begin": 88,
"end": 602,
"name": "DUP1"
},
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "B5931F7C"
},
{
"begin": 88,
"end": 602,
"name": "EQ"
},
{
"begin": 88,
"end": 602,
"name": "PUSH [tag]",
"value": "3"
},
{
"begin": 88,
"end": 602,
"name": "JUMPI"
},
{
"begin": 88,
"end": 602,
"name": "DUP1"
},
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "D05C78DA"
},
{
"begin": 88,
"end": 602,
"name": "EQ"
},
{
"begin": 88,
"end": 602,
"name": "PUSH [tag]",
"value": "4"
},
{
"begin": 88,
"end": 602,
"name": "JUMPI"
},
{
"begin": 88,
"end": 602,
"name": "DUP1"
},
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "E6CB9013"
},
{
"begin": 88,
"end": 602,
"name": "EQ"
},
{
"begin": 88,
"end": 602,
"name": "PUSH [tag]",
"value": "5"
},
{
"begin": 88,
"end": 602,
"name": "JUMPI"
},
{
"begin": 88,
"end": 602,
"name": "tag",
"value": "1"
},
{
"begin": 88,
"end": 602,
"name": "JUMPDEST"
},
{
"begin": 88,
"end": 602,
"name": "PUSH",
"value": "0"
},
{
"begin": 88,
"end": 602,
"name": "DUP1"
},
{
"begin": 88,
"end": 602,
"name": "REVERT"
},
{
"begin": 234,
"end": 347,
"name": "tag",
"value": "2"
},
{
"begin": 234,
"end": 347,
"name": "JUMPDEST"
},
{
"begin": 234,
"end": 347,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "6"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "6"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "PUSH [tag]",
"value": "7"
},
{
"begin": 234,
"end": 347,
"name": "PUSH",
"value": "4"
},
{
"begin": 234,
"end": 347,
"name": "DUP1"
},
{
"begin": 234,
"end": 347,
"name": "CALLDATASIZE"
},
{
"begin": 234,
"end": 347,
"name": "SUB"
},
{
"begin": 234,
"end": 347,
"name": "DUP2"
},
{
"begin": 234,
"end": 347,
"name": "ADD"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "DUP1"
},
{
"begin": 234,
"end": 347,
"name": "DUP1"
},
{
"begin": 234,
"end": 347,
"name": "CALLDATALOAD"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "PUSH",
"value": "20"
},
{
"begin": 234,
"end": 347,
"name": "ADD"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "SWAP3"
},
{
"begin": 234,
"end": 347,
"name": "SWAP2"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "DUP1"
},
{
"begin": 234,
"end": 347,
"name": "CALLDATALOAD"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "PUSH",
"value": "20"
},
{
"begin": 234,
"end": 347,
"name": "ADD"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "SWAP3"
},
{
"begin": 234,
"end": 347,
"name": "SWAP2"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "PUSH [tag]",
"value": "8"
},
{
"begin": 234,
"end": 347,
"name": "JUMP"
},
{
"begin": 234,
"end": 347,
"name": "tag",
"value": "7"
},
{
"begin": 234,
"end": 347,
"name": "JUMPDEST"
},
{
"begin": 234,
"end": 347,
"name": "PUSH",
"value": "40"
},
{
"begin": 234,
"end": 347,
"name": "MLOAD"
},
{
"begin": 234,
"end": 347,
"name": "DUP1"
},
{
"begin": 234,
"end": 347,
"name": "DUP3"
},
{
"begin": 234,
"end": 347,
"name": "DUP2"
},
{
"begin": 234,
"end": 347,
"name": "MSTORE"
},
{
"begin": 234,
"end": 347,
"name": "PUSH",
"value": "20"
},
{
"begin": 234,
"end": 347,
"name": "ADD"
},
{
"begin": 234,
"end": 347,
"name": "SWAP2"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "PUSH",
"value": "40"
},
{
"begin": 234,
"end": 347,
"name": "MLOAD"
},
{
"begin": 234,
"end": 347,
"name": "DUP1"
},
{
"begin": 234,
"end": 347,
"name": "SWAP2"
},
{
"begin": 234,
"end": 347,
"name": "SUB"
},
{
"begin": 234,
"end": 347,
"name": "SWAP1"
},
{
"begin": 234,
"end": 347,
"name": "RETURN"
},
{
"begin": 488,
"end": 600,
"name": "tag",
"value": "3"
},
{
"begin": 488,
"end": 600,
"name": "JUMPDEST"
},
{
"begin": 488,
"end": 600,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "9"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "9"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "PUSH [tag]",
"value": "10"
},
{
"begin": 488,
"end": 600,
"name": "PUSH",
"value": "4"
},
{
"begin": 488,
"end": 600,
"name": "DUP1"
},
{
"begin": 488,
"end": 600,
"name": "CALLDATASIZE"
},
{
"begin": 488,
"end": 600,
"name": "SUB"
},
{
"begin": 488,
"end": 600,
"name": "DUP2"
},
{
"begin": 488,
"end": 600,
"name": "ADD"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "DUP1"
},
{
"begin": 488,
"end": 600,
"name": "DUP1"
},
{
"begin": 488,
"end": 600,
"name": "CALLDATALOAD"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "PUSH",
"value": "20"
},
{
"begin": 488,
"end": 600,
"name": "ADD"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "SWAP3"
},
{
"begin": 488,
"end": 600,
"name": "SWAP2"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "DUP1"
},
{
"begin": 488,
"end": 600,
"name": "CALLDATALOAD"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "PUSH",
"value": "20"
},
{
"begin": 488,
"end": 600,
"name": "ADD"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "SWAP3"
},
{
"begin": 488,
"end": 600,
"name": "SWAP2"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "PUSH [tag]",
"value": "11"
},
{
"begin": 488,
"end": 600,
"name": "JUMP"
},
{
"begin": 488,
"end": 600,
"name": "tag",
"value": "10"
},
{
"begin": 488,
"end": 600,
"name": "JUMPDEST"
},
{
"begin": 488,
"end": 600,
"name": "PUSH",
"value": "40"
},
{
"begin": 488,
"end": 600,
"name": "MLOAD"
},
{
"begin": 488,
"end": 600,
"name": "DUP1"
},
{
"begin": 488,
"end": 600,
"name": "DUP3"
},
{
"begin": 488,
"end": 600,
"name": "DUP2"
},
{
"begin": 488,
"end": 600,
"name": "MSTORE"
},
{
"begin": 488,
"end": 600,
"name": "PUSH",
"value": "20"
},
{
"begin": 488,
"end": 600,
"name": "ADD"
},
{
"begin": 488,
"end": 600,
"name": "SWAP2"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "PUSH",
"value": "40"
},
{
"begin": 488,
"end": 600,
"name": "MLOAD"
},
{
"begin": 488,
"end": 600,
"name": "DUP1"
},
{
"begin": 488,
"end": 600,
"name": "SWAP2"
},
{
"begin": 488,
"end": 600,
"name": "SUB"
},
{
"begin": 488,
"end": 600,
"name": "SWAP1"
},
{
"begin": 488,
"end": 600,
"name": "RETURN"
},
{
"begin": 354,
"end": 481,
"name": "tag",
"value": "4"
},
{
"begin": 354,
"end": 481,
"name": "JUMPDEST"
},
{
"begin": 354,
"end": 481,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "12"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "12"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "PUSH [tag]",
"value": "13"
},
{
"begin": 354,
"end": 481,
"name": "PUSH",
"value": "4"
},
{
"begin": 354,
"end": 481,
"name": "DUP1"
},
{
"begin": 354,
"end": 481,
"name": "CALLDATASIZE"
},
{
"begin": 354,
"end": 481,
"name": "SUB"
},
{
"begin": 354,
"end": 481,
"name": "DUP2"
},
{
"begin": 354,
"end": 481,
"name": "ADD"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "DUP1"
},
{
"begin": 354,
"end": 481,
"name": "DUP1"
},
{
"begin": 354,
"end": 481,
"name": "CALLDATALOAD"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "PUSH",
"value": "20"
},
{
"begin": 354,
"end": 481,
"name": "ADD"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "SWAP3"
},
{
"begin": 354,
"end": 481,
"name": "SWAP2"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "DUP1"
},
{
"begin": 354,
"end": 481,
"name": "CALLDATALOAD"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "PUSH",
"value": "20"
},
{
"begin": 354,
"end": 481,
"name": "ADD"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "SWAP3"
},
{
"begin": 354,
"end": 481,
"name": "SWAP2"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "PUSH [tag]",
"value": "14"
},
{
"begin": 354,
"end": 481,
"name": "JUMP"
},
{
"begin": 354,
"end": 481,
"name": "tag",
"value": "13"
},
{
"begin": 354,
"end": 481,
"name": "JUMPDEST"
},
{
"begin": 354,
"end": 481,
"name": "PUSH",
"value": "40"
},
{
"begin": 354,
"end": 481,
"name": "MLOAD"
},
{
"begin": 354,
"end": 481,
"name": "DUP1"
},
{
"begin": 354,
"end": 481,
"name": "DUP3"
},
{
"begin": 354,
"end": 481,
"name": "DUP2"
},
{
"begin": 354,
"end": 481,
"name": "MSTORE"
},
{
"begin": 354,
"end": 481,
"name": "PUSH",
"value": "20"
},
{
"begin": 354,
"end": 481,
"name": "ADD"
},
{
"begin": 354,
"end": 481,
"name": "SWAP2"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "PUSH",
"value": "40"
},
{
"begin": 354,
"end": 481,
"name": "MLOAD"
},
{
"begin": 354,
"end": 481,
"name": "DUP1"
},
{
"begin": 354,
"end": 481,
"name": "SWAP2"
},
{
"begin": 354,
"end": 481,
"name": "SUB"
},
{
"begin": 354,
"end": 481,
"name": "SWAP1"
},
{
"begin": 354,
"end": 481,
"name": "RETURN"
},
{
"begin": 114,
"end": 227,
"name": "tag",
"value": "5"
},
{
"begin": 114,
"end": 227,
"name": "JUMPDEST"
},
{
"begin": 114,
"end": 227,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "15"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "15"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "PUSH [tag]",
"value": "16"
},
{
"begin": 114,
"end": 227,
"name": "PUSH",
"value": "4"
},
{
"begin": 114,
"end": 227,
"name": "DUP1"
},
{
"begin": 114,
"end": 227,
"name": "CALLDATASIZE"
},
{
"begin": 114,
"end": 227,
"name": "SUB"
},
{
"begin": 114,
"end": 227,
"name": "DUP2"
},
{
"begin": 114,
"end": 227,
"name": "ADD"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "DUP1"
},
{
"begin": 114,
"end": 227,
"name": "DUP1"
},
{
"begin": 114,
"end": 227,
"name": "CALLDATALOAD"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "PUSH",
"value": "20"
},
{
"begin": 114,
"end": 227,
"name": "ADD"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "SWAP3"
},
{
"begin": 114,
"end": 227,
"name": "SWAP2"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "DUP1"
},
{
"begin": 114,
"end": 227,
"name": "CALLDATALOAD"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "PUSH",
"value": "20"
},
{
"begin": 114,
"end": 227,
"name": "ADD"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "SWAP3"
},
{
"begin": 114,
"end": 227,
"name": "SWAP2"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "PUSH [tag]",
"value": "17"
},
{
"begin": 114,
"end": 227,
"name": "JUMP"
},
{
"begin": 114,
"end": 227,
"name": "tag",
"value": "16"
},
{
"begin": 114,
"end": 227,
"name": "JUMPDEST"
},
{
"begin": 114,
"end": 227,
"name": "PUSH",
"value": "40"
},
{
"begin": 114,
"end": 227,
"name": "MLOAD"
},
{
"begin": 114,
"end": 227,
"name": "DUP1"
},
{
"begin": 114,
"end": 227,
"name": "DUP3"
},
{
"begin": 114,
"end": 227,
"name": "DUP2"
},
{
"begin": 114,
"end": 227,
"name": "MSTORE"
},
{
"begin": 114,
"end": 227,
"name": "PUSH",
"value": "20"
},
{
"begin": 114,
"end": 227,
"name": "ADD"
},
{
"begin": 114,
"end": 227,
"name": "SWAP2"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "PUSH",
"value": "40"
},
{
"begin": 114,
"end": 227,
"name": "MLOAD"
},
{
"begin": 114,
"end": 227,
"name": "DUP1"
},
{
"begin": 114,
"end": 227,
"name": "SWAP2"
},
{
"begin": 114,
"end": 227,
"name": "SUB"
},
{
"begin": 114,
"end": 227,
"name": "SWAP1"
},
{
"begin": 114,
"end": 227,
"name": "RETURN"
},
{
"begin": 234,
"end": 347,
"name": "tag",
"value": "8"
},
{
"begin": 234,
"end": 347,
"name": "JUMPDEST"
},
{
"begin": 288,
"end": 294,
"name": "PUSH",
"value": "0"
},
{
"begin": 319,
"end": 320,
"name": "DUP3"
},
{
"begin": 314,
"end": 315,
"name": "DUP3"
},
{
"begin": 314,
"end": 320,
"name": "GT"
},
{
"begin": 314,
"end": 320,
"name": "ISZERO"
},
{
"begin": 306,
"end": 321,
"name": "ISZERO"
},
{
"begin": 306,
"end": 321,
"name": "ISZERO"
},
{
"begin": 306,
"end": 321,
"name": "PUSH [tag]",
"value": "19"
},
{
"begin": 306,
"end": 321,
"name": "JUMPI"
},
{
"begin": 306,
"end": 321,
"name": "PUSH",
"value": "0"
},
{
"begin": 306,
"end": 321,
"name": "DUP1"
},
{
"begin": 306,
"end": 321,
"name": "REVERT"
},
{
"begin": 306,
"end": 321,
"name": "tag",
"value": "19"
},
{
"begin": 306,
"end": 321,
"name": "JUMPDEST"
},
{
"begin": 339,
"end": 340,
"name": "DUP2"
},
{
"begin": 335,
"end": 336,
"name": "DUP4"
},
{
"begin": 335,
"end": 340,
"name": "SUB"
},
{
"begin": 331,
"end": 340,
"name": "SWAP1"
},
{
"begin": 331,
"end": 340,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "SWAP3"
},
{
"begin": 234,
"end": 347,
"name": "SWAP2"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "POP"
},
{
"begin": 234,
"end": 347,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 488,
"end": 600,
"name": "tag",
"value": "11"
},
{
"begin": 488,
"end": 600,
"name": "JUMPDEST"
},
{
"begin": 542,
"end": 548,
"name": "PUSH",
"value": "0"
},
{
"begin": 572,
"end": 573,
"name": "DUP1"
},
{
"begin": 568,
"end": 569,
"name": "DUP3"
},
{
"begin": 568,
"end": 573,
"name": "GT"
},
{
"begin": 560,
"end": 574,
"name": "ISZERO"
},
{
"begin": 560,
"end": 574,
"name": "ISZERO"
},
{
"begin": 560,
"end": 574,
"name": "PUSH [tag]",
"value": "21"
},
{
"begin": 560,
"end": 574,
"name": "JUMPI"
},
{
"begin": 560,
"end": 574,
"name": "PUSH",
"value": "0"
},
{
"begin": 560,
"end": 574,
"name": "DUP1"
},
{
"begin": 560,
"end": 574,
"name": "REVERT"
},
{
"begin": 560,
"end": 574,
"name": "tag",
"value": "21"
},
{
"begin": 560,
"end": 574,
"name": "JUMPDEST"
},
{
"begin": 592,
"end": 593,
"name": "DUP2"
},
{
"begin": 588,
"end": 589,
"name": "DUP4"
},
{
"begin": 588,
"end": 593,
"name": "DUP2"
},
{
"begin": 588,
"end": 593,
"name": "ISZERO"
},
{
"begin": 588,
"end": 593,
"name": "ISZERO"
},
{
"begin": 588,
"end": 593,
"name": "PUSH [tag]",
"value": "22"
},
{
"begin": 588,
"end": 593,
"name": "JUMPI"
},
{
"begin": 588,
"end": 593,
"name": "INVALID"
},
{
"begin": 588,
"end": 593,
"name": "tag",
"value": "22"
},
{
"begin": 588,
"end": 593,
"name": "JUMPDEST"
},
{
"begin": 588,
"end": 593,
"name": "DIV"
},
{
"begin": 584,
"end": 593,
"name": "SWAP1"
},
{
"begin": 584,
"end": 593,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "SWAP3"
},
{
"begin": 488,
"end": 600,
"name": "SWAP2"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "POP"
},
{
"begin": 488,
"end": 600,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 354,
"end": 481,
"name": "tag",
"value": "14"
},
{
"begin": 354,
"end": 481,
"name": "JUMPDEST"
},
{
"begin": 408,
"end": 414,
"name": "PUSH",
"value": "0"
},
{
"begin": 434,
"end": 435,
"name": "DUP2"
},
{
"begin": 430,
"end": 431,
"name": "DUP4"
},
{
"begin": 430,
"end": 435,
"name": "MUL"
},
{
"begin": 426,
"end": 435,
"name": "SWAP1"
},
{
"begin": 426,
"end": 435,
"name": "POP"
},
{
"begin": 458,
"end": 459,
"name": "PUSH",
"value": "0"
},
{
"begin": 453,
"end": 454,
"name": "DUP4"
},
{
"begin": 453,
"end": 459,
"name": "EQ"
},
{
"begin": 453,
"end": 473,
"name": "DUP1"
},
{
"begin": 453,
"end": 473,
"name": "PUSH [tag]",
"value": "24"
},
{
"begin": 453,
"end": 473,
"name": "JUMPI"
},
{
"begin": 453,
"end": 473,
"name": "POP"
},
{
"begin": 472,
"end": 473,
"name": "DUP2"
},
{
"begin": 467,
"end": 468,
"name": "DUP4"
},
{
"begin": 463,
"end": 464,
"name": "DUP3"
},
{
"begin": 463,
"end": 468,
"name": "DUP2"
},
{
"begin": 463,
"end": 468,
"name": "ISZERO"
},
{
"begin": 463,
"end": 468,
"name": "ISZERO"
},
{
"begin": 463,
"end": 468,
"name": "PUSH [tag]",
"value": "25"
},
{
"begin": 463,
"end": 468,
"name": "JUMPI"
},
{
"begin": 463,
"end": 468,
"name": "INVALID"
},
{
"begin": 463,
"end": 468,
"name": "tag",
"value": "25"
},
{
"begin": 463,
"end": 468,
"name": "JUMPDEST"
},
{
"begin": 463,
"end": 468,
"name": "DIV"
},
{
"begin": 463,
"end": 473,
"name": "EQ"
},
{
"begin": 453,
"end": 473,
"name": "tag",
"value": "24"
},
{
"begin": 453,
"end": 473,
"name": "JUMPDEST"
},
{
"begin": 445,
"end": 474,
"name": "ISZERO"
},
{
"begin": 445,
"end": 474,
"name": "ISZERO"
},
{
"begin": 445,
"end": 474,
"name": "PUSH [tag]",
"value": "26"
},
{
"begin": 445,
"end": 474,
"name": "JUMPI"
},
{
"begin": 445,
"end": 474,
"name": "PUSH",
"value": "0"
},
{
"begin": 445,
"end": 474,
"name": "DUP1"
},
{
"begin": 445,
"end": 474,
"name": "REVERT"
},
{
"begin": 445,
"end": 474,
"name": "tag",
"value": "26"
},
{
"begin": 445,
"end": 474,
"name": "JUMPDEST"
},
{
"begin": 354,
"end": 481,
"name": "SWAP3"
},
{
"begin": 354,
"end": 481,
"name": "SWAP2"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "POP"
},
{
"begin": 354,
"end": 481,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 114,
"end": 227,
"name": "tag",
"value": "17"
},
{
"begin": 114,
"end": 227,
"name": "JUMPDEST"
},
{
"begin": 168,
"end": 174,
"name": "PUSH",
"value": "0"
},
{
"begin": 194,
"end": 195,
"name": "DUP2"
},
{
"begin": 190,
"end": 191,
"name": "DUP4"
},
{
"begin": 190,
"end": 195,
"name": "ADD"
},
{
"begin": 186,
"end": 195,
"name": "SWAP1"
},
{
"begin": 186,
"end": 195,
"name": "POP"
},
{
"begin": 218,
"end": 219,
"name": "DUP3"
},
{
"begin": 213,
"end": 214,
"name": "DUP2"
},
{
"begin": 213,
"end": 219,
"name": "LT"
},
{
"begin": 213,
"end": 219,
"name": "ISZERO"
},
{
"begin": 205,
"end": 220,
"name": "ISZERO"
},
{
"begin": 205,
"end": 220,
"name": "ISZERO"
},
{
"begin": 205,
"end": 220,
"name": "PUSH [tag]",
"value": "28"
},
{
"begin": 205,
"end": 220,
"name": "JUMPI"
},
{
"begin": 205,
"end": 220,
"name": "PUSH",
"value": "0"
},
{
"begin": 205,
"end": 220,
"name": "DUP1"
},
{
"begin": 205,
"end": 220,
"name": "REVERT"
},
{
"begin": 205,
"end": 220,
"name": "tag",
"value": "28"
},
{
"begin": 205,
"end": 220,
"name": "JUMPDEST"
},
{
"begin": 114,
"end": 227,
"name": "SWAP3"
},
{
"begin": 114,
"end": 227,
"name": "SWAP2"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "POP"
},
{
"begin": 114,
"end": 227,
"name": "JUMP",
"value": "[out]"
}
]
}
}
},
"methodIdentifiers": {
"safeAdd(uint256,uint256)": "e6cb9013",
"safeDiv(uint256,uint256)": "b5931f7c",
"safeMul(uint256,uint256)": "d05c78da",
"safeSub(uint256,uint256)": "a293d1e8"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.4.26+commit.4563c3fc\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"a\",\"type\":\"uint256\"},{\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"safeSub\",\"outputs\":[{\"name\":\"c\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"a\",\"type\":\"uint256\"},{\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"safeDiv\",\"outputs\":[{\"name\":\"c\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"a\",\"type\":\"uint256\"},{\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"safeMul\",\"outputs\":[{\"name\":\"c\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"a\",\"type\":\"uint256\"},{\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"safeAdd\",\"outputs\":[{\"name\":\"c\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/3_Coda.sol\":\"SafeMath\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/3_Coda.sol\":{\"keccak256\":\"0x672b2228053fe412ed3639d4831d08cac417d0ec6d10dfbab6f0f3310a95ac2c\",\"urls\":[\"bzzr://0d596e42d92c1e133ca12acdaa2a5d419aba47cc79961e61e08255e11157ed4b\"]}},\"version\":1}",
"userdoc": {
"methods": {}
}
}
}
},
"sources": {
"contracts/3_Coda.sol": {
"ast": {
"absolutePath": "contracts/3_Coda.sol",
"exportedSymbols": {
"ApproveAndCallFallBack": [
175
],
"CodaToken": [
452
],
"ERC20Interface": [
163
],
"SafeMath": [
96
]
},
"id": 453,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "37:24:0"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 96,
"linearizedBaseContracts": [
96
],
"name": "SafeMath",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 22,
"nodeType": "Block",
"src": "176:51:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 14,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 10,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "186:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 13,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 11,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "190:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"id": 12,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "194:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "190:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "186:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 15,
"nodeType": "ExpressionStatement",
"src": "186:9:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 19,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 17,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "213:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 18,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "218:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "213:6:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 16,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
470,
471
],
"referencedDeclaration": 470,
"src": "205:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 20,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "205:15:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 21,
"nodeType": "ExpressionStatement",
"src": "205:15:0"
}
]
},
"documentation": null,
"id": 23,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "safeAdd",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 6,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 23,
"src": "131:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "131:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 23,
"src": "139:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "139:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "130:16:0"
},
"payable": false,
"returnParameters": {
"id": 9,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8,
"name": "c",
"nodeType": "VariableDeclaration",
"scope": 23,
"src": "168:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "168:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "167:8:0"
},
"scope": 96,
"src": "114:113:0",
"stateMutability": "pure",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 44,
"nodeType": "Block",
"src": "296:51:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 35,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 33,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27,
"src": "314:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"id": 34,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "319:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "314:6:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 32,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
470,
471
],
"referencedDeclaration": 470,
"src": "306:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 36,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "306:15:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 37,
"nodeType": "ExpressionStatement",
"src": "306:15:0"
},
{
"expression": {
"argumentTypes": null,
"id": 42,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 38,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 30,
"src": "331:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 41,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 39,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "335:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"id": 40,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27,
"src": "339:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "335:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "331:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 43,
"nodeType": "ExpressionStatement",
"src": "331:9:0"
}
]
},
"documentation": null,
"id": 45,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "safeSub",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 28,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 25,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 45,
"src": "251:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 24,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "251:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 27,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 45,
"src": "259:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 26,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "259:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "250:16:0"
},
"payable": false,
"returnParameters": {
"id": 31,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 30,
"name": "c",
"nodeType": "VariableDeclaration",
"scope": 45,
"src": "288:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 29,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "288:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "287:8:0"
},
"scope": 96,
"src": "234:113:0",
"stateMutability": "pure",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 72,
"nodeType": "Block",
"src": "416:65:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 58,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 54,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52,
"src": "426:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 57,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 55,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "430:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"id": 56,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 49,
"src": "434:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "430:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "426:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 59,
"nodeType": "ExpressionStatement",
"src": "426:9:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 69,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 63,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 61,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "453:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 62,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "458:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "453:6:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "||",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 68,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 66,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 64,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52,
"src": "463:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"id": 65,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "467:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "463:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 67,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 49,
"src": "472:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "463:10:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "453:20:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 60,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
470,
471
],
"referencedDeclaration": 470,
"src": "445:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 70,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "445:29:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 71,
"nodeType": "ExpressionStatement",
"src": "445:29:0"
}
]
},
"documentation": null,
"id": 73,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "safeMul",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 50,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 47,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 73,
"src": "371:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 46,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "371:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 49,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 73,
"src": "379:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 48,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "379:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "370:16:0"
},
"payable": false,
"returnParameters": {
"id": 53,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 52,
"name": "c",
"nodeType": "VariableDeclaration",
"scope": 73,
"src": "408:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 51,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "408:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "407:8:0"
},
"scope": 96,
"src": "354:127:0",
"stateMutability": "pure",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 94,
"nodeType": "Block",
"src": "550:50:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 85,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 83,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 77,
"src": "568:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 84,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "572:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "568:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 82,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
470,
471
],
"referencedDeclaration": 470,
"src": "560:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 86,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "560:14:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 87,
"nodeType": "ExpressionStatement",
"src": "560:14:0"
},
{
"expression": {
"argumentTypes": null,
"id": 92,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 88,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 80,
"src": "584:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 91,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 89,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 75,
"src": "588:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"id": 90,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 77,
"src": "592:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "588:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "584:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 93,
"nodeType": "ExpressionStatement",
"src": "584:9:0"
}
]
},
"documentation": null,
"id": 95,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "safeDiv",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 78,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 75,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 95,
"src": "505:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 74,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "505:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 77,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 95,
"src": "513:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 76,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "513:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "504:16:0"
},
"payable": false,
"returnParameters": {
"id": 81,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 80,
"name": "c",
"nodeType": "VariableDeclaration",
"scope": 95,
"src": "542:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 79,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "542:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "541:8:0"
},
"scope": 96,
"src": "488:112:0",
"stateMutability": "pure",
"superFunction": null,
"visibility": "public"
}
],
"scope": 453,
"src": "88:514:0"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": false,
"id": 163,
"linearizedBaseContracts": [
163
],
"name": "ERC20Interface",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": null,
"id": 101,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "totalSupply",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 97,
"nodeType": "ParameterList",
"parameters": [],
"src": "691:2:0"
},
"payable": false,
"returnParameters": {
"id": 100,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 99,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 101,
"src": "719:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 98,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "719:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "718:6:0"
},
"scope": 163,
"src": "671:54:0",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 108,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "balanceOf",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 104,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 103,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 108,
"src": "749:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 102,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "749:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "748:20:0"
},
"payable": false,
"returnParameters": {
"id": 107,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 106,
"name": "balance",
"nodeType": "VariableDeclaration",
"scope": 108,
"src": "794:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 105,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "794:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "793:14:0"
},
"scope": 163,
"src": "730:78:0",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 117,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "allowance",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 113,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 110,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 117,
"src": "832:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 109,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "832:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 112,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 117,
"src": "852:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 111,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "852:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "831:37:0"
},
"payable": false,
"returnParameters": {
"id": 116,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 115,
"name": "remaining",
"nodeType": "VariableDeclaration",
"scope": 117,
"src": "894:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 114,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "894:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "893:16:0"
},
"scope": 163,
"src": "813:97:0",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 126,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "transfer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 122,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 119,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 126,
"src": "933:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 118,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "933:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 121,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 126,
"src": "945:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 120,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "945:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "932:25:0"
},
"payable": false,
"returnParameters": {
"id": 125,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 124,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 126,
"src": "974:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 123,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "974:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "973:14:0"
},
"scope": 163,
"src": "915:73:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 135,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "approve",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 131,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 128,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 135,
"src": "1010:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 127,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1010:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 130,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 135,
"src": "1027:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 129,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1027:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1009:30:0"
},
"payable": false,
"returnParameters": {
"id": 134,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 133,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 135,
"src": "1056:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 132,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1056:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1055:14:0"
},
"scope": 163,
"src": "993:77:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 146,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "transferFrom",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 142,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 137,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 146,
"src": "1097:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 136,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1097:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 139,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 146,
"src": "1111:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 138,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1111:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 141,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 146,
"src": "1123:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 140,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1123:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1096:39:0"
},
"payable": false,
"returnParameters": {
"id": 145,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 144,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 146,
"src": "1152:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 143,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1152:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1151:14:0"
},
"scope": 163,
"src": "1075:91:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
"id": 154,
"name": "Transfer",
"nodeType": "EventDefinition",
"parameters": {
"id": 153,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 148,
"indexed": true,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 154,
"src": "1188:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 147,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1188:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 150,
"indexed": true,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 154,
"src": "1210:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 149,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1210:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 152,
"indexed": false,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 154,
"src": "1230:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 151,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1230:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1187:55:0"
},
"src": "1173:70:0"
},
{
"anonymous": false,
"documentation": null,
"id": 162,
"name": "Approval",
"nodeType": "EventDefinition",
"parameters": {
"id": 161,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 156,
"indexed": true,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 162,
"src": "1263:26:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 155,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1263:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 158,
"indexed": true,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 162,
"src": "1291:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 157,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1291:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 160,
"indexed": false,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 162,
"src": "1316:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 159,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1316:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1262:66:0"
},
"src": "1248:81:0"
}
],
"scope": 453,
"src": "641:690:0"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": false,
"id": 175,
"linearizedBaseContracts": [
175
],
"name": "ApproveAndCallFallBack",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": null,
"id": 174,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "receiveApproval",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 172,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 165,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 174,
"src": "1470:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 164,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1470:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 167,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 174,
"src": "1484:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 166,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1484:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 169,
"name": "token",
"nodeType": "VariableDeclaration",
"scope": 174,
"src": "1500:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 168,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1500:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 171,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 174,
"src": "1515:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 170,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1515:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1469:57:0"
},
"payable": false,
"returnParameters": {
"id": 173,
"nodeType": "ParameterList",
"parameters": [],
"src": "1533:0:0"
},
"scope": 175,
"src": "1445:89:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 453,
"src": "1407:129:0"
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 176,
"name": "ERC20Interface",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 163,
"src": "1585:14:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC20Interface_$163",
"typeString": "contract ERC20Interface"
}
},
"id": 177,
"nodeType": "InheritanceSpecifier",
"src": "1585:14:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 178,
"name": "SafeMath",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 96,
"src": "1601:8:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SafeMath_$96",
"typeString": "contract SafeMath"
}
},
"id": 179,
"nodeType": "InheritanceSpecifier",
"src": "1601:8:0"
}
],
"contractDependencies": [
96,
163
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 452,
"linearizedBaseContracts": [
452,
96,
163
],
"name": "CodaToken",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 181,
"name": "symbol",
"nodeType": "VariableDeclaration",
"scope": 452,
"src": "1616:20:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 180,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1616:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 183,
"name": "name",
"nodeType": "VariableDeclaration",
"scope": 452,
"src": "1642:19:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 182,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1642:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 185,
"name": "decimals",
"nodeType": "VariableDeclaration",
"scope": 452,
"src": "1667:21:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 184,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "1667:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 187,
"name": "_totalSupply",
"nodeType": "VariableDeclaration",
"scope": 452,
"src": "1694:24:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 186,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1694:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 191,
"name": "balances",
"nodeType": "VariableDeclaration",
"scope": 452,
"src": "1726:33:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"typeName": {
"id": 190,
"keyType": {
"id": 188,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1734:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "1726:24:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 189,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1745:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 197,
"name": "allowed",
"nodeType": "VariableDeclaration",
"scope": 452,
"src": "1765:52:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
},
"typeName": {
"id": 196,
"keyType": {
"id": 192,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1773:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "1765:44:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
},
"valueType": {
"id": 195,
"keyType": {
"id": 193,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1792:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "1784:24:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 194,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1803:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 230,
"nodeType": "Block",
"src": "1846:288:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 202,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 200,
"name": "symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 181,
"src": "1856:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "434f4441",
"id": 201,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1865:6:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e1abdc5ab1d331f952c9c20bf47afe0916384216efa8a8679abc2d03b7923c54",
"typeString": "literal_string \"CODA\""
},
"value": "CODA"
},
"src": "1856:15:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 203,
"nodeType": "ExpressionStatement",
"src": "1856:15:0"
},
{
"expression": {
"argumentTypes": null,
"id": 206,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 204,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 183,
"src": "1881:4:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "434f444120546f6b656e",
"id": 205,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1888:12:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b3641fe4eaf053467732f25aa5b1381fe54b17a95236a65e92359b55f04822b8",
"typeString": "literal_string \"CODA Token\""
},
"value": "CODA Token"
},
"src": "1881:19:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 207,
"nodeType": "ExpressionStatement",
"src": "1881:19:0"
},
{
"expression": {
"argumentTypes": null,
"id": 210,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 208,
"name": "decimals",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 185,
"src": "1910:8:0",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "32",
"id": 209,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1921:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_2_by_1",
"typeString": "int_const 2"
},
"value": "2"
},
"src": "1910:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"id": 211,
"nodeType": "ExpressionStatement",
"src": "1910:12:0"
},
{
"expression": {
"argumentTypes": null,
"id": 214,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 212,
"name": "_totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 187,
"src": "1932:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "36303030303030303030",
"id": 213,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1947:10:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_6000000000_by_1",
"typeString": "int_const 6000000000"
},
"value": "6000000000"
},
"src": "1932:25:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 215,
"nodeType": "ExpressionStatement",
"src": "1932:25:0"
},
{
"expression": {
"argumentTypes": null,
"id": 220,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 216,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 191,
"src": "1967:8:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 218,
"indexExpression": {
"argumentTypes": null,
"hexValue": "307845364666383864634342343330323341444332323933363145663742434646324561416230443645",
"id": 217,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1976:42:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"value": "0xE6Ff88dcCB43023ADC229361Ef7BCFF2EaAb0D6E"
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1967:52:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 219,
"name": "_totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 187,
"src": "2022:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1967:67:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 221,
"nodeType": "ExpressionStatement",
"src": "1967:67:0"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 224,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2066:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 223,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2058:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 225,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2058:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"hexValue": "307845364666383864634342343330323341444332323933363145663742434646324561416230443645",
"id": 226,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2070:42:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"value": "0xE6Ff88dcCB43023ADC229361Ef7BCFF2EaAb0D6E"
},
{
"argumentTypes": null,
"id": 227,
"name": "_totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 187,
"src": "2114:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 222,
"name": "Transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 154,
"src": "2049:8:0",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 228,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2049:78:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 229,
"nodeType": "EmitStatement",
"src": "2044:83:0"
}
]
},
"documentation": null,
"id": 231,
"implemented": true,
"isConstructor": true,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 198,
"nodeType": "ParameterList",
"parameters": [],
"src": "1836:2:0"
},
"payable": false,
"returnParameters": {
"id": 199,
"nodeType": "ParameterList",
"parameters": [],
"src": "1846:0:0"
},
"scope": 452,
"src": "1825:309:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 244,
"nodeType": "Block",
"src": "2195:60:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 242,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 236,
"name": "_totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 187,
"src": "2212:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 237,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 191,
"src": "2228:8:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 241,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 239,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2245:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 238,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2237:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 240,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2237:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2228:20:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2212:36:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 235,
"id": 243,
"nodeType": "Return",
"src": "2205:43:0"
}
]
},
"documentation": null,
"id": 245,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "totalSupply",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 232,
"nodeType": "ParameterList",
"parameters": [],
"src": "2161:2:0"
},
"payable": false,
"returnParameters": {
"id": 235,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 234,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 245,
"src": "2189:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 233,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "2189:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2188:6:0"
},
"scope": 452,
"src": "2141:114:0",
"stateMutability": "view",
"superFunction": 101,
"visibility": "public"
},
{
"body": {
"id": 256,
"nodeType": "Block",
"src": "2340:44:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 252,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 191,
"src": "2357:8:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 254,
"indexExpression": {
"argumentTypes": null,
"id": 253,
"name": "tokenOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 247,
"src": "2366:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2357:20:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 251,
"id": 255,
"nodeType": "Return",
"src": "2350:27:0"
}
]
},
"documentation": null,
"id": 257,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "balanceOf",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 248,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 247,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 257,
"src": "2281:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 246,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2281:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2280:20:0"
},
"payable": false,
"returnParameters": {
"id": 251,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 250,
"name": "balance",
"nodeType": "VariableDeclaration",
"scope": 257,
"src": "2326:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 249,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "2326:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2325:14:0"
},
"scope": 452,
"src": "2262:122:0",
"stateMutability": "view",
"superFunction": 108,
"visibility": "public"
},
{
"body": {
"id": 299,
"nodeType": "Block",
"src": "2464:199:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 277,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 266,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 191,
"src": "2474:8:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 269,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 267,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 467,
"src": "2483:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 268,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2483:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2474:20:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 271,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 191,
"src": "2505:8:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 274,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 272,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 467,
"src": "2514:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 273,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2514:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2505:20:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 275,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 261,
"src": "2527:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 270,
"name": "safeSub",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45,
"src": "2497:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 276,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2497:37:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2474:60:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 278,
"nodeType": "ExpressionStatement",
"src": "2474:60:0"
},
{
"expression": {
"argumentTypes": null,
"id": 288,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 279,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 191,
"src": "2544:8:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 281,
"indexExpression": {
"argumentTypes": null,
"id": 280,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 259,
"src": "2553:2:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2544:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 283,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 191,
"src": "2567:8:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 285,
"indexExpression": {
"argumentTypes": null,
"id": 284,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 259,
"src": "2576:2:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2567:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 286,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 261,
"src": "2581:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 282,
"name": "safeAdd",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 23,
"src": "2559:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 287,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2559:29:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2544:44:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 289,
"nodeType": "ExpressionStatement",
"src": "2544:44:0"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 291,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 467,
"src": "2612:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 292,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2612:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 293,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 259,
"src": "2624:2:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 294,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 261,
"src": "2628:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 290,
"name": "Transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 154,
"src": "2603:8:0",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 295,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2603:32:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 296,
"nodeType": "EmitStatement",
"src": "2598:37:0"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 297,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2652:4:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 265,
"id": 298,
"nodeType": "Return",
"src": "2645:11:0"
}
]
},
"documentation": null,
"id": 300,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "transfer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 262,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 259,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 300,
"src": "2409:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 258,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2409:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 261,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 300,
"src": "2421:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 260,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "2421:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2408:25:0"
},
"payable": false,
"returnParameters": {
"id": 265,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 264,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 300,
"src": "2450:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 263,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2450:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2449:14:0"
},
"scope": 452,
"src": "2391:272:0",
"stateMutability": "nonpayable",
"superFunction": 126,
"visibility": "public"
},
{
"body": {
"id": 327,
"nodeType": "Block",
"src": "2747:127:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 316,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 309,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 197,
"src": "2757:7:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 313,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 310,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 467,
"src": "2765:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 311,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2765:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2757:19:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 314,
"indexExpression": {
"argumentTypes": null,
"id": 312,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 302,
"src": "2777:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2757:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 315,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 304,
"src": "2788:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2757:37:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 317,
"nodeType": "ExpressionStatement",
"src": "2757:37:0"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 319,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 467,
"src": "2818:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 320,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2818:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 321,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 302,
"src": "2830:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 322,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 304,
"src": "2839:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 318,
"name": "Approval",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 162,
"src": "2809:8:0",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 323,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2809:37:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 324,
"nodeType": "EmitStatement",
"src": "2804:42:0"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 325,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2863:4:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 308,
"id": 326,
"nodeType": "Return",
"src": "2856:11:0"
}
]
},
"documentation": null,
"id": 328,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "approve",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 305,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 302,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 328,
"src": "2687:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 301,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2687:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 304,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 328,
"src": "2704:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 303,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "2704:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2686:30:0"
},
"payable": false,
"returnParameters": {
"id": 308,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 307,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 328,
"src": "2733:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 306,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2733:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2732:14:0"
},
"scope": 452,
"src": "2670:204:0",
"stateMutability": "nonpayable",
"superFunction": 135,
"visibility": "public"
},
{
"body": {
"id": 386,
"nodeType": "Block",
"src": "2972:261:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 348,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 339,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 191,
"src": "2982:8:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 341,
"indexExpression": {
"argumentTypes": null,
"id": 340,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 330,
"src": "2991:4:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2982:14:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 343,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 191,
"src": "3007:8:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 345,
"indexExpression": {
"argumentTypes": null,
"id": 344,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 330,
"src": "3016:4:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3007:14:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 346,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 334,
"src": "3023:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 342,
"name": "safeSub",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45,
"src": "2999:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 347,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2999:31:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2982:48:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 349,
"nodeType": "ExpressionStatement",
"src": "2982:48:0"
},
{
"expression": {
"argumentTypes": null,
"id": 365,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 350,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 197,
"src": "3040:7:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 354,
"indexExpression": {
"argumentTypes": null,
"id": 351,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 330,
"src": "3048:4:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3040:13:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 355,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 352,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 467,
"src": "3054:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 353,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3054:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3040:25:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 357,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 197,
"src": "3076:7:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 359,
"indexExpression": {
"argumentTypes": null,
"id": 358,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 330,
"src": "3084:4:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3076:13:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 362,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 360,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 467,
"src": "3090:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 361,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3090:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3076:25:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 363,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 334,
"src": "3103:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 356,
"name": "safeSub",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45,
"src": "3068:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 364,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3068:42:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3040:70:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 366,
"nodeType": "ExpressionStatement",
"src": "3040:70:0"
},
{
"expression": {
"argumentTypes": null,
"id": 376,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 367,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 191,
"src": "3120:8:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 369,
"indexExpression": {
"argumentTypes": null,
"id": 368,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 332,
"src": "3129:2:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3120:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 371,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 191,
"src": "3143:8:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 373,
"indexExpression": {
"argumentTypes": null,
"id": 372,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 332,
"src": "3152:2:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3143:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 374,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 334,
"src": "3157:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 370,
"name": "safeAdd",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 23,
"src": "3135:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 375,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3135:29:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3120:44:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 377,
"nodeType": "ExpressionStatement",
"src": "3120:44:0"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 379,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 330,
"src": "3188:4:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 380,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 332,
"src": "3194:2:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 381,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 334,
"src": "3198:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 378,
"name": "Transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 154,
"src": "3179:8:0",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 382,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3179:26:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 383,
"nodeType": "EmitStatement",
"src": "3174:31:0"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 384,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3222:4:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 338,
"id": 385,
"nodeType": "Return",
"src": "3215:11:0"
}
]
},
"documentation": null,
"id": 387,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "transferFrom",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 335,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 330,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 387,
"src": "2903:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 329,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2903:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 332,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 387,
"src": "2917:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 331,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2917:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 334,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 387,
"src": "2929:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 333,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "2929:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2902:39:0"
},
"payable": false,
"returnParameters": {
"id": 338,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 337,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 387,
"src": "2958:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 336,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2958:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2957:14:0"
},
"scope": 452,
"src": "2881:352:0",
"stateMutability": "nonpayable",
"superFunction": 146,
"visibility": "public"
},
{
"body": {
"id": 402,
"nodeType": "Block",
"src": "3337:52:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 396,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 197,
"src": "3354:7:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 398,
"indexExpression": {
"argumentTypes": null,
"id": 397,
"name": "tokenOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 389,
"src": "3362:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3354:19:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 400,
"indexExpression": {
"argumentTypes": null,
"id": 399,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 391,
"src": "3374:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3354:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 395,
"id": 401,
"nodeType": "Return",
"src": "3347:35:0"
}
]
},
"documentation": null,
"id": 403,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "allowance",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 392,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 389,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 403,
"src": "3259:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 388,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3259:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 391,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 403,
"src": "3279:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 390,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3279:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3258:37:0"
},
"payable": false,
"returnParameters": {
"id": 395,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 394,
"name": "remaining",
"nodeType": "VariableDeclaration",
"scope": 403,
"src": "3321:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 393,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3321:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3320:16:0"
},
"scope": 452,
"src": "3240:149:0",
"stateMutability": "view",
"superFunction": 117,
"visibility": "public"
},
{
"body": {
"id": 443,
"nodeType": "Block",
"src": "3492:216:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 421,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 414,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 197,
"src": "3502:7:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 418,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 415,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 467,
"src": "3510:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 416,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3510:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3502:19:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 419,
"indexExpression": {
"argumentTypes": null,
"id": 417,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 405,
"src": "3522:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3502:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 420,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 407,
"src": "3533:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3502:37:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 422,
"nodeType": "ExpressionStatement",
"src": "3502:37:0"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 424,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 467,
"src": "3563:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 425,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3563:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 426,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 405,
"src": "3575:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 427,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 407,
"src": "3584:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 423,
"name": "Approval",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 162,
"src": "3554:8:0",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 428,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3554:37:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 429,
"nodeType": "EmitStatement",
"src": "3549:42:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 434,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 467,
"src": "3649:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 435,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3649:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 436,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 407,
"src": "3661:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 437,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 486,
"src": "3669:4:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_CodaToken_$452",
"typeString": "contract CodaToken"
}
},
{
"argumentTypes": null,
"id": 438,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 409,
"src": "3675:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_contract$_CodaToken_$452",
"typeString": "contract CodaToken"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 431,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 405,
"src": "3624:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 430,
"name": "ApproveAndCallFallBack",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 175,
"src": "3601:22:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$175_$",
"typeString": "type(contract ApproveAndCallFallBack)"
}
},
"id": 432,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3601:31:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ApproveAndCallFallBack_$175",
"typeString": "contract ApproveAndCallFallBack"
}
},
"id": 433,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "receiveApproval",
"nodeType": "MemberAccess",
"referencedDeclaration": 174,
"src": "3601:47:0",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (address,uint256,address,bytes memory) external"
}
},
"id": 439,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3601:79:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 440,
"nodeType": "ExpressionStatement",
"src": "3601:79:0"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 441,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3697:4:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 413,
"id": 442,
"nodeType": "Return",
"src": "3690:11:0"
}
]
},
"documentation": null,
"id": 444,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "approveAndCall",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 410,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 405,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 444,
"src": "3420:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 404,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3420:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 407,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 444,
"src": "3437:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 406,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3437:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 409,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 444,
"src": "3450:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 408,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3450:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3419:42:0"
},
"payable": false,
"returnParameters": {
"id": 413,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 412,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 444,
"src": "3478:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 411,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3478:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3477:14:0"
},
"scope": 452,
"src": "3396:312:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 450,
"nodeType": "Block",
"src": "3742:25:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 447,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
472,
473
],
"referencedDeclaration": 472,
"src": "3752:6:0",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 448,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3752:8:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 449,
"nodeType": "ExpressionStatement",
"src": "3752:8:0"
}
]
},
"documentation": null,
"id": 451,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 445,
"nodeType": "ParameterList",
"parameters": [],
"src": "3724:2:0"
},
"payable": true,
"returnParameters": {
"id": 446,
"nodeType": "ParameterList",
"parameters": [],
"src": "3742:0:0"
},
"scope": 452,
"src": "3715:52:0",
"stateMutability": "payable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 453,
"src": "1563:2206:0"
}
],
"src": "37:3732:0"
},
"id": 0
}
}
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "60806040523480156200001157600080fd5b506040805190810160405280600481526020017f434f444100000000000000000000000000000000000000000000000000000000815250600090805190602001906200005f929190620001b1565b506040805190810160405280600a81526020017f434f444120546f6b656e0000000000000000000000000000000000000000000081525060019080519060200190620000ad929190620001b1565b5060028060006101000a81548160ff021916908360ff160217905550640165a0bc006003819055506003546004600073e6ff88dccb43023adc229361ef7bcff2eaab0d6e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555073e6ff88dccb43023adc229361ef7bcff2eaab0d6e73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040518082815260200191505060405180910390a362000260565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f457805160ff191683800117855562000225565b8280016001018555821562000225579182015b828111156200022457825182559160200191906001019062000207565b5b50905062000234919062000238565b5090565b6200025d91905b80821115620002595760008160009055506001016200023f565b5090565b90565b6110fe80620002706000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e0578063095ea7b31461017057806318160ddd146101d557806323b872dd14610200578063313ce567146102855780633eaaf86b146102b657806370a08231146102e157806395d89b4114610338578063a293d1e8146103c8578063a9059cbb14610413578063b5931f7c14610478578063cae9ca51146104c3578063d05c78da1461056e578063dd62ed3e146105b9578063e6cb901314610630575b600080fd5b3480156100ec57600080fd5b506100f561067b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013557808201518184015260208101905061011a565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610719565b604051808215151515815260200191505060405180910390f35b3480156101e157600080fd5b506101ea61080b565b6040518082815260200191505060405180910390f35b34801561020c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610856565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610ae6565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102c257600080fd5b506102cb610af9565b6040518082815260200191505060405180910390f35b3480156102ed57600080fd5b50610322600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aff565b6040518082815260200191505060405180910390f35b34801561034457600080fd5b5061034d610b48565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038d578082015181840152602081019050610372565b50505050905090810190601f1680156103ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d457600080fd5b506103fd6004803603810190808035906020019092919080359060200190929190505050610be6565b6040518082815260200191505060405180910390f35b34801561041f57600080fd5b5061045e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c02565b604051808215151515815260200191505060405180910390f35b34801561048457600080fd5b506104ad6004803603810190808035906020019092919080359060200190929190505050610d8b565b6040518082815260200191505060405180910390f35b3480156104cf57600080fd5b50610554600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610daf565b604051808215151515815260200191505060405180910390f35b34801561057a57600080fd5b506105a36004803603810190808035906020019092919080359060200190929190505050610ffe565b6040518082815260200191505060405180910390f35b3480156105c557600080fd5b5061061a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061102f565b6040518082815260200191505060405180910390f35b34801561063c57600080fd5b5061066560048036038101908080359060200190929190803590602001909291905050506110b6565b6040518082815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107115780601f106106e657610100808354040283529160200191610711565b820191906000526020600020905b8154815290600101906020018083116106f457829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600460008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460035403905090565b60006108a1600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610be6565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061096a600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610be6565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a33600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836110b6565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600260009054906101000a900460ff1681565b60035481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b505050505081565b6000828211151515610bf757600080fd5b818303905092915050565b6000610c4d600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610be6565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cd9600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836110b6565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008082111515610d9b57600080fd5b8183811515610da657fe5b04905092915050565b600082600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610f8c578082015181840152602081019050610f71565b50505050905090810190601f168015610fb95780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610fdb57600080fd5b505af1158015610fef573d6000803e3d6000fd5b50505050600190509392505050565b60008183029050600083148061101e575081838281151561101b57fe5b04145b151561102957600080fd5b92915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600081830190508281101515156110cc57600080fd5b929150505600a165627a7a723058204a49bcb9d0c4e2f4b4ef5afa1545e4b798def460027e5fbf34c82493cffdfa380029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x434F444100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x0 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x5F SWAP3 SWAP2 SWAP1 PUSH3 0x1B1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x434F444120546F6B656E00000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0xAD SWAP3 SWAP2 SWAP1 PUSH3 0x1B1 JUMP JUMPDEST POP PUSH1 0x2 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH5 0x165A0BC00 PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x3 SLOAD PUSH1 0x4 PUSH1 0x0 PUSH20 0xE6FF88DCCB43023ADC229361EF7BCFF2EAAB0D6E PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH20 0xE6FF88DCCB43023ADC229361EF7BCFF2EAAB0D6E PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH3 0x260 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1F4 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x225 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x225 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x224 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x207 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x234 SWAP2 SWAP1 PUSH3 0x238 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x25D SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x259 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x23F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x10FE DUP1 PUSH3 0x270 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDB JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x3EAAF86B EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0xA293D1E8 EQ PUSH2 0x3C8 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x413 JUMPI DUP1 PUSH4 0xB5931F7C EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0xCAE9CA51 EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0xD05C78DA EQ PUSH2 0x56E JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x5B9 JUMPI DUP1 PUSH4 0xE6CB9013 EQ PUSH2 0x630 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF5 PUSH2 0x67B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x135 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x11A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x162 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x719 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EA PUSH2 0x80B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x856 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29A PUSH2 0xAE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CB PUSH2 0xAF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x322 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xAFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH2 0xB48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x38D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x372 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3BA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xC02 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xD8B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x554 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP3 ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY DUP3 ADD SWAP2 POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xDAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xFFE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x61A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x102F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x665 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x10B6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x711 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6E6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x711 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 0x6F4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x5 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x3 SLOAD SUB SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A1 PUSH1 0x4 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x96A PUSH1 0x5 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xA33 PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0x10B6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xBDE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBB3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBDE 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 0xBC1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO ISZERO ISZERO PUSH2 0xBF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC4D PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xCD9 PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0x10B6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT ISZERO ISZERO PUSH2 0xD9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP2 ISZERO ISZERO PUSH2 0xDA6 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x5 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP6 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x8F4FFCB1 CALLER DUP6 ADDRESS DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF8C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF71 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xFB9 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFEF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 MUL SWAP1 POP PUSH1 0x0 DUP4 EQ DUP1 PUSH2 0x101E JUMPI POP DUP2 DUP4 DUP3 DUP2 ISZERO ISZERO PUSH2 0x101B JUMPI INVALID JUMPDEST DIV EQ JUMPDEST ISZERO ISZERO PUSH2 0x1029 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP3 DUP2 LT ISZERO ISZERO ISZERO PUSH2 0x10CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x4a 0x49 0xbc 0xb9 0xd0 0xc4 0xe2 DELEGATECALL 0xb4 0xef GAS STATICCALL ISZERO GASLIMIT 0xe4 0xb7 SWAP9 0xde DELEGATECALL PUSH1 0x2 PUSH31 0x5FBF34C82493CFFDFA38002900000000000000000000000000000000000000 ",
"sourceMap": "1563:2206:0:-;;;1825:309;8:9:-1;5:2;;;30:1;27;20:12;5:2;1825:309:0;1856:15;;;;;;;;;;;;;;;;;;:6;:15;;;;;;;;;;;;:::i;:::-;;1881:19;;;;;;;;;;;;;;;;;;:4;:19;;;;;;;;;;;;:::i;:::-;;1921:1;1910:8;;:12;;;;;;;;;;;;;;;;;;1947:10;1932:12;:25;;;;2022:12;;1967:8;:52;1976:42;1967:52;;;;;;;;;;;;;;;:67;;;;2070:42;2049:78;;2066:1;2049:78;;;2114:12;;2049:78;;;;;;;;;;;;;;;;;;1563:2206;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e0578063095ea7b31461017057806318160ddd146101d557806323b872dd14610200578063313ce567146102855780633eaaf86b146102b657806370a08231146102e157806395d89b4114610338578063a293d1e8146103c8578063a9059cbb14610413578063b5931f7c14610478578063cae9ca51146104c3578063d05c78da1461056e578063dd62ed3e146105b9578063e6cb901314610630575b600080fd5b3480156100ec57600080fd5b506100f561067b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013557808201518184015260208101905061011a565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610719565b604051808215151515815260200191505060405180910390f35b3480156101e157600080fd5b506101ea61080b565b6040518082815260200191505060405180910390f35b34801561020c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610856565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610ae6565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102c257600080fd5b506102cb610af9565b6040518082815260200191505060405180910390f35b3480156102ed57600080fd5b50610322600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aff565b6040518082815260200191505060405180910390f35b34801561034457600080fd5b5061034d610b48565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038d578082015181840152602081019050610372565b50505050905090810190601f1680156103ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d457600080fd5b506103fd6004803603810190808035906020019092919080359060200190929190505050610be6565b6040518082815260200191505060405180910390f35b34801561041f57600080fd5b5061045e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c02565b604051808215151515815260200191505060405180910390f35b34801561048457600080fd5b506104ad6004803603810190808035906020019092919080359060200190929190505050610d8b565b6040518082815260200191505060405180910390f35b3480156104cf57600080fd5b50610554600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610daf565b604051808215151515815260200191505060405180910390f35b34801561057a57600080fd5b506105a36004803603810190808035906020019092919080359060200190929190505050610ffe565b6040518082815260200191505060405180910390f35b3480156105c557600080fd5b5061061a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061102f565b6040518082815260200191505060405180910390f35b34801561063c57600080fd5b5061066560048036038101908080359060200190929190803590602001909291905050506110b6565b6040518082815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107115780601f106106e657610100808354040283529160200191610711565b820191906000526020600020905b8154815290600101906020018083116106f457829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600460008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460035403905090565b60006108a1600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610be6565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061096a600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610be6565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a33600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836110b6565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600260009054906101000a900460ff1681565b60035481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b505050505081565b6000828211151515610bf757600080fd5b818303905092915050565b6000610c4d600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610be6565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cd9600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836110b6565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008082111515610d9b57600080fd5b8183811515610da657fe5b04905092915050565b600082600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610f8c578082015181840152602081019050610f71565b50505050905090810190601f168015610fb95780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610fdb57600080fd5b505af1158015610fef573d6000803e3d6000fd5b50505050600190509392505050565b60008183029050600083148061101e575081838281151561101b57fe5b04145b151561102957600080fd5b92915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600081830190508281101515156110cc57600080fd5b929150505600a165627a7a723058204a49bcb9d0c4e2f4b4ef5afa1545e4b798def460027e5fbf34c82493cffdfa380029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDB JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x3EAAF86B EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0xA293D1E8 EQ PUSH2 0x3C8 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x413 JUMPI DUP1 PUSH4 0xB5931F7C EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0xCAE9CA51 EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0xD05C78DA EQ PUSH2 0x56E JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x5B9 JUMPI DUP1 PUSH4 0xE6CB9013 EQ PUSH2 0x630 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF5 PUSH2 0x67B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x135 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x11A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x162 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x719 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EA PUSH2 0x80B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x856 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29A PUSH2 0xAE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CB PUSH2 0xAF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x322 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xAFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH2 0xB48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x38D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x372 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3BA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xC02 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xD8B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x554 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP3 ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY DUP3 ADD SWAP2 POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xDAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xFFE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x61A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x102F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x665 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x10B6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x711 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6E6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x711 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 0x6F4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x5 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x3 SLOAD SUB SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A1 PUSH1 0x4 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x96A PUSH1 0x5 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xA33 PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0x10B6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xBDE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBB3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBDE 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 0xBC1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO ISZERO ISZERO PUSH2 0xBF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC4D PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xCD9 PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP4 PUSH2 0x10B6 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT ISZERO ISZERO PUSH2 0xD9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP2 ISZERO ISZERO PUSH2 0xDA6 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x5 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP6 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x8F4FFCB1 CALLER DUP6 ADDRESS DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF8C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF71 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xFB9 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFEF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 MUL SWAP1 POP PUSH1 0x0 DUP4 EQ DUP1 PUSH2 0x101E JUMPI POP DUP2 DUP4 DUP3 DUP2 ISZERO ISZERO PUSH2 0x101B JUMPI INVALID JUMPDEST DIV EQ JUMPDEST ISZERO ISZERO PUSH2 0x1029 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP3 DUP2 LT ISZERO ISZERO ISZERO PUSH2 0x10CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x4a 0x49 0xbc 0xb9 0xd0 0xc4 0xe2 DELEGATECALL 0xb4 0xef GAS STATICCALL ISZERO GASLIMIT 0xe4 0xb7 SWAP9 0xde DELEGATECALL PUSH1 0x2 PUSH31 0x5FBF34C82493CFFDFA38002900000000000000000000000000000000000000 ",
"sourceMap": "1563:2206:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3752:8;;;1642:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1642:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1642:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2670:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2670:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2141:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2141:114:0;;;;;;;;;;;;;;;;;;;;;;;2881:352;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2881:352:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1667:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1694:24:0;;;;;;;;;;;;;;;;;;;;;;;2262:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2262:122:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1616:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1616:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1616:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;234:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;234:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2391:272;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2391:272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3396:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3396:312:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;354:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;354:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3240:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3240:149:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;114:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;114:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2670:204::-;2733:12;2788:6;2757:7;:19;2765:10;2757:19;;;;;;;;;;;;;;;:28;2777:7;2757:28;;;;;;;;;;;;;;;:37;;;;2830:7;2809:37;;2818:10;2809:37;;;2839:6;2809:37;;;;;;;;;;;;;;;;;;2863:4;2856:11;;2670:204;;;;:::o;2141:114::-;2189:4;2228:8;:20;2245:1;2228:20;;;;;;;;;;;;;;;;2212:12;;:36;2205:43;;2141:114;:::o;2881:352::-;2958:12;2999:31;3007:8;:14;3016:4;3007:14;;;;;;;;;;;;;;;;3023:6;2999:7;:31::i;:::-;2982:8;:14;2991:4;2982:14;;;;;;;;;;;;;;;:48;;;;3068:42;3076:7;:13;3084:4;3076:13;;;;;;;;;;;;;;;:25;3090:10;3076:25;;;;;;;;;;;;;;;;3103:6;3068:7;:42::i;:::-;3040:7;:13;3048:4;3040:13;;;;;;;;;;;;;;;:25;3054:10;3040:25;;;;;;;;;;;;;;;:70;;;;3135:29;3143:8;:12;3152:2;3143:12;;;;;;;;;;;;;;;;3157:6;3135:7;:29::i;:::-;3120:8;:12;3129:2;3120:12;;;;;;;;;;;;;;;:44;;;;3194:2;3179:26;;3188:4;3179:26;;;3198:6;3179:26;;;;;;;;;;;;;;;;;;3222:4;3215:11;;2881:352;;;;;:::o;1667:21::-;;;;;;;;;;;;;:::o;1694:24::-;;;;:::o;2262:122::-;2326:12;2357:8;:20;2366:10;2357:20;;;;;;;;;;;;;;;;2350:27;;2262:122;;;:::o;1616:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;234:113::-;288:6;319:1;314;:6;;306:15;;;;;;;;339:1;335;:5;331:9;;234:113;;;;:::o;2391:272::-;2450:12;2497:37;2505:8;:20;2514:10;2505:20;;;;;;;;;;;;;;;;2527:6;2497:7;:37::i;:::-;2474:8;:20;2483:10;2474:20;;;;;;;;;;;;;;;:60;;;;2559:29;2567:8;:12;2576:2;2567:12;;;;;;;;;;;;;;;;2581:6;2559:7;:29::i;:::-;2544:8;:12;2553:2;2544:12;;;;;;;;;;;;;;;:44;;;;2624:2;2603:32;;2612:10;2603:32;;;2628:6;2603:32;;;;;;;;;;;;;;;;;;2652:4;2645:11;;2391:272;;;;:::o;488:112::-;542:6;572:1;568;:5;560:14;;;;;;;;592:1;588;:5;;;;;;;;584:9;;488:112;;;;:::o;3396:312::-;3478:12;3533:6;3502:7;:19;3510:10;3502:19;;;;;;;;;;;;;;;:28;3522:7;3502:28;;;;;;;;;;;;;;;:37;;;;3575:7;3554:37;;3563:10;3554:37;;;3584:6;3554:37;;;;;;;;;;;;;;;;;;3624:7;3601:47;;;3649:10;3661:6;3669:4;3675;3601:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3601:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3601:79:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3601:79:0;;;;3697:4;3690:11;;3396:312;;;;;:::o;354:127::-;408:6;434:1;430;:5;426:9;;458:1;453;:6;:20;;;;472:1;467;463;:5;;;;;;;;:10;453:20;445:29;;;;;;;;354:127;;;;:::o;3240:149::-;3321:14;3354:7;:19;3362:10;3354:19;;;;;;;;;;;;;;;:28;3374:7;3354:28;;;;;;;;;;;;;;;;3347:35;;3240:149;;;;:::o;114:113::-;168:6;194:1;190;:5;186:9;;218:1;213;:6;;205:15;;;;;;;;114:113;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "870000",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"": "399",
"_totalSupply()": "504",
"allowance(address,address)": "970",
"approve(address,uint256)": "22353",
"approveAndCall(address,uint256,bytes)": "infinite",
"balanceOf(address)": "691",
"decimals()": "530",
"name()": "infinite",
"safeAdd(uint256,uint256)": "638",
"safeDiv(uint256,uint256)": "572",
"safeMul(uint256,uint256)": "652",
"safeSub(uint256,uint256)": "506",
"symbol()": "infinite",
"totalSupply()": "742",
"transfer(address,uint256)": "43294",
"transferFrom(address,address,uint256)": "infinite"
}
},
"methodIdentifiers": {
"_totalSupply()": "3eaaf86b",
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"approveAndCall(address,uint256,bytes)": "cae9ca51",
"balanceOf(address)": "70a08231",
"decimals()": "313ce567",
"name()": "06fdde03",
"safeAdd(uint256,uint256)": "e6cb9013",
"safeDiv(uint256,uint256)": "b5931f7c",
"safeMul(uint256,uint256)": "d05c78da",
"safeSub(uint256,uint256)": "a293d1e8",
"symbol()": "95d89b41",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"abi": [
{
"constant": true,
"inputs": [],
"name": "name",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "to",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "decimals",
"outputs": [
{
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "_totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "tokenOwner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "balance",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeSub",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "to",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeDiv",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
},
{
"name": "data",
"type": "bytes"
}
],
"name": "approveAndCall",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeMul",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "tokenOwner",
"type": "address"
},
{
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"name": "remaining",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeAdd",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "tokens",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "tokenOwner",
"type": "address"
},
{
"indexed": true,
"name": "spender",
"type": "address"
},
{
"indexed": false,
"name": "tokens",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
}
]
}
{
"compiler": {
"version": "0.4.26+commit.4563c3fc"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [],
"name": "name",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "to",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "decimals",
"outputs": [
{
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "_totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "tokenOwner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "balance",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeSub",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "to",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeDiv",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
},
{
"name": "data",
"type": "bytes"
}
],
"name": "approveAndCall",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeMul",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "tokenOwner",
"type": "address"
},
{
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"name": "remaining",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeAdd",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "tokens",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "tokenOwner",
"type": "address"
},
{
"indexed": true,
"name": "spender",
"type": "address"
},
{
"indexed": false,
"name": "tokens",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contracts/3_Coda.sol": "CodaToken"
},
"evmVersion": "byzantium",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/3_Coda.sol": {
"keccak256": "0x672b2228053fe412ed3639d4831d08cac417d0ec6d10dfbab6f0f3310a95ac2c",
"urls": [
"bzzr://0d596e42d92c1e133ca12acdaa2a5d419aba47cc79961e61e08255e11157ed4b"
]
}
},
"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": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"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": [
{
"constant": false,
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "to",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "tokenOwner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "balance",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "to",
"type": "address"
},
{
"name": "tokens",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "tokenOwner",
"type": "address"
},
{
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"name": "remaining",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "tokens",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "tokenOwner",
"type": "address"
},
{
"indexed": true,
"name": "spender",
"type": "address"
},
{
"indexed": false,
"name": "tokens",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
}
]
}
{
"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": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061024c806100206000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063a293d1e814610067578063b5931f7c146100b2578063d05c78da146100fd578063e6cb901314610148575b600080fd5b34801561007357600080fd5b5061009c6004803603810190808035906020019092919080359060200190929190505050610193565b6040518082815260200191505060405180910390f35b3480156100be57600080fd5b506100e760048036038101908080359060200190929190803590602001909291905050506101af565b6040518082815260200191505060405180910390f35b34801561010957600080fd5b5061013260048036038101908080359060200190929190803590602001909291905050506101d3565b6040518082815260200191505060405180910390f35b34801561015457600080fd5b5061017d6004803603810190808035906020019092919080359060200190929190505050610204565b6040518082815260200191505060405180910390f35b60008282111515156101a457600080fd5b818303905092915050565b600080821115156101bf57600080fd5b81838115156101ca57fe5b04905092915050565b6000818302905060008314806101f357508183828115156101f057fe5b04145b15156101fe57600080fd5b92915050565b6000818301905082811015151561021a57600080fd5b929150505600a165627a7a723058207be7d2f87ab0c0bee1b6d855c9e13b0472807430d6080b77450f811df49108430029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24C DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0xA293D1E8 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0xB5931F7C EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0xD05C78DA EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0xE6CB9013 EQ PUSH2 0x148 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x193 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x109 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x204 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO ISZERO ISZERO PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT ISZERO ISZERO PUSH2 0x1BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP2 ISZERO ISZERO PUSH2 0x1CA JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 MUL SWAP1 POP PUSH1 0x0 DUP4 EQ DUP1 PUSH2 0x1F3 JUMPI POP DUP2 DUP4 DUP3 DUP2 ISZERO ISZERO PUSH2 0x1F0 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST ISZERO ISZERO PUSH2 0x1FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP3 DUP2 LT ISZERO ISZERO ISZERO PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH28 0xE7D2F87AB0C0BEE1B6D855C9E13B0472807430D6080B77450F811DF4 SWAP2 ADDMOD NUMBER STOP 0x29 ",
"sourceMap": "88:514:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;88:514:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063a293d1e814610067578063b5931f7c146100b2578063d05c78da146100fd578063e6cb901314610148575b600080fd5b34801561007357600080fd5b5061009c6004803603810190808035906020019092919080359060200190929190505050610193565b6040518082815260200191505060405180910390f35b3480156100be57600080fd5b506100e760048036038101908080359060200190929190803590602001909291905050506101af565b6040518082815260200191505060405180910390f35b34801561010957600080fd5b5061013260048036038101908080359060200190929190803590602001909291905050506101d3565b6040518082815260200191505060405180910390f35b34801561015457600080fd5b5061017d6004803603810190808035906020019092919080359060200190929190505050610204565b6040518082815260200191505060405180910390f35b60008282111515156101a457600080fd5b818303905092915050565b600080821115156101bf57600080fd5b81838115156101ca57fe5b04905092915050565b6000818302905060008314806101f357508183828115156101f057fe5b04145b15156101fe57600080fd5b92915050565b6000818301905082811015151561021a57600080fd5b929150505600a165627a7a723058207be7d2f87ab0c0bee1b6d855c9e13b0472807430d6080b77450f811df49108430029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0xA293D1E8 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0xB5931F7C EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0xD05C78DA EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0xE6CB9013 EQ PUSH2 0x148 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x193 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x109 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x204 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO ISZERO ISZERO PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT ISZERO ISZERO PUSH2 0x1BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP2 ISZERO ISZERO PUSH2 0x1CA JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 MUL SWAP1 POP PUSH1 0x0 DUP4 EQ DUP1 PUSH2 0x1F3 JUMPI POP DUP2 DUP4 DUP3 DUP2 ISZERO ISZERO PUSH2 0x1F0 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST ISZERO ISZERO PUSH2 0x1FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP3 DUP2 LT ISZERO ISZERO ISZERO PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH28 0xE7D2F87AB0C0BEE1B6D855C9E13B0472807430D6080B77450F811DF4 SWAP2 ADDMOD NUMBER STOP 0x29 ",
"sourceMap": "88:514:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;234:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;234:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;354:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;354:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;114:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;114:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;234;288:6;319:1;314;:6;;306:15;;;;;;;;339:1;335;:5;331:9;;234:113;;;;:::o;488:112::-;542:6;572:1;568;:5;560:14;;;;;;;;592:1;588;:5;;;;;;;;584:9;;488:112;;;;:::o;354:127::-;408:6;434:1;430;:5;426:9;;458:1;453;:6;:20;;;;472:1;467;463;:5;;;;;;;;:10;453:20;445:29;;;;;;;;354:127;;;;:::o;114:113::-;168:6;194:1;190;:5;186:9;;218:1;213;:6;;205:15;;;;;;;;114:113;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "117600",
"executionCost": "165",
"totalCost": "117765"
},
"external": {
"safeAdd(uint256,uint256)": "396",
"safeDiv(uint256,uint256)": "374",
"safeMul(uint256,uint256)": "432",
"safeSub(uint256,uint256)": "330"
}
},
"methodIdentifiers": {
"safeAdd(uint256,uint256)": "e6cb9013",
"safeDiv(uint256,uint256)": "b5931f7c",
"safeMul(uint256,uint256)": "d05c78da",
"safeSub(uint256,uint256)": "a293d1e8"
}
},
"abi": [
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeSub",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeDiv",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeMul",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeAdd",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.4.26+commit.4563c3fc"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeSub",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeDiv",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeMul",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "safeAdd",
"outputs": [
{
"name": "c",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contracts/3_Coda.sol": "SafeMath"
},
"evmVersion": "byzantium",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/3_Coda.sol": {
"keccak256": "0x672b2228053fe412ed3639d4831d08cac417d0ec6d10dfbab6f0f3310a95ac2c",
"urls": [
"bzzr://0d596e42d92c1e133ca12acdaa2a5d419aba47cc79961e61e08255e11157ed4b"
]
}
},
"version": 1
}
// Right click on the script name and hit "Run" to execute
(async () => {
try {
console.log('Running deployWithEthers script...')
const contractName = 'Storage' // Change this for other contract
const constructorArgs = [] // Put constructor args (if any) here for your contract
// Note that the script needs the ABI which is generated from the compilation artifact.
// Make sure contract is compiled and artifacts are generated
const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath))
// 'web3Provider' is a remix global variable object
const signer = (new ethers.providers.Web3Provider(web3Provider)).getSigner()
let factory = new ethers.ContractFactory(metadata.abi, metadata.data.bytecode.object, signer);
let contract = await factory.deploy(...constructorArgs);
console.log('Contract Address: ', contract.address);
// The contract is NOT deployed yet; we must wait until it is mined
await contract.deployed()
console.log('Deployment successful.')
} catch (e) {
console.log(e.message)
}
})()
// Right click on the script name and hit "Run" to execute
(async () => {
try {
console.log('Running deployWithWeb3 script...')
const contractName = 'Storage' // Change this for other contract
const constructorArgs = [] // Put constructor args (if any) here for your contract
// Note that the script needs the ABI which is generated from the compilation artifact.
// Make sure contract is compiled and artifacts are generated
const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath))
const accounts = await web3.eth.getAccounts()
let contract = new web3.eth.Contract(metadata.abi)
contract = contract.deploy({
data: metadata.data.bytecode.object,
arguments: constructorArgs
})
const newContractInstance = await contract.send({
from: accounts[0],
gas: 1500000,
gasPrice: '30000000000'
})
console.log('Contract deployed at address: ', newContractInstance.options.address)
} catch (e) {
console.log(e.message)
}
})()
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import "remix_tests.sol"; // this import is automatically injected by Remix.
import "../contracts/3_Ballot.sol";
contract BallotTest {
bytes32[] proposalNames;
Ballot ballotToTest;
function beforeAll () public {
proposalNames.push(bytes32("candidate1"));
ballotToTest = new Ballot(proposalNames);
}
function checkWinningProposal () public {
ballotToTest.vote(0);
Assert.equal(ballotToTest.winningProposal(), uint(0), "proposal at index 0 should be the winning proposal");
Assert.equal(ballotToTest.winnerName(), bytes32("candidate1"), "candidate1 should be the winner name");
}
function checkWinninProposalWithReturnValue () public view returns (bool) {
return ballotToTest.winningProposal() == 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment